diff --git a/go/gen/buf/validate/validate.pb.go b/go/gen/buf/validate/validate.pb.go new file mode 100644 index 000000000..2085a8f36 --- /dev/null +++ b/go/gen/buf/validate/validate.pb.go @@ -0,0 +1,11507 @@ +// Copyright 2023-2025 Buf Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: buf/validate/validate.proto + +package validate + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Specifies how `FieldRules.ignore` behaves, depending on the field's value, and +// whether the field tracks presence. +type Ignore int32 + +const ( + // Ignore rules if the field tracks presence and is unset. This is the default + // behavior. + // + // In proto3, only message fields, members of a Protobuf `oneof`, and fields + // with the `optional` label track presence. Consequently, the following fields + // are always validated, whether a value is set or not: + // + // ```proto + // syntax="proto3"; + // + // message RulesApply { + // string email = 1 [ + // (buf.validate.field).string.email = true + // ]; + // int32 age = 2 [ + // (buf.validate.field).int32.gt = 0 + // ]; + // repeated string labels = 3 [ + // (buf.validate.field).repeated.min_items = 1 + // ]; + // } + // + // ``` + // + // In contrast, the following fields track presence, and are only validated if + // a value is set: + // + // ```proto + // syntax="proto3"; + // + // message RulesApplyIfSet { + // optional string email = 1 [ + // (buf.validate.field).string.email = true + // ]; + // oneof ref { + // string reference = 2 [ + // (buf.validate.field).string.uuid = true + // ]; + // string name = 3 [ + // (buf.validate.field).string.min_len = 4 + // ]; + // } + // SomeMessage msg = 4 [ + // (buf.validate.field).cel = {/* ... */} + // ]; + // } + // + // ``` + // + // To ensure that such a field is set, add the `required` rule. + // + // To learn which fields track presence, see the + // [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). + Ignore_IGNORE_UNSPECIFIED Ignore = 0 + // Ignore rules if the field is unset, or set to the zero value. + // + // The zero value depends on the field type: + // - For strings, the zero value is the empty string. + // - For bytes, the zero value is empty bytes. + // - For bool, the zero value is false. + // - For numeric types, the zero value is zero. + // - For enums, the zero value is the first defined enum value. + // - For repeated fields, the zero is an empty list. + // - For map fields, the zero is an empty map. + // - For message fields, absence of the message (typically a null-value) is considered zero value. + // + // For fields that track presence (e.g. adding the `optional` label in proto3), + // this a no-op and behavior is the same as the default `IGNORE_UNSPECIFIED`. + Ignore_IGNORE_IF_ZERO_VALUE Ignore = 1 + // Always ignore rules, including the `required` rule. + // + // This is useful for ignoring the rules of a referenced message, or to + // temporarily ignore rules during development. + // + // ```proto + // + // message MyMessage { + // // The field's rules will always be ignored, including any validations + // // on value's fields. + // MyOtherMessage value = 1 [ + // (buf.validate.field).ignore = IGNORE_ALWAYS + // ]; + // } + // + // ``` + Ignore_IGNORE_ALWAYS Ignore = 3 +) + +// Enum value maps for Ignore. +var ( + Ignore_name = map[int32]string{ + 0: "IGNORE_UNSPECIFIED", + 1: "IGNORE_IF_ZERO_VALUE", + 3: "IGNORE_ALWAYS", + } + Ignore_value = map[string]int32{ + "IGNORE_UNSPECIFIED": 0, + "IGNORE_IF_ZERO_VALUE": 1, + "IGNORE_ALWAYS": 3, + } +) + +func (x Ignore) Enum() *Ignore { + p := new(Ignore) + *p = x + return p +} + +func (x Ignore) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Ignore) Descriptor() protoreflect.EnumDescriptor { + return file_buf_validate_validate_proto_enumTypes[0].Descriptor() +} + +func (Ignore) Type() protoreflect.EnumType { + return &file_buf_validate_validate_proto_enumTypes[0] +} + +func (x Ignore) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *Ignore) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = Ignore(num) + return nil +} + +// Deprecated: Use Ignore.Descriptor instead. +func (Ignore) EnumDescriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{0} +} + +// KnownRegex contains some well-known patterns. +type KnownRegex int32 + +const ( + KnownRegex_KNOWN_REGEX_UNSPECIFIED KnownRegex = 0 + // HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2). + KnownRegex_KNOWN_REGEX_HTTP_HEADER_NAME KnownRegex = 1 + // HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4). + KnownRegex_KNOWN_REGEX_HTTP_HEADER_VALUE KnownRegex = 2 +) + +// Enum value maps for KnownRegex. +var ( + KnownRegex_name = map[int32]string{ + 0: "KNOWN_REGEX_UNSPECIFIED", + 1: "KNOWN_REGEX_HTTP_HEADER_NAME", + 2: "KNOWN_REGEX_HTTP_HEADER_VALUE", + } + KnownRegex_value = map[string]int32{ + "KNOWN_REGEX_UNSPECIFIED": 0, + "KNOWN_REGEX_HTTP_HEADER_NAME": 1, + "KNOWN_REGEX_HTTP_HEADER_VALUE": 2, + } +) + +func (x KnownRegex) Enum() *KnownRegex { + p := new(KnownRegex) + *p = x + return p +} + +func (x KnownRegex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (KnownRegex) Descriptor() protoreflect.EnumDescriptor { + return file_buf_validate_validate_proto_enumTypes[1].Descriptor() +} + +func (KnownRegex) Type() protoreflect.EnumType { + return &file_buf_validate_validate_proto_enumTypes[1] +} + +func (x KnownRegex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *KnownRegex) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = KnownRegex(num) + return nil +} + +// Deprecated: Use KnownRegex.Descriptor instead. +func (KnownRegex) EnumDescriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{1} +} + +// `Rule` represents a validation rule written in the Common Expression +// Language (CEL) syntax. Each Rule includes a unique identifier, an +// optional error message, and the CEL expression to evaluate. For more +// information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). +// +// ```proto +// +// message Foo { +// option (buf.validate.message).cel = { +// id: "foo.bar" +// message: "bar must be greater than 0" +// expression: "this.bar > 0" +// }; +// int32 bar = 1; +// } +// +// ``` +type Rule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `id` is a string that serves as a machine-readable name for this Rule. + // It should be unique within its scope, which could be either a message or a field. + Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + // `message` is an optional field that provides a human-readable error message + // for this Rule when the CEL expression evaluates to false. If a + // non-empty message is provided, any strings resulting from the CEL + // expression evaluation are ignored. + Message *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + // `expression` is the actual CEL expression that will be evaluated for + // validation. This string must resolve to either a boolean or a string + // value. If the expression evaluates to false or a non-empty string, the + // validation is considered failed, and the message is rejected. + Expression *string `protobuf:"bytes,3,opt,name=expression" json:"expression,omitempty"` +} + +func (x *Rule) Reset() { + *x = Rule{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Rule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Rule) ProtoMessage() {} + +func (x *Rule) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Rule.ProtoReflect.Descriptor instead. +func (*Rule) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{0} +} + +func (x *Rule) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *Rule) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +func (x *Rule) GetExpression() string { + if x != nil && x.Expression != nil { + return *x.Expression + } + return "" +} + +// MessageRules represents validation rules that are applied to the entire message. +// It includes disabling options and a list of Rule messages representing Common Expression Language (CEL) validation rules. +type MessageRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `cel` is a repeated field of type Rule. Each Rule specifies a validation rule to be applied to this message. + // These rules are written in Common Expression Language (CEL) syntax. For more information, + // [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). + // + // ```proto + // + // message MyMessage { + // // The field `foo` must be greater than 42. + // option (buf.validate.message).cel = { + // id: "my_message.value", + // message: "value must be greater than 42", + // expression: "this.foo > 42", + // }; + // optional int32 foo = 1; + // } + // + // ``` + Cel []*Rule `protobuf:"bytes,3,rep,name=cel" json:"cel,omitempty"` + // `oneof` is a repeated field of type MessageOneofRule that specifies a list of fields + // of which at most one can be present. If `required` is also specified, then exactly one + // of the specified fields _must_ be present. + // + // This will enforce oneof-like constraints with a few features not provided by + // actual Protobuf oneof declarations: + // 1. Repeated and map fields are allowed in this validation. In a Protobuf oneof, + // only scalar fields are allowed. + // 2. Fields with implicit presence are allowed. In a Protobuf oneof, all member + // fields have explicit presence. This means that, for the purpose of determining + // how many fields are set, explicitly setting such a field to its zero value is + // effectively the same as not setting it at all. + // 3. This will always generate validation errors for a message unmarshalled from + // serialized data that sets more than one field. With a Protobuf oneof, when + // multiple fields are present in the serialized form, earlier values are usually + // silently ignored when unmarshalling, with only the last field being set when + // unmarshalling completes. + // + // Note that adding a field to a `oneof` will also set the IGNORE_IF_ZERO_VALUE on the fields. This means + // only the field that is set will be validated and the unset fields are not validated according to the field rules. + // This behavior can be overridden by setting `ignore` against a field. + // + // ```proto + // + // message MyMessage { + // // Only one of `field1` or `field2` _can_ be present in this message. + // option (buf.validate.message).oneof = { fields: ["field1", "field2"] }; + // // Exactly one of `field3` or `field4` _must_ be present in this message. + // option (buf.validate.message).oneof = { fields: ["field3", "field4"], required: true }; + // string field1 = 1; + // bytes field2 = 2; + // bool field3 = 3; + // int32 field4 = 4; + // } + // + // ``` + Oneof []*MessageOneofRule `protobuf:"bytes,4,rep,name=oneof" json:"oneof,omitempty"` +} + +func (x *MessageRules) Reset() { + *x = MessageRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageRules) ProtoMessage() {} + +func (x *MessageRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageRules.ProtoReflect.Descriptor instead. +func (*MessageRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{1} +} + +func (x *MessageRules) GetCel() []*Rule { + if x != nil { + return x.Cel + } + return nil +} + +func (x *MessageRules) GetOneof() []*MessageOneofRule { + if x != nil { + return x.Oneof + } + return nil +} + +type MessageOneofRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of field names to include in the oneof. All field names must be + // defined in the message. At least one field must be specified, and + // duplicates are not permitted. + Fields []string `protobuf:"bytes,1,rep,name=fields" json:"fields,omitempty"` + // If true, one of the fields specified _must_ be set. + Required *bool `protobuf:"varint,2,opt,name=required" json:"required,omitempty"` +} + +func (x *MessageOneofRule) Reset() { + *x = MessageOneofRule{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageOneofRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageOneofRule) ProtoMessage() {} + +func (x *MessageOneofRule) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageOneofRule.ProtoReflect.Descriptor instead. +func (*MessageOneofRule) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{2} +} + +func (x *MessageOneofRule) GetFields() []string { + if x != nil { + return x.Fields + } + return nil +} + +func (x *MessageOneofRule) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +// The `OneofRules` message type enables you to manage rules for +// oneof fields in your protobuf messages. +type OneofRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If `required` is true, exactly one field of the oneof must be set. A + // validation error is returned if no fields in the oneof are set. Further rules + // should be placed on the fields themselves to ensure they are valid values, + // such as `min_len` or `gt`. + // + // ```proto + // + // message MyMessage { + // oneof value { + // // Either `a` or `b` must be set. If `a` is set, it must also be + // // non-empty; whereas if `b` is set, it can still be an empty string. + // option (buf.validate.oneof).required = true; + // string a = 1 [(buf.validate.field).string.min_len = 1]; + // string b = 2; + // } + // } + // + // ``` + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` +} + +func (x *OneofRules) Reset() { + *x = OneofRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OneofRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OneofRules) ProtoMessage() {} + +func (x *OneofRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OneofRules.ProtoReflect.Descriptor instead. +func (*OneofRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{3} +} + +func (x *OneofRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +// FieldRules encapsulates the rules for each type of field. Depending on +// the field, the correct set should be used to ensure proper validations. +type FieldRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `cel` is a repeated field used to represent a textual expression + // in the Common Expression Language (CEL) syntax. For more information, + // [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). + // + // ```proto + // + // message MyMessage { + // // The field `value` must be greater than 42. + // optional int32 value = 1 [(buf.validate.field).cel = { + // id: "my_message.value", + // message: "value must be greater than 42", + // expression: "this > 42", + // }]; + // } + // + // ``` + Cel []*Rule `protobuf:"bytes,23,rep,name=cel" json:"cel,omitempty"` + // If `required` is true, the field must be set. A validation error is returned + // if the field is not set. + // + // ```proto + // syntax="proto3"; + // + // message FieldsWithPresence { + // // Requires any string to be set, including the empty string. + // optional string link = 1 [ + // (buf.validate.field).required = true + // ]; + // // Requires true or false to be set. + // optional bool disabled = 2 [ + // (buf.validate.field).required = true + // ]; + // // Requires a message to be set, including the empty message. + // SomeMessage msg = 4 [ + // (buf.validate.field).required = true + // ]; + // } + // + // ``` + // + // All fields in the example above track presence. By default, Protovalidate + // ignores rules on those fields if no value is set. `required` ensures that + // the fields are set and valid. + // + // Fields that don't track presence are always validated by Protovalidate, + // whether they are set or not. It is not necessary to add `required`. It + // can be added to indicate that the field cannot be the zero value. + // + // ```proto + // syntax="proto3"; + // + // message FieldsWithoutPresence { + // // `string.email` always applies, even to an empty string. + // string link = 1 [ + // (buf.validate.field).string.email = true + // ]; + // // `repeated.min_items` always applies, even to an empty list. + // repeated string labels = 2 [ + // (buf.validate.field).repeated.min_items = 1 + // ]; + // // `required`, for fields that don't track presence, indicates + // // the value of the field can't be the zero value. + // int32 zero_value_not_allowed = 3 [ + // (buf.validate.field).required = true + // ]; + // } + // + // ``` + // + // To learn which fields track presence, see the + // [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). + // + // Note: While field rules can be applied to repeated items, map keys, and map + // values, the elements are always considered to be set. Consequently, + // specifying `repeated.items.required` is redundant. + Required *bool `protobuf:"varint,25,opt,name=required" json:"required,omitempty"` + // Ignore validation rules on the field if its value matches the specified + // criteria. See the `Ignore` enum for details. + // + // ```proto + // + // message UpdateRequest { + // // The uri rule only applies if the field is not an empty string. + // string url = 1 [ + // (buf.validate.field).ignore = IGNORE_IF_ZERO_VALUE, + // (buf.validate.field).string.uri = true + // ]; + // } + // + // ``` + Ignore *Ignore `protobuf:"varint,27,opt,name=ignore,enum=buf.validate.Ignore" json:"ignore,omitempty"` + // Types that are assignable to Type: + // + // *FieldRules_Float + // *FieldRules_Double + // *FieldRules_Int32 + // *FieldRules_Int64 + // *FieldRules_Uint32 + // *FieldRules_Uint64 + // *FieldRules_Sint32 + // *FieldRules_Sint64 + // *FieldRules_Fixed32 + // *FieldRules_Fixed64 + // *FieldRules_Sfixed32 + // *FieldRules_Sfixed64 + // *FieldRules_Bool + // *FieldRules_String_ + // *FieldRules_Bytes + // *FieldRules_Enum + // *FieldRules_Repeated + // *FieldRules_Map + // *FieldRules_Any + // *FieldRules_Duration + // *FieldRules_Timestamp + Type isFieldRules_Type `protobuf_oneof:"type"` +} + +func (x *FieldRules) Reset() { + *x = FieldRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldRules) ProtoMessage() {} + +func (x *FieldRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldRules.ProtoReflect.Descriptor instead. +func (*FieldRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{4} +} + +func (x *FieldRules) GetCel() []*Rule { + if x != nil { + return x.Cel + } + return nil +} + +func (x *FieldRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *FieldRules) GetIgnore() Ignore { + if x != nil && x.Ignore != nil { + return *x.Ignore + } + return Ignore_IGNORE_UNSPECIFIED +} + +func (m *FieldRules) GetType() isFieldRules_Type { + if m != nil { + return m.Type + } + return nil +} + +func (x *FieldRules) GetFloat() *FloatRules { + if x, ok := x.GetType().(*FieldRules_Float); ok { + return x.Float + } + return nil +} + +func (x *FieldRules) GetDouble() *DoubleRules { + if x, ok := x.GetType().(*FieldRules_Double); ok { + return x.Double + } + return nil +} + +func (x *FieldRules) GetInt32() *Int32Rules { + if x, ok := x.GetType().(*FieldRules_Int32); ok { + return x.Int32 + } + return nil +} + +func (x *FieldRules) GetInt64() *Int64Rules { + if x, ok := x.GetType().(*FieldRules_Int64); ok { + return x.Int64 + } + return nil +} + +func (x *FieldRules) GetUint32() *UInt32Rules { + if x, ok := x.GetType().(*FieldRules_Uint32); ok { + return x.Uint32 + } + return nil +} + +func (x *FieldRules) GetUint64() *UInt64Rules { + if x, ok := x.GetType().(*FieldRules_Uint64); ok { + return x.Uint64 + } + return nil +} + +func (x *FieldRules) GetSint32() *SInt32Rules { + if x, ok := x.GetType().(*FieldRules_Sint32); ok { + return x.Sint32 + } + return nil +} + +func (x *FieldRules) GetSint64() *SInt64Rules { + if x, ok := x.GetType().(*FieldRules_Sint64); ok { + return x.Sint64 + } + return nil +} + +func (x *FieldRules) GetFixed32() *Fixed32Rules { + if x, ok := x.GetType().(*FieldRules_Fixed32); ok { + return x.Fixed32 + } + return nil +} + +func (x *FieldRules) GetFixed64() *Fixed64Rules { + if x, ok := x.GetType().(*FieldRules_Fixed64); ok { + return x.Fixed64 + } + return nil +} + +func (x *FieldRules) GetSfixed32() *SFixed32Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed32); ok { + return x.Sfixed32 + } + return nil +} + +func (x *FieldRules) GetSfixed64() *SFixed64Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed64); ok { + return x.Sfixed64 + } + return nil +} + +func (x *FieldRules) GetBool() *BoolRules { + if x, ok := x.GetType().(*FieldRules_Bool); ok { + return x.Bool + } + return nil +} + +func (x *FieldRules) GetString_() *StringRules { + if x, ok := x.GetType().(*FieldRules_String_); ok { + return x.String_ + } + return nil +} + +func (x *FieldRules) GetBytes() *BytesRules { + if x, ok := x.GetType().(*FieldRules_Bytes); ok { + return x.Bytes + } + return nil +} + +func (x *FieldRules) GetEnum() *EnumRules { + if x, ok := x.GetType().(*FieldRules_Enum); ok { + return x.Enum + } + return nil +} + +func (x *FieldRules) GetRepeated() *RepeatedRules { + if x, ok := x.GetType().(*FieldRules_Repeated); ok { + return x.Repeated + } + return nil +} + +func (x *FieldRules) GetMap() *MapRules { + if x, ok := x.GetType().(*FieldRules_Map); ok { + return x.Map + } + return nil +} + +func (x *FieldRules) GetAny() *AnyRules { + if x, ok := x.GetType().(*FieldRules_Any); ok { + return x.Any + } + return nil +} + +func (x *FieldRules) GetDuration() *DurationRules { + if x, ok := x.GetType().(*FieldRules_Duration); ok { + return x.Duration + } + return nil +} + +func (x *FieldRules) GetTimestamp() *TimestampRules { + if x, ok := x.GetType().(*FieldRules_Timestamp); ok { + return x.Timestamp + } + return nil +} + +type isFieldRules_Type interface { + isFieldRules_Type() +} + +type FieldRules_Float struct { + // Scalar Field Types + Float *FloatRules `protobuf:"bytes,1,opt,name=float,oneof"` +} + +type FieldRules_Double struct { + Double *DoubleRules `protobuf:"bytes,2,opt,name=double,oneof"` +} + +type FieldRules_Int32 struct { + Int32 *Int32Rules `protobuf:"bytes,3,opt,name=int32,oneof"` +} + +type FieldRules_Int64 struct { + Int64 *Int64Rules `protobuf:"bytes,4,opt,name=int64,oneof"` +} + +type FieldRules_Uint32 struct { + Uint32 *UInt32Rules `protobuf:"bytes,5,opt,name=uint32,oneof"` +} + +type FieldRules_Uint64 struct { + Uint64 *UInt64Rules `protobuf:"bytes,6,opt,name=uint64,oneof"` +} + +type FieldRules_Sint32 struct { + Sint32 *SInt32Rules `protobuf:"bytes,7,opt,name=sint32,oneof"` +} + +type FieldRules_Sint64 struct { + Sint64 *SInt64Rules `protobuf:"bytes,8,opt,name=sint64,oneof"` +} + +type FieldRules_Fixed32 struct { + Fixed32 *Fixed32Rules `protobuf:"bytes,9,opt,name=fixed32,oneof"` +} + +type FieldRules_Fixed64 struct { + Fixed64 *Fixed64Rules `protobuf:"bytes,10,opt,name=fixed64,oneof"` +} + +type FieldRules_Sfixed32 struct { + Sfixed32 *SFixed32Rules `protobuf:"bytes,11,opt,name=sfixed32,oneof"` +} + +type FieldRules_Sfixed64 struct { + Sfixed64 *SFixed64Rules `protobuf:"bytes,12,opt,name=sfixed64,oneof"` +} + +type FieldRules_Bool struct { + Bool *BoolRules `protobuf:"bytes,13,opt,name=bool,oneof"` +} + +type FieldRules_String_ struct { + String_ *StringRules `protobuf:"bytes,14,opt,name=string,oneof"` +} + +type FieldRules_Bytes struct { + Bytes *BytesRules `protobuf:"bytes,15,opt,name=bytes,oneof"` +} + +type FieldRules_Enum struct { + // Complex Field Types + Enum *EnumRules `protobuf:"bytes,16,opt,name=enum,oneof"` +} + +type FieldRules_Repeated struct { + Repeated *RepeatedRules `protobuf:"bytes,18,opt,name=repeated,oneof"` +} + +type FieldRules_Map struct { + Map *MapRules `protobuf:"bytes,19,opt,name=map,oneof"` +} + +type FieldRules_Any struct { + // Well-Known Field Types + Any *AnyRules `protobuf:"bytes,20,opt,name=any,oneof"` +} + +type FieldRules_Duration struct { + Duration *DurationRules `protobuf:"bytes,21,opt,name=duration,oneof"` +} + +type FieldRules_Timestamp struct { + Timestamp *TimestampRules `protobuf:"bytes,22,opt,name=timestamp,oneof"` +} + +func (*FieldRules_Float) isFieldRules_Type() {} + +func (*FieldRules_Double) isFieldRules_Type() {} + +func (*FieldRules_Int32) isFieldRules_Type() {} + +func (*FieldRules_Int64) isFieldRules_Type() {} + +func (*FieldRules_Uint32) isFieldRules_Type() {} + +func (*FieldRules_Uint64) isFieldRules_Type() {} + +func (*FieldRules_Sint32) isFieldRules_Type() {} + +func (*FieldRules_Sint64) isFieldRules_Type() {} + +func (*FieldRules_Fixed32) isFieldRules_Type() {} + +func (*FieldRules_Fixed64) isFieldRules_Type() {} + +func (*FieldRules_Sfixed32) isFieldRules_Type() {} + +func (*FieldRules_Sfixed64) isFieldRules_Type() {} + +func (*FieldRules_Bool) isFieldRules_Type() {} + +func (*FieldRules_String_) isFieldRules_Type() {} + +func (*FieldRules_Bytes) isFieldRules_Type() {} + +func (*FieldRules_Enum) isFieldRules_Type() {} + +func (*FieldRules_Repeated) isFieldRules_Type() {} + +func (*FieldRules_Map) isFieldRules_Type() {} + +func (*FieldRules_Any) isFieldRules_Type() {} + +func (*FieldRules_Duration) isFieldRules_Type() {} + +func (*FieldRules_Timestamp) isFieldRules_Type() {} + +// PredefinedRules are custom rules that can be re-used with +// multiple fields. +type PredefinedRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `cel` is a repeated field used to represent a textual expression + // in the Common Expression Language (CEL) syntax. For more information, + // [see our documentation](https://buf.build/docs/protovalidate/schemas/predefined-rules/). + // + // ```proto + // + // message MyMessage { + // // The field `value` must be greater than 42. + // optional int32 value = 1 [(buf.validate.predefined).cel = { + // id: "my_message.value", + // message: "value must be greater than 42", + // expression: "this > 42", + // }]; + // } + // + // ``` + Cel []*Rule `protobuf:"bytes,1,rep,name=cel" json:"cel,omitempty"` +} + +func (x *PredefinedRules) Reset() { + *x = PredefinedRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PredefinedRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PredefinedRules) ProtoMessage() {} + +func (x *PredefinedRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PredefinedRules.ProtoReflect.Descriptor instead. +func (*PredefinedRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{5} +} + +func (x *PredefinedRules) GetCel() []*Rule { + if x != nil { + return x.Cel + } + return nil +} + +// FloatRules describes the rules applied to `float` values. These +// rules may also be applied to the `google.protobuf.FloatValue` Well-Known-Type. +type FloatRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyFloat { + // // value must equal 42.0 + // float value = 1 [(buf.validate.field).float.const = 42.0]; + // } + // + // ``` + Const *float32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *FloatRules_Lt + // *FloatRules_Lte + LessThan isFloatRules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *FloatRules_Gt + // *FloatRules_Gte + GreaterThan isFloatRules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message + // is generated. + // + // ```proto + // + // message MyFloat { + // // value must be in list [1.0, 2.0, 3.0] + // float value = 1 [(buf.validate.field).float = { in: [1.0, 2.0, 3.0] }]; + // } + // + // ``` + In []float32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // `in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyFloat { + // // value must not be in list [1.0, 2.0, 3.0] + // float value = 1 [(buf.validate.field).float = { not_in: [1.0, 2.0, 3.0] }]; + // } + // + // ``` + NotIn []float32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `finite` requires the field value to be finite. If the field value is + // infinite or NaN, an error message is generated. + Finite *bool `protobuf:"varint,8,opt,name=finite" json:"finite,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyFloat { + // float value = 1 [ + // (buf.validate.field).float.example = 1.0, + // (buf.validate.field).float.example = inf + // ]; + // } + // + // ``` + Example []float32 `protobuf:"fixed32,9,rep,name=example" json:"example,omitempty"` +} + +func (x *FloatRules) Reset() { + *x = FloatRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatRules) ProtoMessage() {} + +func (x *FloatRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FloatRules.ProtoReflect.Descriptor instead. +func (*FloatRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{6} +} + +func (x *FloatRules) GetConst() float32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *FloatRules) GetLessThan() isFloatRules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *FloatRules) GetLt() float32 { + if x, ok := x.GetLessThan().(*FloatRules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *FloatRules) GetLte() float32 { + if x, ok := x.GetLessThan().(*FloatRules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *FloatRules) GetGreaterThan() isFloatRules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *FloatRules) GetGt() float32 { + if x, ok := x.GetGreaterThan().(*FloatRules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *FloatRules) GetGte() float32 { + if x, ok := x.GetGreaterThan().(*FloatRules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *FloatRules) GetIn() []float32 { + if x != nil { + return x.In + } + return nil +} + +func (x *FloatRules) GetNotIn() []float32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *FloatRules) GetFinite() bool { + if x != nil && x.Finite != nil { + return *x.Finite + } + return false +} + +func (x *FloatRules) GetExample() []float32 { + if x != nil { + return x.Example + } + return nil +} + +type isFloatRules_LessThan interface { + isFloatRules_LessThan() +} + +type FloatRules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MyFloat { + // // value must be less than 10.0 + // float value = 1 [(buf.validate.field).float.lt = 10.0]; + // } + // + // ``` + Lt float32 `protobuf:"fixed32,2,opt,name=lt,oneof"` +} + +type FloatRules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyFloat { + // // value must be less than or equal to 10.0 + // float value = 1 [(buf.validate.field).float.lte = 10.0]; + // } + // + // ``` + Lte float32 `protobuf:"fixed32,3,opt,name=lte,oneof"` +} + +func (*FloatRules_Lt) isFloatRules_LessThan() {} + +func (*FloatRules_Lte) isFloatRules_LessThan() {} + +type isFloatRules_GreaterThan interface { + isFloatRules_GreaterThan() +} + +type FloatRules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyFloat { + // // value must be greater than 5.0 [float.gt] + // float value = 1 [(buf.validate.field).float.gt = 5.0]; + // + // // value must be greater than 5 and less than 10.0 [float.gt_lt] + // float other_value = 2 [(buf.validate.field).float = { gt: 5.0, lt: 10.0 }]; + // + // // value must be greater than 10 or less than 5.0 [float.gt_lt_exclusive] + // float another_value = 3 [(buf.validate.field).float = { gt: 10.0, lt: 5.0 }]; + // } + // + // ``` + Gt float32 `protobuf:"fixed32,4,opt,name=gt,oneof"` +} + +type FloatRules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyFloat { + // // value must be greater than or equal to 5.0 [float.gte] + // float value = 1 [(buf.validate.field).float.gte = 5.0]; + // + // // value must be greater than or equal to 5.0 and less than 10.0 [float.gte_lt] + // float other_value = 2 [(buf.validate.field).float = { gte: 5.0, lt: 10.0 }]; + // + // // value must be greater than or equal to 10.0 or less than 5.0 [float.gte_lt_exclusive] + // float another_value = 3 [(buf.validate.field).float = { gte: 10.0, lt: 5.0 }]; + // } + // + // ``` + Gte float32 `protobuf:"fixed32,5,opt,name=gte,oneof"` +} + +func (*FloatRules_Gt) isFloatRules_GreaterThan() {} + +func (*FloatRules_Gte) isFloatRules_GreaterThan() {} + +// DoubleRules describes the rules applied to `double` values. These +// rules may also be applied to the `google.protobuf.DoubleValue` Well-Known-Type. +type DoubleRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyDouble { + // // value must equal 42.0 + // double value = 1 [(buf.validate.field).double.const = 42.0]; + // } + // + // ``` + Const *float64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *DoubleRules_Lt + // *DoubleRules_Lte + LessThan isDoubleRules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *DoubleRules_Gt + // *DoubleRules_Gte + GreaterThan isDoubleRules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MyDouble { + // // value must be in list [1.0, 2.0, 3.0] + // double value = 1 [(buf.validate.field).double = { in: [1.0, 2.0, 3.0] }]; + // } + // + // ``` + In []float64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyDouble { + // // value must not be in list [1.0, 2.0, 3.0] + // double value = 1 [(buf.validate.field).double = { not_in: [1.0, 2.0, 3.0] }]; + // } + // + // ``` + NotIn []float64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `finite` requires the field value to be finite. If the field value is + // infinite or NaN, an error message is generated. + Finite *bool `protobuf:"varint,8,opt,name=finite" json:"finite,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyDouble { + // double value = 1 [ + // (buf.validate.field).double.example = 1.0, + // (buf.validate.field).double.example = inf + // ]; + // } + // + // ``` + Example []float64 `protobuf:"fixed64,9,rep,name=example" json:"example,omitempty"` +} + +func (x *DoubleRules) Reset() { + *x = DoubleRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DoubleRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DoubleRules) ProtoMessage() {} + +func (x *DoubleRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead. +func (*DoubleRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{7} +} + +func (x *DoubleRules) GetConst() float64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *DoubleRules) GetLessThan() isDoubleRules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *DoubleRules) GetLt() float64 { + if x, ok := x.GetLessThan().(*DoubleRules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *DoubleRules) GetLte() float64 { + if x, ok := x.GetLessThan().(*DoubleRules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *DoubleRules) GetGreaterThan() isDoubleRules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *DoubleRules) GetGt() float64 { + if x, ok := x.GetGreaterThan().(*DoubleRules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *DoubleRules) GetGte() float64 { + if x, ok := x.GetGreaterThan().(*DoubleRules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *DoubleRules) GetIn() []float64 { + if x != nil { + return x.In + } + return nil +} + +func (x *DoubleRules) GetNotIn() []float64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *DoubleRules) GetFinite() bool { + if x != nil && x.Finite != nil { + return *x.Finite + } + return false +} + +func (x *DoubleRules) GetExample() []float64 { + if x != nil { + return x.Example + } + return nil +} + +type isDoubleRules_LessThan interface { + isDoubleRules_LessThan() +} + +type DoubleRules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyDouble { + // // value must be less than 10.0 + // double value = 1 [(buf.validate.field).double.lt = 10.0]; + // } + // + // ``` + Lt float64 `protobuf:"fixed64,2,opt,name=lt,oneof"` +} + +type DoubleRules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified value + // (field <= value). If the field value is greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MyDouble { + // // value must be less than or equal to 10.0 + // double value = 1 [(buf.validate.field).double.lte = 10.0]; + // } + // + // ``` + Lte float64 `protobuf:"fixed64,3,opt,name=lte,oneof"` +} + +func (*DoubleRules_Lt) isDoubleRules_LessThan() {} + +func (*DoubleRules_Lte) isDoubleRules_LessThan() {} + +type isDoubleRules_GreaterThan interface { + isDoubleRules_GreaterThan() +} + +type DoubleRules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or `lte`, + // the range is reversed, and the field value must be outside the specified + // range. If the field value doesn't meet the required conditions, an error + // message is generated. + // + // ```proto + // + // message MyDouble { + // // value must be greater than 5.0 [double.gt] + // double value = 1 [(buf.validate.field).double.gt = 5.0]; + // + // // value must be greater than 5 and less than 10.0 [double.gt_lt] + // double other_value = 2 [(buf.validate.field).double = { gt: 5.0, lt: 10.0 }]; + // + // // value must be greater than 10 or less than 5.0 [double.gt_lt_exclusive] + // double another_value = 3 [(buf.validate.field).double = { gt: 10.0, lt: 5.0 }]; + // } + // + // ``` + Gt float64 `protobuf:"fixed64,4,opt,name=gt,oneof"` +} + +type DoubleRules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyDouble { + // // value must be greater than or equal to 5.0 [double.gte] + // double value = 1 [(buf.validate.field).double.gte = 5.0]; + // + // // value must be greater than or equal to 5.0 and less than 10.0 [double.gte_lt] + // double other_value = 2 [(buf.validate.field).double = { gte: 5.0, lt: 10.0 }]; + // + // // value must be greater than or equal to 10.0 or less than 5.0 [double.gte_lt_exclusive] + // double another_value = 3 [(buf.validate.field).double = { gte: 10.0, lt: 5.0 }]; + // } + // + // ``` + Gte float64 `protobuf:"fixed64,5,opt,name=gte,oneof"` +} + +func (*DoubleRules_Gt) isDoubleRules_GreaterThan() {} + +func (*DoubleRules_Gte) isDoubleRules_GreaterThan() {} + +// Int32Rules describes the rules applied to `int32` values. These +// rules may also be applied to the `google.protobuf.Int32Value` Well-Known-Type. +type Int32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyInt32 { + // // value must equal 42 + // int32 value = 1 [(buf.validate.field).int32.const = 42]; + // } + // + // ``` + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *Int32Rules_Lt + // *Int32Rules_Lte + LessThan isInt32Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *Int32Rules_Gt + // *Int32Rules_Gte + GreaterThan isInt32Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MyInt32 { + // // value must be in list [1, 2, 3] + // int32 value = 1 [(buf.validate.field).int32 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []int32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error message + // is generated. + // + // ```proto + // + // message MyInt32 { + // // value must not be in list [1, 2, 3] + // int32 value = 1 [(buf.validate.field).int32 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []int32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyInt32 { + // int32 value = 1 [ + // (buf.validate.field).int32.example = 1, + // (buf.validate.field).int32.example = -10 + // ]; + // } + // + // ``` + Example []int32 `protobuf:"varint,8,rep,name=example" json:"example,omitempty"` +} + +func (x *Int32Rules) Reset() { + *x = Int32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int32Rules) ProtoMessage() {} + +func (x *Int32Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead. +func (*Int32Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{8} +} + +func (x *Int32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *Int32Rules) GetLessThan() isInt32Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *Int32Rules) GetLt() int32 { + if x, ok := x.GetLessThan().(*Int32Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *Int32Rules) GetLte() int32 { + if x, ok := x.GetLessThan().(*Int32Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *Int32Rules) GetGreaterThan() isInt32Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *Int32Rules) GetGt() int32 { + if x, ok := x.GetGreaterThan().(*Int32Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *Int32Rules) GetGte() int32 { + if x, ok := x.GetGreaterThan().(*Int32Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *Int32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int32Rules) GetExample() []int32 { + if x != nil { + return x.Example + } + return nil +} + +type isInt32Rules_LessThan interface { + isInt32Rules_LessThan() +} + +type Int32Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field + // < value). If the field value is equal to or greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyInt32 { + // // value must be less than 10 + // int32 value = 1 [(buf.validate.field).int32.lt = 10]; + // } + // + // ``` + Lt int32 `protobuf:"varint,2,opt,name=lt,oneof"` +} + +type Int32Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyInt32 { + // // value must be less than or equal to 10 + // int32 value = 1 [(buf.validate.field).int32.lte = 10]; + // } + // + // ``` + Lte int32 `protobuf:"varint,3,opt,name=lte,oneof"` +} + +func (*Int32Rules_Lt) isInt32Rules_LessThan() {} + +func (*Int32Rules_Lte) isInt32Rules_LessThan() {} + +type isInt32Rules_GreaterThan interface { + isInt32Rules_GreaterThan() +} + +type Int32Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyInt32 { + // // value must be greater than 5 [int32.gt] + // int32 value = 1 [(buf.validate.field).int32.gt = 5]; + // + // // value must be greater than 5 and less than 10 [int32.gt_lt] + // int32 other_value = 2 [(buf.validate.field).int32 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [int32.gt_lt_exclusive] + // int32 another_value = 3 [(buf.validate.field).int32 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt int32 `protobuf:"varint,4,opt,name=gt,oneof"` +} + +type Int32Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified value + // (exclusive). If the value of `gte` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyInt32 { + // // value must be greater than or equal to 5 [int32.gte] + // int32 value = 1 [(buf.validate.field).int32.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [int32.gte_lt] + // int32 other_value = 2 [(buf.validate.field).int32 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [int32.gte_lt_exclusive] + // int32 another_value = 3 [(buf.validate.field).int32 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte int32 `protobuf:"varint,5,opt,name=gte,oneof"` +} + +func (*Int32Rules_Gt) isInt32Rules_GreaterThan() {} + +func (*Int32Rules_Gte) isInt32Rules_GreaterThan() {} + +// Int64Rules describes the rules applied to `int64` values. These +// rules may also be applied to the `google.protobuf.Int64Value` Well-Known-Type. +type Int64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyInt64 { + // // value must equal 42 + // int64 value = 1 [(buf.validate.field).int64.const = 42]; + // } + // + // ``` + Const *int64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *Int64Rules_Lt + // *Int64Rules_Lte + LessThan isInt64Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *Int64Rules_Gt + // *Int64Rules_Gte + GreaterThan isInt64Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MyInt64 { + // // value must be in list [1, 2, 3] + // int64 value = 1 [(buf.validate.field).int64 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []int64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyInt64 { + // // value must not be in list [1, 2, 3] + // int64 value = 1 [(buf.validate.field).int64 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []int64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyInt64 { + // int64 value = 1 [ + // (buf.validate.field).int64.example = 1, + // (buf.validate.field).int64.example = -10 + // ]; + // } + // + // ``` + Example []int64 `protobuf:"varint,9,rep,name=example" json:"example,omitempty"` +} + +func (x *Int64Rules) Reset() { + *x = Int64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int64Rules) ProtoMessage() {} + +func (x *Int64Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead. +func (*Int64Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{9} +} + +func (x *Int64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *Int64Rules) GetLessThan() isInt64Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *Int64Rules) GetLt() int64 { + if x, ok := x.GetLessThan().(*Int64Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *Int64Rules) GetLte() int64 { + if x, ok := x.GetLessThan().(*Int64Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *Int64Rules) GetGreaterThan() isInt64Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *Int64Rules) GetGt() int64 { + if x, ok := x.GetGreaterThan().(*Int64Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *Int64Rules) GetGte() int64 { + if x, ok := x.GetGreaterThan().(*Int64Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *Int64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int64Rules) GetExample() []int64 { + if x != nil { + return x.Example + } + return nil +} + +type isInt64Rules_LessThan interface { + isInt64Rules_LessThan() +} + +type Int64Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MyInt64 { + // // value must be less than 10 + // int64 value = 1 [(buf.validate.field).int64.lt = 10]; + // } + // + // ``` + Lt int64 `protobuf:"varint,2,opt,name=lt,oneof"` +} + +type Int64Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyInt64 { + // // value must be less than or equal to 10 + // int64 value = 1 [(buf.validate.field).int64.lte = 10]; + // } + // + // ``` + Lte int64 `protobuf:"varint,3,opt,name=lte,oneof"` +} + +func (*Int64Rules_Lt) isInt64Rules_LessThan() {} + +func (*Int64Rules_Lte) isInt64Rules_LessThan() {} + +type isInt64Rules_GreaterThan interface { + isInt64Rules_GreaterThan() +} + +type Int64Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyInt64 { + // // value must be greater than 5 [int64.gt] + // int64 value = 1 [(buf.validate.field).int64.gt = 5]; + // + // // value must be greater than 5 and less than 10 [int64.gt_lt] + // int64 other_value = 2 [(buf.validate.field).int64 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [int64.gt_lt_exclusive] + // int64 another_value = 3 [(buf.validate.field).int64 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt int64 `protobuf:"varint,4,opt,name=gt,oneof"` +} + +type Int64Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyInt64 { + // // value must be greater than or equal to 5 [int64.gte] + // int64 value = 1 [(buf.validate.field).int64.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [int64.gte_lt] + // int64 other_value = 2 [(buf.validate.field).int64 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [int64.gte_lt_exclusive] + // int64 another_value = 3 [(buf.validate.field).int64 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte int64 `protobuf:"varint,5,opt,name=gte,oneof"` +} + +func (*Int64Rules_Gt) isInt64Rules_GreaterThan() {} + +func (*Int64Rules_Gte) isInt64Rules_GreaterThan() {} + +// UInt32Rules describes the rules applied to `uint32` values. These +// rules may also be applied to the `google.protobuf.UInt32Value` Well-Known-Type. +type UInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyUInt32 { + // // value must equal 42 + // uint32 value = 1 [(buf.validate.field).uint32.const = 42]; + // } + // + // ``` + Const *uint32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *UInt32Rules_Lt + // *UInt32Rules_Lte + LessThan isUInt32Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *UInt32Rules_Gt + // *UInt32Rules_Gte + GreaterThan isUInt32Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MyUInt32 { + // // value must be in list [1, 2, 3] + // uint32 value = 1 [(buf.validate.field).uint32 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []uint32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyUInt32 { + // // value must not be in list [1, 2, 3] + // uint32 value = 1 [(buf.validate.field).uint32 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []uint32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyUInt32 { + // uint32 value = 1 [ + // (buf.validate.field).uint32.example = 1, + // (buf.validate.field).uint32.example = 10 + // ]; + // } + // + // ``` + Example []uint32 `protobuf:"varint,8,rep,name=example" json:"example,omitempty"` +} + +func (x *UInt32Rules) Reset() { + *x = UInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt32Rules) ProtoMessage() {} + +func (x *UInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead. +func (*UInt32Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{10} +} + +func (x *UInt32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *UInt32Rules) GetLessThan() isUInt32Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *UInt32Rules) GetLt() uint32 { + if x, ok := x.GetLessThan().(*UInt32Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *UInt32Rules) GetLte() uint32 { + if x, ok := x.GetLessThan().(*UInt32Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *UInt32Rules) GetGreaterThan() isUInt32Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *UInt32Rules) GetGt() uint32 { + if x, ok := x.GetGreaterThan().(*UInt32Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *UInt32Rules) GetGte() uint32 { + if x, ok := x.GetGreaterThan().(*UInt32Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *UInt32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt32Rules) GetExample() []uint32 { + if x != nil { + return x.Example + } + return nil +} + +type isUInt32Rules_LessThan interface { + isUInt32Rules_LessThan() +} + +type UInt32Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MyUInt32 { + // // value must be less than 10 + // uint32 value = 1 [(buf.validate.field).uint32.lt = 10]; + // } + // + // ``` + Lt uint32 `protobuf:"varint,2,opt,name=lt,oneof"` +} + +type UInt32Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyUInt32 { + // // value must be less than or equal to 10 + // uint32 value = 1 [(buf.validate.field).uint32.lte = 10]; + // } + // + // ``` + Lte uint32 `protobuf:"varint,3,opt,name=lte,oneof"` +} + +func (*UInt32Rules_Lt) isUInt32Rules_LessThan() {} + +func (*UInt32Rules_Lte) isUInt32Rules_LessThan() {} + +type isUInt32Rules_GreaterThan interface { + isUInt32Rules_GreaterThan() +} + +type UInt32Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyUInt32 { + // // value must be greater than 5 [uint32.gt] + // uint32 value = 1 [(buf.validate.field).uint32.gt = 5]; + // + // // value must be greater than 5 and less than 10 [uint32.gt_lt] + // uint32 other_value = 2 [(buf.validate.field).uint32 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [uint32.gt_lt_exclusive] + // uint32 another_value = 3 [(buf.validate.field).uint32 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt uint32 `protobuf:"varint,4,opt,name=gt,oneof"` +} + +type UInt32Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyUInt32 { + // // value must be greater than or equal to 5 [uint32.gte] + // uint32 value = 1 [(buf.validate.field).uint32.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [uint32.gte_lt] + // uint32 other_value = 2 [(buf.validate.field).uint32 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [uint32.gte_lt_exclusive] + // uint32 another_value = 3 [(buf.validate.field).uint32 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte uint32 `protobuf:"varint,5,opt,name=gte,oneof"` +} + +func (*UInt32Rules_Gt) isUInt32Rules_GreaterThan() {} + +func (*UInt32Rules_Gte) isUInt32Rules_GreaterThan() {} + +// UInt64Rules describes the rules applied to `uint64` values. These +// rules may also be applied to the `google.protobuf.UInt64Value` Well-Known-Type. +type UInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyUInt64 { + // // value must equal 42 + // uint64 value = 1 [(buf.validate.field).uint64.const = 42]; + // } + // + // ``` + Const *uint64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *UInt64Rules_Lt + // *UInt64Rules_Lte + LessThan isUInt64Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *UInt64Rules_Gt + // *UInt64Rules_Gte + GreaterThan isUInt64Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MyUInt64 { + // // value must be in list [1, 2, 3] + // uint64 value = 1 [(buf.validate.field).uint64 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []uint64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyUInt64 { + // // value must not be in list [1, 2, 3] + // uint64 value = 1 [(buf.validate.field).uint64 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []uint64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyUInt64 { + // uint64 value = 1 [ + // (buf.validate.field).uint64.example = 1, + // (buf.validate.field).uint64.example = -10 + // ]; + // } + // + // ``` + Example []uint64 `protobuf:"varint,8,rep,name=example" json:"example,omitempty"` +} + +func (x *UInt64Rules) Reset() { + *x = UInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt64Rules) ProtoMessage() {} + +func (x *UInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead. +func (*UInt64Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{11} +} + +func (x *UInt64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *UInt64Rules) GetLessThan() isUInt64Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *UInt64Rules) GetLt() uint64 { + if x, ok := x.GetLessThan().(*UInt64Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *UInt64Rules) GetLte() uint64 { + if x, ok := x.GetLessThan().(*UInt64Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *UInt64Rules) GetGreaterThan() isUInt64Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *UInt64Rules) GetGt() uint64 { + if x, ok := x.GetGreaterThan().(*UInt64Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *UInt64Rules) GetGte() uint64 { + if x, ok := x.GetGreaterThan().(*UInt64Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *UInt64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt64Rules) GetExample() []uint64 { + if x != nil { + return x.Example + } + return nil +} + +type isUInt64Rules_LessThan interface { + isUInt64Rules_LessThan() +} + +type UInt64Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MyUInt64 { + // // value must be less than 10 + // uint64 value = 1 [(buf.validate.field).uint64.lt = 10]; + // } + // + // ``` + Lt uint64 `protobuf:"varint,2,opt,name=lt,oneof"` +} + +type UInt64Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyUInt64 { + // // value must be less than or equal to 10 + // uint64 value = 1 [(buf.validate.field).uint64.lte = 10]; + // } + // + // ``` + Lte uint64 `protobuf:"varint,3,opt,name=lte,oneof"` +} + +func (*UInt64Rules_Lt) isUInt64Rules_LessThan() {} + +func (*UInt64Rules_Lte) isUInt64Rules_LessThan() {} + +type isUInt64Rules_GreaterThan interface { + isUInt64Rules_GreaterThan() +} + +type UInt64Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyUInt64 { + // // value must be greater than 5 [uint64.gt] + // uint64 value = 1 [(buf.validate.field).uint64.gt = 5]; + // + // // value must be greater than 5 and less than 10 [uint64.gt_lt] + // uint64 other_value = 2 [(buf.validate.field).uint64 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [uint64.gt_lt_exclusive] + // uint64 another_value = 3 [(buf.validate.field).uint64 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt uint64 `protobuf:"varint,4,opt,name=gt,oneof"` +} + +type UInt64Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyUInt64 { + // // value must be greater than or equal to 5 [uint64.gte] + // uint64 value = 1 [(buf.validate.field).uint64.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [uint64.gte_lt] + // uint64 other_value = 2 [(buf.validate.field).uint64 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [uint64.gte_lt_exclusive] + // uint64 another_value = 3 [(buf.validate.field).uint64 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte uint64 `protobuf:"varint,5,opt,name=gte,oneof"` +} + +func (*UInt64Rules_Gt) isUInt64Rules_GreaterThan() {} + +func (*UInt64Rules_Gte) isUInt64Rules_GreaterThan() {} + +// SInt32Rules describes the rules applied to `sint32` values. +type SInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MySInt32 { + // // value must equal 42 + // sint32 value = 1 [(buf.validate.field).sint32.const = 42]; + // } + // + // ``` + Const *int32 `protobuf:"zigzag32,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *SInt32Rules_Lt + // *SInt32Rules_Lte + LessThan isSInt32Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *SInt32Rules_Gt + // *SInt32Rules_Gte + GreaterThan isSInt32Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MySInt32 { + // // value must be in list [1, 2, 3] + // sint32 value = 1 [(buf.validate.field).sint32 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []int32 `protobuf:"zigzag32,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MySInt32 { + // // value must not be in list [1, 2, 3] + // sint32 value = 1 [(buf.validate.field).sint32 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []int32 `protobuf:"zigzag32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MySInt32 { + // sint32 value = 1 [ + // (buf.validate.field).sint32.example = 1, + // (buf.validate.field).sint32.example = -10 + // ]; + // } + // + // ``` + Example []int32 `protobuf:"zigzag32,8,rep,name=example" json:"example,omitempty"` +} + +func (x *SInt32Rules) Reset() { + *x = SInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt32Rules) ProtoMessage() {} + +func (x *SInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead. +func (*SInt32Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{12} +} + +func (x *SInt32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *SInt32Rules) GetLessThan() isSInt32Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *SInt32Rules) GetLt() int32 { + if x, ok := x.GetLessThan().(*SInt32Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *SInt32Rules) GetLte() int32 { + if x, ok := x.GetLessThan().(*SInt32Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *SInt32Rules) GetGreaterThan() isSInt32Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *SInt32Rules) GetGt() int32 { + if x, ok := x.GetGreaterThan().(*SInt32Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *SInt32Rules) GetGte() int32 { + if x, ok := x.GetGreaterThan().(*SInt32Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *SInt32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt32Rules) GetExample() []int32 { + if x != nil { + return x.Example + } + return nil +} + +type isSInt32Rules_LessThan interface { + isSInt32Rules_LessThan() +} + +type SInt32Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field + // < value). If the field value is equal to or greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MySInt32 { + // // value must be less than 10 + // sint32 value = 1 [(buf.validate.field).sint32.lt = 10]; + // } + // + // ``` + Lt int32 `protobuf:"zigzag32,2,opt,name=lt,oneof"` +} + +type SInt32Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MySInt32 { + // // value must be less than or equal to 10 + // sint32 value = 1 [(buf.validate.field).sint32.lte = 10]; + // } + // + // ``` + Lte int32 `protobuf:"zigzag32,3,opt,name=lte,oneof"` +} + +func (*SInt32Rules_Lt) isSInt32Rules_LessThan() {} + +func (*SInt32Rules_Lte) isSInt32Rules_LessThan() {} + +type isSInt32Rules_GreaterThan interface { + isSInt32Rules_GreaterThan() +} + +type SInt32Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySInt32 { + // // value must be greater than 5 [sint32.gt] + // sint32 value = 1 [(buf.validate.field).sint32.gt = 5]; + // + // // value must be greater than 5 and less than 10 [sint32.gt_lt] + // sint32 other_value = 2 [(buf.validate.field).sint32 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [sint32.gt_lt_exclusive] + // sint32 another_value = 3 [(buf.validate.field).sint32 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt int32 `protobuf:"zigzag32,4,opt,name=gt,oneof"` +} + +type SInt32Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySInt32 { + // // value must be greater than or equal to 5 [sint32.gte] + // sint32 value = 1 [(buf.validate.field).sint32.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [sint32.gte_lt] + // sint32 other_value = 2 [(buf.validate.field).sint32 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [sint32.gte_lt_exclusive] + // sint32 another_value = 3 [(buf.validate.field).sint32 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte int32 `protobuf:"zigzag32,5,opt,name=gte,oneof"` +} + +func (*SInt32Rules_Gt) isSInt32Rules_GreaterThan() {} + +func (*SInt32Rules_Gte) isSInt32Rules_GreaterThan() {} + +// SInt64Rules describes the rules applied to `sint64` values. +type SInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MySInt64 { + // // value must equal 42 + // sint64 value = 1 [(buf.validate.field).sint64.const = 42]; + // } + // + // ``` + Const *int64 `protobuf:"zigzag64,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *SInt64Rules_Lt + // *SInt64Rules_Lte + LessThan isSInt64Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *SInt64Rules_Gt + // *SInt64Rules_Gte + GreaterThan isSInt64Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message + // is generated. + // + // ```proto + // + // message MySInt64 { + // // value must be in list [1, 2, 3] + // sint64 value = 1 [(buf.validate.field).sint64 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []int64 `protobuf:"zigzag64,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MySInt64 { + // // value must not be in list [1, 2, 3] + // sint64 value = 1 [(buf.validate.field).sint64 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []int64 `protobuf:"zigzag64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MySInt64 { + // sint64 value = 1 [ + // (buf.validate.field).sint64.example = 1, + // (buf.validate.field).sint64.example = -10 + // ]; + // } + // + // ``` + Example []int64 `protobuf:"zigzag64,8,rep,name=example" json:"example,omitempty"` +} + +func (x *SInt64Rules) Reset() { + *x = SInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt64Rules) ProtoMessage() {} + +func (x *SInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead. +func (*SInt64Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{13} +} + +func (x *SInt64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *SInt64Rules) GetLessThan() isSInt64Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *SInt64Rules) GetLt() int64 { + if x, ok := x.GetLessThan().(*SInt64Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *SInt64Rules) GetLte() int64 { + if x, ok := x.GetLessThan().(*SInt64Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *SInt64Rules) GetGreaterThan() isSInt64Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *SInt64Rules) GetGt() int64 { + if x, ok := x.GetGreaterThan().(*SInt64Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *SInt64Rules) GetGte() int64 { + if x, ok := x.GetGreaterThan().(*SInt64Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *SInt64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt64Rules) GetExample() []int64 { + if x != nil { + return x.Example + } + return nil +} + +type isSInt64Rules_LessThan interface { + isSInt64Rules_LessThan() +} + +type SInt64Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field + // < value). If the field value is equal to or greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MySInt64 { + // // value must be less than 10 + // sint64 value = 1 [(buf.validate.field).sint64.lt = 10]; + // } + // + // ``` + Lt int64 `protobuf:"zigzag64,2,opt,name=lt,oneof"` +} + +type SInt64Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MySInt64 { + // // value must be less than or equal to 10 + // sint64 value = 1 [(buf.validate.field).sint64.lte = 10]; + // } + // + // ``` + Lte int64 `protobuf:"zigzag64,3,opt,name=lte,oneof"` +} + +func (*SInt64Rules_Lt) isSInt64Rules_LessThan() {} + +func (*SInt64Rules_Lte) isSInt64Rules_LessThan() {} + +type isSInt64Rules_GreaterThan interface { + isSInt64Rules_GreaterThan() +} + +type SInt64Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySInt64 { + // // value must be greater than 5 [sint64.gt] + // sint64 value = 1 [(buf.validate.field).sint64.gt = 5]; + // + // // value must be greater than 5 and less than 10 [sint64.gt_lt] + // sint64 other_value = 2 [(buf.validate.field).sint64 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [sint64.gt_lt_exclusive] + // sint64 another_value = 3 [(buf.validate.field).sint64 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt int64 `protobuf:"zigzag64,4,opt,name=gt,oneof"` +} + +type SInt64Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySInt64 { + // // value must be greater than or equal to 5 [sint64.gte] + // sint64 value = 1 [(buf.validate.field).sint64.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [sint64.gte_lt] + // sint64 other_value = 2 [(buf.validate.field).sint64 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [sint64.gte_lt_exclusive] + // sint64 another_value = 3 [(buf.validate.field).sint64 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte int64 `protobuf:"zigzag64,5,opt,name=gte,oneof"` +} + +func (*SInt64Rules_Gt) isSInt64Rules_GreaterThan() {} + +func (*SInt64Rules_Gte) isSInt64Rules_GreaterThan() {} + +// Fixed32Rules describes the rules applied to `fixed32` values. +type Fixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. + // If the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyFixed32 { + // // value must equal 42 + // fixed32 value = 1 [(buf.validate.field).fixed32.const = 42]; + // } + // + // ``` + Const *uint32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *Fixed32Rules_Lt + // *Fixed32Rules_Lte + LessThan isFixed32Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *Fixed32Rules_Gt + // *Fixed32Rules_Gte + GreaterThan isFixed32Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message + // is generated. + // + // ```proto + // + // message MyFixed32 { + // // value must be in list [1, 2, 3] + // fixed32 value = 1 [(buf.validate.field).fixed32 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []uint32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyFixed32 { + // // value must not be in list [1, 2, 3] + // fixed32 value = 1 [(buf.validate.field).fixed32 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []uint32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyFixed32 { + // fixed32 value = 1 [ + // (buf.validate.field).fixed32.example = 1, + // (buf.validate.field).fixed32.example = 2 + // ]; + // } + // + // ``` + Example []uint32 `protobuf:"fixed32,8,rep,name=example" json:"example,omitempty"` +} + +func (x *Fixed32Rules) Reset() { + *x = Fixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed32Rules) ProtoMessage() {} + +func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead. +func (*Fixed32Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{14} +} + +func (x *Fixed32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *Fixed32Rules) GetLessThan() isFixed32Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *Fixed32Rules) GetLt() uint32 { + if x, ok := x.GetLessThan().(*Fixed32Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *Fixed32Rules) GetLte() uint32 { + if x, ok := x.GetLessThan().(*Fixed32Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *Fixed32Rules) GetGreaterThan() isFixed32Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *Fixed32Rules) GetGt() uint32 { + if x, ok := x.GetGreaterThan().(*Fixed32Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *Fixed32Rules) GetGte() uint32 { + if x, ok := x.GetGreaterThan().(*Fixed32Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *Fixed32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed32Rules) GetExample() []uint32 { + if x != nil { + return x.Example + } + return nil +} + +type isFixed32Rules_LessThan interface { + isFixed32Rules_LessThan() +} + +type Fixed32Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MyFixed32 { + // // value must be less than 10 + // fixed32 value = 1 [(buf.validate.field).fixed32.lt = 10]; + // } + // + // ``` + Lt uint32 `protobuf:"fixed32,2,opt,name=lt,oneof"` +} + +type Fixed32Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyFixed32 { + // // value must be less than or equal to 10 + // fixed32 value = 1 [(buf.validate.field).fixed32.lte = 10]; + // } + // + // ``` + Lte uint32 `protobuf:"fixed32,3,opt,name=lte,oneof"` +} + +func (*Fixed32Rules_Lt) isFixed32Rules_LessThan() {} + +func (*Fixed32Rules_Lte) isFixed32Rules_LessThan() {} + +type isFixed32Rules_GreaterThan interface { + isFixed32Rules_GreaterThan() +} + +type Fixed32Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyFixed32 { + // // value must be greater than 5 [fixed32.gt] + // fixed32 value = 1 [(buf.validate.field).fixed32.gt = 5]; + // + // // value must be greater than 5 and less than 10 [fixed32.gt_lt] + // fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [fixed32.gt_lt_exclusive] + // fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt uint32 `protobuf:"fixed32,4,opt,name=gt,oneof"` +} + +type Fixed32Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyFixed32 { + // // value must be greater than or equal to 5 [fixed32.gte] + // fixed32 value = 1 [(buf.validate.field).fixed32.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [fixed32.gte_lt] + // fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [fixed32.gte_lt_exclusive] + // fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte uint32 `protobuf:"fixed32,5,opt,name=gte,oneof"` +} + +func (*Fixed32Rules_Gt) isFixed32Rules_GreaterThan() {} + +func (*Fixed32Rules_Gte) isFixed32Rules_GreaterThan() {} + +// Fixed64Rules describes the rules applied to `fixed64` values. +type Fixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyFixed64 { + // // value must equal 42 + // fixed64 value = 1 [(buf.validate.field).fixed64.const = 42]; + // } + // + // ``` + Const *uint64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *Fixed64Rules_Lt + // *Fixed64Rules_Lte + LessThan isFixed64Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *Fixed64Rules_Gt + // *Fixed64Rules_Gte + GreaterThan isFixed64Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MyFixed64 { + // // value must be in list [1, 2, 3] + // fixed64 value = 1 [(buf.validate.field).fixed64 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []uint64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyFixed64 { + // // value must not be in list [1, 2, 3] + // fixed64 value = 1 [(buf.validate.field).fixed64 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []uint64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyFixed64 { + // fixed64 value = 1 [ + // (buf.validate.field).fixed64.example = 1, + // (buf.validate.field).fixed64.example = 2 + // ]; + // } + // + // ``` + Example []uint64 `protobuf:"fixed64,8,rep,name=example" json:"example,omitempty"` +} + +func (x *Fixed64Rules) Reset() { + *x = Fixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed64Rules) ProtoMessage() {} + +func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead. +func (*Fixed64Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{15} +} + +func (x *Fixed64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *Fixed64Rules) GetLessThan() isFixed64Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *Fixed64Rules) GetLt() uint64 { + if x, ok := x.GetLessThan().(*Fixed64Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *Fixed64Rules) GetLte() uint64 { + if x, ok := x.GetLessThan().(*Fixed64Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *Fixed64Rules) GetGreaterThan() isFixed64Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *Fixed64Rules) GetGt() uint64 { + if x, ok := x.GetGreaterThan().(*Fixed64Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *Fixed64Rules) GetGte() uint64 { + if x, ok := x.GetGreaterThan().(*Fixed64Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *Fixed64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed64Rules) GetExample() []uint64 { + if x != nil { + return x.Example + } + return nil +} + +type isFixed64Rules_LessThan interface { + isFixed64Rules_LessThan() +} + +type Fixed64Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MyFixed64 { + // // value must be less than 10 + // fixed64 value = 1 [(buf.validate.field).fixed64.lt = 10]; + // } + // + // ``` + Lt uint64 `protobuf:"fixed64,2,opt,name=lt,oneof"` +} + +type Fixed64Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MyFixed64 { + // // value must be less than or equal to 10 + // fixed64 value = 1 [(buf.validate.field).fixed64.lte = 10]; + // } + // + // ``` + Lte uint64 `protobuf:"fixed64,3,opt,name=lte,oneof"` +} + +func (*Fixed64Rules_Lt) isFixed64Rules_LessThan() {} + +func (*Fixed64Rules_Lte) isFixed64Rules_LessThan() {} + +type isFixed64Rules_GreaterThan interface { + isFixed64Rules_GreaterThan() +} + +type Fixed64Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyFixed64 { + // // value must be greater than 5 [fixed64.gt] + // fixed64 value = 1 [(buf.validate.field).fixed64.gt = 5]; + // + // // value must be greater than 5 and less than 10 [fixed64.gt_lt] + // fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [fixed64.gt_lt_exclusive] + // fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt uint64 `protobuf:"fixed64,4,opt,name=gt,oneof"` +} + +type Fixed64Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyFixed64 { + // // value must be greater than or equal to 5 [fixed64.gte] + // fixed64 value = 1 [(buf.validate.field).fixed64.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [fixed64.gte_lt] + // fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [fixed64.gte_lt_exclusive] + // fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte uint64 `protobuf:"fixed64,5,opt,name=gte,oneof"` +} + +func (*Fixed64Rules_Gt) isFixed64Rules_GreaterThan() {} + +func (*Fixed64Rules_Gte) isFixed64Rules_GreaterThan() {} + +// SFixed32Rules describes the rules applied to `fixed32` values. +type SFixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MySFixed32 { + // // value must equal 42 + // sfixed32 value = 1 [(buf.validate.field).sfixed32.const = 42]; + // } + // + // ``` + Const *int32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *SFixed32Rules_Lt + // *SFixed32Rules_Lte + LessThan isSFixed32Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *SFixed32Rules_Gt + // *SFixed32Rules_Gte + GreaterThan isSFixed32Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MySFixed32 { + // // value must be in list [1, 2, 3] + // sfixed32 value = 1 [(buf.validate.field).sfixed32 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []int32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MySFixed32 { + // // value must not be in list [1, 2, 3] + // sfixed32 value = 1 [(buf.validate.field).sfixed32 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []int32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MySFixed32 { + // sfixed32 value = 1 [ + // (buf.validate.field).sfixed32.example = 1, + // (buf.validate.field).sfixed32.example = 2 + // ]; + // } + // + // ``` + Example []int32 `protobuf:"fixed32,8,rep,name=example" json:"example,omitempty"` +} + +func (x *SFixed32Rules) Reset() { + *x = SFixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed32Rules) ProtoMessage() {} + +func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead. +func (*SFixed32Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{16} +} + +func (x *SFixed32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *SFixed32Rules) GetLessThan() isSFixed32Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *SFixed32Rules) GetLt() int32 { + if x, ok := x.GetLessThan().(*SFixed32Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *SFixed32Rules) GetLte() int32 { + if x, ok := x.GetLessThan().(*SFixed32Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *SFixed32Rules) GetGreaterThan() isSFixed32Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *SFixed32Rules) GetGt() int32 { + if x, ok := x.GetGreaterThan().(*SFixed32Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *SFixed32Rules) GetGte() int32 { + if x, ok := x.GetGreaterThan().(*SFixed32Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *SFixed32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed32Rules) GetExample() []int32 { + if x != nil { + return x.Example + } + return nil +} + +type isSFixed32Rules_LessThan interface { + isSFixed32Rules_LessThan() +} + +type SFixed32Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MySFixed32 { + // // value must be less than 10 + // sfixed32 value = 1 [(buf.validate.field).sfixed32.lt = 10]; + // } + // + // ``` + Lt int32 `protobuf:"fixed32,2,opt,name=lt,oneof"` +} + +type SFixed32Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MySFixed32 { + // // value must be less than or equal to 10 + // sfixed32 value = 1 [(buf.validate.field).sfixed32.lte = 10]; + // } + // + // ``` + Lte int32 `protobuf:"fixed32,3,opt,name=lte,oneof"` +} + +func (*SFixed32Rules_Lt) isSFixed32Rules_LessThan() {} + +func (*SFixed32Rules_Lte) isSFixed32Rules_LessThan() {} + +type isSFixed32Rules_GreaterThan interface { + isSFixed32Rules_GreaterThan() +} + +type SFixed32Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySFixed32 { + // // value must be greater than 5 [sfixed32.gt] + // sfixed32 value = 1 [(buf.validate.field).sfixed32.gt = 5]; + // + // // value must be greater than 5 and less than 10 [sfixed32.gt_lt] + // sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [sfixed32.gt_lt_exclusive] + // sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt int32 `protobuf:"fixed32,4,opt,name=gt,oneof"` +} + +type SFixed32Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySFixed32 { + // // value must be greater than or equal to 5 [sfixed32.gte] + // sfixed32 value = 1 [(buf.validate.field).sfixed32.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [sfixed32.gte_lt] + // sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [sfixed32.gte_lt_exclusive] + // sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte int32 `protobuf:"fixed32,5,opt,name=gte,oneof"` +} + +func (*SFixed32Rules_Gt) isSFixed32Rules_GreaterThan() {} + +func (*SFixed32Rules_Gte) isSFixed32Rules_GreaterThan() {} + +// SFixed64Rules describes the rules applied to `fixed64` values. +type SFixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MySFixed64 { + // // value must equal 42 + // sfixed64 value = 1 [(buf.validate.field).sfixed64.const = 42]; + // } + // + // ``` + Const *int64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *SFixed64Rules_Lt + // *SFixed64Rules_Lte + LessThan isSFixed64Rules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *SFixed64Rules_Gt + // *SFixed64Rules_Gte + GreaterThan isSFixed64Rules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` requires the field value to be equal to one of the specified values. + // If the field value isn't one of the specified values, an error message is + // generated. + // + // ```proto + // + // message MySFixed64 { + // // value must be in list [1, 2, 3] + // sfixed64 value = 1 [(buf.validate.field).sfixed64 = { in: [1, 2, 3] }]; + // } + // + // ``` + In []int64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to not be equal to any of the specified + // values. If the field value is one of the specified values, an error + // message is generated. + // + // ```proto + // + // message MySFixed64 { + // // value must not be in list [1, 2, 3] + // sfixed64 value = 1 [(buf.validate.field).sfixed64 = { not_in: [1, 2, 3] }]; + // } + // + // ``` + NotIn []int64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MySFixed64 { + // sfixed64 value = 1 [ + // (buf.validate.field).sfixed64.example = 1, + // (buf.validate.field).sfixed64.example = 2 + // ]; + // } + // + // ``` + Example []int64 `protobuf:"fixed64,8,rep,name=example" json:"example,omitempty"` +} + +func (x *SFixed64Rules) Reset() { + *x = SFixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed64Rules) ProtoMessage() {} + +func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead. +func (*SFixed64Rules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{17} +} + +func (x *SFixed64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (m *SFixed64Rules) GetLessThan() isSFixed64Rules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *SFixed64Rules) GetLt() int64 { + if x, ok := x.GetLessThan().(*SFixed64Rules_Lt); ok { + return x.Lt + } + return 0 +} + +func (x *SFixed64Rules) GetLte() int64 { + if x, ok := x.GetLessThan().(*SFixed64Rules_Lte); ok { + return x.Lte + } + return 0 +} + +func (m *SFixed64Rules) GetGreaterThan() isSFixed64Rules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *SFixed64Rules) GetGt() int64 { + if x, ok := x.GetGreaterThan().(*SFixed64Rules_Gt); ok { + return x.Gt + } + return 0 +} + +func (x *SFixed64Rules) GetGte() int64 { + if x, ok := x.GetGreaterThan().(*SFixed64Rules_Gte); ok { + return x.Gte + } + return 0 +} + +func (x *SFixed64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed64Rules) GetExample() []int64 { + if x != nil { + return x.Example + } + return nil +} + +type isSFixed64Rules_LessThan interface { + isSFixed64Rules_LessThan() +} + +type SFixed64Rules_Lt struct { + // `lt` requires the field value to be less than the specified value (field < + // value). If the field value is equal to or greater than the specified value, + // an error message is generated. + // + // ```proto + // + // message MySFixed64 { + // // value must be less than 10 + // sfixed64 value = 1 [(buf.validate.field).sfixed64.lt = 10]; + // } + // + // ``` + Lt int64 `protobuf:"fixed64,2,opt,name=lt,oneof"` +} + +type SFixed64Rules_Lte struct { + // `lte` requires the field value to be less than or equal to the specified + // value (field <= value). If the field value is greater than the specified + // value, an error message is generated. + // + // ```proto + // + // message MySFixed64 { + // // value must be less than or equal to 10 + // sfixed64 value = 1 [(buf.validate.field).sfixed64.lte = 10]; + // } + // + // ``` + Lte int64 `protobuf:"fixed64,3,opt,name=lte,oneof"` +} + +func (*SFixed64Rules_Lt) isSFixed64Rules_LessThan() {} + +func (*SFixed64Rules_Lte) isSFixed64Rules_LessThan() {} + +type isSFixed64Rules_GreaterThan interface { + isSFixed64Rules_GreaterThan() +} + +type SFixed64Rules_Gt struct { + // `gt` requires the field value to be greater than the specified value + // (exclusive). If the value of `gt` is larger than a specified `lt` or + // `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySFixed64 { + // // value must be greater than 5 [sfixed64.gt] + // sfixed64 value = 1 [(buf.validate.field).sfixed64.gt = 5]; + // + // // value must be greater than 5 and less than 10 [sfixed64.gt_lt] + // sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gt: 5, lt: 10 }]; + // + // // value must be greater than 10 or less than 5 [sfixed64.gt_lt_exclusive] + // sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gt: 10, lt: 5 }]; + // } + // + // ``` + Gt int64 `protobuf:"fixed64,4,opt,name=gt,oneof"` +} + +type SFixed64Rules_Gte struct { + // `gte` requires the field value to be greater than or equal to the specified + // value (exclusive). If the value of `gte` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MySFixed64 { + // // value must be greater than or equal to 5 [sfixed64.gte] + // sfixed64 value = 1 [(buf.validate.field).sfixed64.gte = 5]; + // + // // value must be greater than or equal to 5 and less than 10 [sfixed64.gte_lt] + // sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gte: 5, lt: 10 }]; + // + // // value must be greater than or equal to 10 or less than 5 [sfixed64.gte_lt_exclusive] + // sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gte: 10, lt: 5 }]; + // } + // + // ``` + Gte int64 `protobuf:"fixed64,5,opt,name=gte,oneof"` +} + +func (*SFixed64Rules_Gt) isSFixed64Rules_GreaterThan() {} + +func (*SFixed64Rules_Gte) isSFixed64Rules_GreaterThan() {} + +// BoolRules describes the rules applied to `bool` values. These rules +// may also be applied to the `google.protobuf.BoolValue` Well-Known-Type. +type BoolRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified boolean value. + // If the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyBool { + // // value must equal true + // bool value = 1 [(buf.validate.field).bool.const = true]; + // } + // + // ``` + Const *bool `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyBool { + // bool value = 1 [ + // (buf.validate.field).bool.example = 1, + // (buf.validate.field).bool.example = 2 + // ]; + // } + // + // ``` + Example []bool `protobuf:"varint,2,rep,name=example" json:"example,omitempty"` +} + +func (x *BoolRules) Reset() { + *x = BoolRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoolRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoolRules) ProtoMessage() {} + +func (x *BoolRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoolRules.ProtoReflect.Descriptor instead. +func (*BoolRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{18} +} + +func (x *BoolRules) GetConst() bool { + if x != nil && x.Const != nil { + return *x.Const + } + return false +} + +func (x *BoolRules) GetExample() []bool { + if x != nil { + return x.Example + } + return nil +} + +// StringRules describes the rules applied to `string` values These +// rules may also be applied to the `google.protobuf.StringValue` Well-Known-Type. +type StringRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified value. If + // the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyString { + // // value must equal `hello` + // string value = 1 [(buf.validate.field).string.const = "hello"]; + // } + // + // ``` + Const *string `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // `len` dictates that the field value must have the specified + // number of characters (Unicode code points), which may differ from the number + // of bytes in the string. If the field value does not meet the specified + // length, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value length must be 5 characters + // string value = 1 [(buf.validate.field).string.len = 5]; + // } + // + // ``` + Len *uint64 `protobuf:"varint,19,opt,name=len" json:"len,omitempty"` + // `min_len` specifies that the field value must have at least the specified + // number of characters (Unicode code points), which may differ from the number + // of bytes in the string. If the field value contains fewer characters, an error + // message will be generated. + // + // ```proto + // + // message MyString { + // // value length must be at least 3 characters + // string value = 1 [(buf.validate.field).string.min_len = 3]; + // } + // + // ``` + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // `max_len` specifies that the field value must have no more than the specified + // number of characters (Unicode code points), which may differ from the + // number of bytes in the string. If the field value contains more characters, + // an error message will be generated. + // + // ```proto + // + // message MyString { + // // value length must be at most 10 characters + // string value = 1 [(buf.validate.field).string.max_len = 10]; + // } + // + // ``` + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // `len_bytes` dictates that the field value must have the specified number of + // bytes. If the field value does not match the specified length in bytes, + // an error message will be generated. + // + // ```proto + // + // message MyString { + // // value length must be 6 bytes + // string value = 1 [(buf.validate.field).string.len_bytes = 6]; + // } + // + // ``` + LenBytes *uint64 `protobuf:"varint,20,opt,name=len_bytes,json=lenBytes" json:"len_bytes,omitempty"` + // `min_bytes` specifies that the field value must have at least the specified + // number of bytes. If the field value contains fewer bytes, an error message + // will be generated. + // + // ```proto + // + // message MyString { + // // value length must be at least 4 bytes + // string value = 1 [(buf.validate.field).string.min_bytes = 4]; + // } + // + // ``` + MinBytes *uint64 `protobuf:"varint,4,opt,name=min_bytes,json=minBytes" json:"min_bytes,omitempty"` + // `max_bytes` specifies that the field value must have no more than the + // specified number of bytes. If the field value contains more bytes, an + // error message will be generated. + // + // ```proto + // + // message MyString { + // // value length must be at most 8 bytes + // string value = 1 [(buf.validate.field).string.max_bytes = 8]; + // } + // + // ``` + MaxBytes *uint64 `protobuf:"varint,5,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` + // `pattern` specifies that the field value must match the specified + // regular expression (RE2 syntax), with the expression provided without any + // delimiters. If the field value doesn't match the regular expression, an + // error message will be generated. + // + // ```proto + // + // message MyString { + // // value does not match regex pattern `^[a-zA-Z]//$` + // string value = 1 [(buf.validate.field).string.pattern = "^[a-zA-Z]//$"]; + // } + // + // ``` + Pattern *string `protobuf:"bytes,6,opt,name=pattern" json:"pattern,omitempty"` + // `prefix` specifies that the field value must have the + // specified substring at the beginning of the string. If the field value + // doesn't start with the specified prefix, an error message will be + // generated. + // + // ```proto + // + // message MyString { + // // value does not have prefix `pre` + // string value = 1 [(buf.validate.field).string.prefix = "pre"]; + // } + // + // ``` + Prefix *string `protobuf:"bytes,7,opt,name=prefix" json:"prefix,omitempty"` + // `suffix` specifies that the field value must have the + // specified substring at the end of the string. If the field value doesn't + // end with the specified suffix, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value does not have suffix `post` + // string value = 1 [(buf.validate.field).string.suffix = "post"]; + // } + // + // ``` + Suffix *string `protobuf:"bytes,8,opt,name=suffix" json:"suffix,omitempty"` + // `contains` specifies that the field value must have the + // specified substring anywhere in the string. If the field value doesn't + // contain the specified substring, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value does not contain substring `inside`. + // string value = 1 [(buf.validate.field).string.contains = "inside"]; + // } + // + // ``` + Contains *string `protobuf:"bytes,9,opt,name=contains" json:"contains,omitempty"` + // `not_contains` specifies that the field value must not have the + // specified substring anywhere in the string. If the field value contains + // the specified substring, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value contains substring `inside`. + // string value = 1 [(buf.validate.field).string.not_contains = "inside"]; + // } + // + // ``` + NotContains *string `protobuf:"bytes,23,opt,name=not_contains,json=notContains" json:"not_contains,omitempty"` + // `in` specifies that the field value must be equal to one of the specified + // values. If the field value isn't one of the specified values, an error + // message will be generated. + // + // ```proto + // + // message MyString { + // // value must be in list ["apple", "banana"] + // string value = 1 [(buf.validate.field).string.in = "apple", (buf.validate.field).string.in = "banana"]; + // } + // + // ``` + In []string `protobuf:"bytes,10,rep,name=in" json:"in,omitempty"` + // `not_in` specifies that the field value cannot be equal to any + // of the specified values. If the field value is one of the specified values, + // an error message will be generated. + // ```proto + // + // message MyString { + // // value must not be in list ["orange", "grape"] + // string value = 1 [(buf.validate.field).string.not_in = "orange", (buf.validate.field).string.not_in = "grape"]; + // } + // + // ``` + NotIn []string `protobuf:"bytes,11,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `WellKnown` rules provide advanced rules against common string + // patterns. + // + // Types that are assignable to WellKnown: + // + // *StringRules_Email + // *StringRules_Hostname + // *StringRules_Ip + // *StringRules_Ipv4 + // *StringRules_Ipv6 + // *StringRules_Uri + // *StringRules_UriRef + // *StringRules_Address + // *StringRules_Uuid + // *StringRules_Tuuid + // *StringRules_IpWithPrefixlen + // *StringRules_Ipv4WithPrefixlen + // *StringRules_Ipv6WithPrefixlen + // *StringRules_IpPrefix + // *StringRules_Ipv4Prefix + // *StringRules_Ipv6Prefix + // *StringRules_HostAndPort + // *StringRules_WellKnownRegex + WellKnown isStringRules_WellKnown `protobuf_oneof:"well_known"` + // This applies to regexes `HTTP_HEADER_NAME` and `HTTP_HEADER_VALUE` to + // enable strict header validation. By default, this is true, and HTTP header + // validations are [RFC-compliant](https://datatracker.ietf.org/doc/html/rfc7230#section-3). Setting to false will enable looser + // validations that only disallow `\r\n\0` characters, which can be used to + // bypass header matching rules. + // + // ```proto + // + // message MyString { + // // The field `value` must have be a valid HTTP headers, but not enforced with strict rules. + // string value = 1 [(buf.validate.field).string.strict = false]; + // } + // + // ``` + Strict *bool `protobuf:"varint,25,opt,name=strict" json:"strict,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyString { + // string value = 1 [ + // (buf.validate.field).string.example = "hello", + // (buf.validate.field).string.example = "world" + // ]; + // } + // + // ``` + Example []string `protobuf:"bytes,34,rep,name=example" json:"example,omitempty"` +} + +func (x *StringRules) Reset() { + *x = StringRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StringRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringRules) ProtoMessage() {} + +func (x *StringRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StringRules.ProtoReflect.Descriptor instead. +func (*StringRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{19} +} + +func (x *StringRules) GetConst() string { + if x != nil && x.Const != nil { + return *x.Const + } + return "" +} + +func (x *StringRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *StringRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *StringRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *StringRules) GetLenBytes() uint64 { + if x != nil && x.LenBytes != nil { + return *x.LenBytes + } + return 0 +} + +func (x *StringRules) GetMinBytes() uint64 { + if x != nil && x.MinBytes != nil { + return *x.MinBytes + } + return 0 +} + +func (x *StringRules) GetMaxBytes() uint64 { + if x != nil && x.MaxBytes != nil { + return *x.MaxBytes + } + return 0 +} + +func (x *StringRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *StringRules) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix + } + return "" +} + +func (x *StringRules) GetSuffix() string { + if x != nil && x.Suffix != nil { + return *x.Suffix + } + return "" +} + +func (x *StringRules) GetContains() string { + if x != nil && x.Contains != nil { + return *x.Contains + } + return "" +} + +func (x *StringRules) GetNotContains() string { + if x != nil && x.NotContains != nil { + return *x.NotContains + } + return "" +} + +func (x *StringRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *StringRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *StringRules) GetWellKnown() isStringRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *StringRules) GetEmail() bool { + if x, ok := x.GetWellKnown().(*StringRules_Email); ok { + return x.Email + } + return false +} + +func (x *StringRules) GetHostname() bool { + if x, ok := x.GetWellKnown().(*StringRules_Hostname); ok { + return x.Hostname + } + return false +} + +func (x *StringRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *StringRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *StringRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *StringRules) GetUri() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uri); ok { + return x.Uri + } + return false +} + +func (x *StringRules) GetUriRef() bool { + if x, ok := x.GetWellKnown().(*StringRules_UriRef); ok { + return x.UriRef + } + return false +} + +func (x *StringRules) GetAddress() bool { + if x, ok := x.GetWellKnown().(*StringRules_Address); ok { + return x.Address + } + return false +} + +func (x *StringRules) GetUuid() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uuid); ok { + return x.Uuid + } + return false +} + +func (x *StringRules) GetTuuid() bool { + if x, ok := x.GetWellKnown().(*StringRules_Tuuid); ok { + return x.Tuuid + } + return false +} + +func (x *StringRules) GetIpWithPrefixlen() bool { + if x, ok := x.GetWellKnown().(*StringRules_IpWithPrefixlen); ok { + return x.IpWithPrefixlen + } + return false +} + +func (x *StringRules) GetIpv4WithPrefixlen() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv4WithPrefixlen); ok { + return x.Ipv4WithPrefixlen + } + return false +} + +func (x *StringRules) GetIpv6WithPrefixlen() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv6WithPrefixlen); ok { + return x.Ipv6WithPrefixlen + } + return false +} + +func (x *StringRules) GetIpPrefix() bool { + if x, ok := x.GetWellKnown().(*StringRules_IpPrefix); ok { + return x.IpPrefix + } + return false +} + +func (x *StringRules) GetIpv4Prefix() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv4Prefix); ok { + return x.Ipv4Prefix + } + return false +} + +func (x *StringRules) GetIpv6Prefix() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv6Prefix); ok { + return x.Ipv6Prefix + } + return false +} + +func (x *StringRules) GetHostAndPort() bool { + if x, ok := x.GetWellKnown().(*StringRules_HostAndPort); ok { + return x.HostAndPort + } + return false +} + +func (x *StringRules) GetWellKnownRegex() KnownRegex { + if x, ok := x.GetWellKnown().(*StringRules_WellKnownRegex); ok { + return x.WellKnownRegex + } + return KnownRegex_KNOWN_REGEX_UNSPECIFIED +} + +func (x *StringRules) GetStrict() bool { + if x != nil && x.Strict != nil { + return *x.Strict + } + return false +} + +func (x *StringRules) GetExample() []string { + if x != nil { + return x.Example + } + return nil +} + +type isStringRules_WellKnown interface { + isStringRules_WellKnown() +} + +type StringRules_Email struct { + // `email` specifies that the field value must be a valid email address, for + // example "foo@example.com". + // + // Conforms to the definition for a valid email address from the [HTML standard](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address). + // Note that this standard willfully deviates from [RFC 5322](https://datatracker.ietf.org/doc/html/rfc5322), + // which allows many unexpected forms of email addresses and will easily match + // a typographical error. + // + // If the field value isn't a valid email address, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid email address + // string value = 1 [(buf.validate.field).string.email = true]; + // } + // + // ``` + Email bool `protobuf:"varint,12,opt,name=email,oneof"` +} + +type StringRules_Hostname struct { + // `hostname` specifies that the field value must be a valid hostname, for + // example "foo.example.com". + // + // A valid hostname follows the rules below: + // - The name consists of one or more labels, separated by a dot ("."). + // - Each label can be 1 to 63 alphanumeric characters. + // - A label can contain hyphens ("-"), but must not start or end with a hyphen. + // - The right-most label must not be digits only. + // - The name can have a trailing dot—for example, "foo.example.com.". + // - The name can be 253 characters at most, excluding the optional trailing dot. + // + // If the field value isn't a valid hostname, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid hostname + // string value = 1 [(buf.validate.field).string.hostname = true]; + // } + // + // ``` + Hostname bool `protobuf:"varint,13,opt,name=hostname,oneof"` +} + +type StringRules_Ip struct { + // `ip` specifies that the field value must be a valid IP (v4 or v6) address. + // + // IPv4 addresses are expected in the dotted decimal format—for example, "192.168.5.21". + // IPv6 addresses are expected in their text representation—for example, "::1", + // or "2001:0DB8:ABCD:0012::0". + // + // Both formats are well-defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). + // Zone identifiers for IPv6 addresses (for example, "fe80::a%en1") are supported. + // + // If the field value isn't a valid IP address, an error message will be + // generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IP address + // string value = 1 [(buf.validate.field).string.ip = true]; + // } + // + // ``` + Ip bool `protobuf:"varint,14,opt,name=ip,oneof"` +} + +type StringRules_Ipv4 struct { + // `ipv4` specifies that the field value must be a valid IPv4 address—for + // example "192.168.5.21". If the field value isn't a valid IPv4 address, an + // error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IPv4 address + // string value = 1 [(buf.validate.field).string.ipv4 = true]; + // } + // + // ``` + Ipv4 bool `protobuf:"varint,15,opt,name=ipv4,oneof"` +} + +type StringRules_Ipv6 struct { + // `ipv6` specifies that the field value must be a valid IPv6 address—for + // example "::1", or "d7a:115c:a1e0:ab12:4843:cd96:626b:430b". If the field + // value is not a valid IPv6 address, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IPv6 address + // string value = 1 [(buf.validate.field).string.ipv6 = true]; + // } + // + // ``` + Ipv6 bool `protobuf:"varint,16,opt,name=ipv6,oneof"` +} + +type StringRules_Uri struct { + // `uri` specifies that the field value must be a valid URI, for example + // "https://example.com/foo/bar?baz=quux#frag". + // + // URI is defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). + // Zone Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)). + // + // If the field value isn't a valid URI, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid URI + // string value = 1 [(buf.validate.field).string.uri = true]; + // } + // + // ``` + Uri bool `protobuf:"varint,17,opt,name=uri,oneof"` +} + +type StringRules_UriRef struct { + // `uri_ref` specifies that the field value must be a valid URI Reference—either + // a URI such as "https://example.com/foo/bar?baz=quux#frag", or a Relative + // Reference such as "./foo/bar?query". + // + // URI, URI Reference, and Relative Reference are defined in the internet + // standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). Zone + // Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)). + // + // If the field value isn't a valid URI Reference, an error message will be + // generated. + // + // ```proto + // + // message MyString { + // // value must be a valid URI Reference + // string value = 1 [(buf.validate.field).string.uri_ref = true]; + // } + // + // ``` + UriRef bool `protobuf:"varint,18,opt,name=uri_ref,json=uriRef,oneof"` +} + +type StringRules_Address struct { + // `address` specifies that the field value must be either a valid hostname + // (for example, "example.com"), or a valid IP (v4 or v6) address (for example, + // "192.168.0.1", or "::1"). If the field value isn't a valid hostname or IP, + // an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid hostname, or ip address + // string value = 1 [(buf.validate.field).string.address = true]; + // } + // + // ``` + Address bool `protobuf:"varint,21,opt,name=address,oneof"` +} + +type StringRules_Uuid struct { + // `uuid` specifies that the field value must be a valid UUID as defined by + // [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2). If the + // field value isn't a valid UUID, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid UUID + // string value = 1 [(buf.validate.field).string.uuid = true]; + // } + // + // ``` + Uuid bool `protobuf:"varint,22,opt,name=uuid,oneof"` +} + +type StringRules_Tuuid struct { + // `tuuid` (trimmed UUID) specifies that the field value must be a valid UUID as + // defined by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2) with all dashes + // omitted. If the field value isn't a valid UUID without dashes, an error message + // will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid trimmed UUID + // string value = 1 [(buf.validate.field).string.tuuid = true]; + // } + // + // ``` + Tuuid bool `protobuf:"varint,33,opt,name=tuuid,oneof"` +} + +type StringRules_IpWithPrefixlen struct { + // `ip_with_prefixlen` specifies that the field value must be a valid IP + // (v4 or v6) address with prefix length—for example, "192.168.5.21/16" or + // "2001:0DB8:ABCD:0012::F1/64". If the field value isn't a valid IP with + // prefix length, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IP with prefix length + // string value = 1 [(buf.validate.field).string.ip_with_prefixlen = true]; + // } + // + // ``` + IpWithPrefixlen bool `protobuf:"varint,26,opt,name=ip_with_prefixlen,json=ipWithPrefixlen,oneof"` +} + +type StringRules_Ipv4WithPrefixlen struct { + // `ipv4_with_prefixlen` specifies that the field value must be a valid + // IPv4 address with prefix length—for example, "192.168.5.21/16". If the + // field value isn't a valid IPv4 address with prefix length, an error + // message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IPv4 address with prefix length + // string value = 1 [(buf.validate.field).string.ipv4_with_prefixlen = true]; + // } + // + // ``` + Ipv4WithPrefixlen bool `protobuf:"varint,27,opt,name=ipv4_with_prefixlen,json=ipv4WithPrefixlen,oneof"` +} + +type StringRules_Ipv6WithPrefixlen struct { + // `ipv6_with_prefixlen` specifies that the field value must be a valid + // IPv6 address with prefix length—for example, "2001:0DB8:ABCD:0012::F1/64". + // If the field value is not a valid IPv6 address with prefix length, + // an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IPv6 address prefix length + // string value = 1 [(buf.validate.field).string.ipv6_with_prefixlen = true]; + // } + // + // ``` + Ipv6WithPrefixlen bool `protobuf:"varint,28,opt,name=ipv6_with_prefixlen,json=ipv6WithPrefixlen,oneof"` +} + +type StringRules_IpPrefix struct { + // `ip_prefix` specifies that the field value must be a valid IP (v4 or v6) + // prefix—for example, "192.168.0.0/16" or "2001:0DB8:ABCD:0012::0/64". + // + // The prefix must have all zeros for the unmasked bits. For example, + // "2001:0DB8:ABCD:0012::0/64" designates the left-most 64 bits for the + // prefix, and the remaining 64 bits must be zero. + // + // If the field value isn't a valid IP prefix, an error message will be + // generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IP prefix + // string value = 1 [(buf.validate.field).string.ip_prefix = true]; + // } + // + // ``` + IpPrefix bool `protobuf:"varint,29,opt,name=ip_prefix,json=ipPrefix,oneof"` +} + +type StringRules_Ipv4Prefix struct { + // `ipv4_prefix` specifies that the field value must be a valid IPv4 + // prefix, for example "192.168.0.0/16". + // + // The prefix must have all zeros for the unmasked bits. For example, + // "192.168.0.0/16" designates the left-most 16 bits for the prefix, + // and the remaining 16 bits must be zero. + // + // If the field value isn't a valid IPv4 prefix, an error message + // will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IPv4 prefix + // string value = 1 [(buf.validate.field).string.ipv4_prefix = true]; + // } + // + // ``` + Ipv4Prefix bool `protobuf:"varint,30,opt,name=ipv4_prefix,json=ipv4Prefix,oneof"` +} + +type StringRules_Ipv6Prefix struct { + // `ipv6_prefix` specifies that the field value must be a valid IPv6 prefix—for + // example, "2001:0DB8:ABCD:0012::0/64". + // + // The prefix must have all zeros for the unmasked bits. For example, + // "2001:0DB8:ABCD:0012::0/64" designates the left-most 64 bits for the + // prefix, and the remaining 64 bits must be zero. + // + // If the field value is not a valid IPv6 prefix, an error message will be + // generated. + // + // ```proto + // + // message MyString { + // // value must be a valid IPv6 prefix + // string value = 1 [(buf.validate.field).string.ipv6_prefix = true]; + // } + // + // ``` + Ipv6Prefix bool `protobuf:"varint,31,opt,name=ipv6_prefix,json=ipv6Prefix,oneof"` +} + +type StringRules_HostAndPort struct { + // `host_and_port` specifies that the field value must be valid host/port + // pair—for example, "example.com:8080". + // + // The host can be one of: + // - An IPv4 address in dotted decimal format—for example, "192.168.5.21". + // - An IPv6 address enclosed in square brackets—for example, "[2001:0DB8:ABCD:0012::F1]". + // - A hostname—for example, "example.com". + // + // The port is separated by a colon. It must be non-empty, with a decimal number + // in the range of 0-65535, inclusive. + HostAndPort bool `protobuf:"varint,32,opt,name=host_and_port,json=hostAndPort,oneof"` +} + +type StringRules_WellKnownRegex struct { + // `well_known_regex` specifies a common well-known pattern + // defined as a regex. If the field value doesn't match the well-known + // regex, an error message will be generated. + // + // ```proto + // + // message MyString { + // // value must be a valid HTTP header value + // string value = 1 [(buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_VALUE]; + // } + // + // ``` + // + // #### KnownRegex + // + // `well_known_regex` contains some well-known patterns. + // + // | Name | Number | Description | + // |-------------------------------|--------|-------------------------------------------| + // | KNOWN_REGEX_UNSPECIFIED | 0 | | + // | KNOWN_REGEX_HTTP_HEADER_NAME | 1 | HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2) | + // | KNOWN_REGEX_HTTP_HEADER_VALUE | 2 | HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4) | + WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=buf.validate.KnownRegex,oneof"` +} + +func (*StringRules_Email) isStringRules_WellKnown() {} + +func (*StringRules_Hostname) isStringRules_WellKnown() {} + +func (*StringRules_Ip) isStringRules_WellKnown() {} + +func (*StringRules_Ipv4) isStringRules_WellKnown() {} + +func (*StringRules_Ipv6) isStringRules_WellKnown() {} + +func (*StringRules_Uri) isStringRules_WellKnown() {} + +func (*StringRules_UriRef) isStringRules_WellKnown() {} + +func (*StringRules_Address) isStringRules_WellKnown() {} + +func (*StringRules_Uuid) isStringRules_WellKnown() {} + +func (*StringRules_Tuuid) isStringRules_WellKnown() {} + +func (*StringRules_IpWithPrefixlen) isStringRules_WellKnown() {} + +func (*StringRules_Ipv4WithPrefixlen) isStringRules_WellKnown() {} + +func (*StringRules_Ipv6WithPrefixlen) isStringRules_WellKnown() {} + +func (*StringRules_IpPrefix) isStringRules_WellKnown() {} + +func (*StringRules_Ipv4Prefix) isStringRules_WellKnown() {} + +func (*StringRules_Ipv6Prefix) isStringRules_WellKnown() {} + +func (*StringRules_HostAndPort) isStringRules_WellKnown() {} + +func (*StringRules_WellKnownRegex) isStringRules_WellKnown() {} + +// BytesRules describe the rules applied to `bytes` values. These rules +// may also be applied to the `google.protobuf.BytesValue` Well-Known-Type. +type BytesRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified bytes + // value. If the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value must be "\x01\x02\x03\x04" + // bytes value = 1 [(buf.validate.field).bytes.const = "\x01\x02\x03\x04"]; + // } + // + // ``` + Const []byte `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // `len` requires the field value to have the specified length in bytes. + // If the field value doesn't match, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value length must be 4 bytes. + // optional bytes value = 1 [(buf.validate.field).bytes.len = 4]; + // } + // + // ``` + Len *uint64 `protobuf:"varint,13,opt,name=len" json:"len,omitempty"` + // `min_len` requires the field value to have at least the specified minimum + // length in bytes. + // If the field value doesn't meet the requirement, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value length must be at least 2 bytes. + // optional bytes value = 1 [(buf.validate.field).bytes.min_len = 2]; + // } + // + // ``` + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // `max_len` requires the field value to have at most the specified maximum + // length in bytes. + // If the field value exceeds the requirement, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value must be at most 6 bytes. + // optional bytes value = 1 [(buf.validate.field).bytes.max_len = 6]; + // } + // + // ``` + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // `pattern` requires the field value to match the specified regular + // expression ([RE2 syntax](https://github.com/google/re2/wiki/Syntax)). + // The value of the field must be valid UTF-8 or validation will fail with a + // runtime error. + // If the field value doesn't match the pattern, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value must match regex pattern "^[a-zA-Z0-9]+$". + // optional bytes value = 1 [(buf.validate.field).bytes.pattern = "^[a-zA-Z0-9]+$"]; + // } + // + // ``` + Pattern *string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` + // `prefix` requires the field value to have the specified bytes at the + // beginning of the string. + // If the field value doesn't meet the requirement, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value does not have prefix \x01\x02 + // optional bytes value = 1 [(buf.validate.field).bytes.prefix = "\x01\x02"]; + // } + // + // ``` + Prefix []byte `protobuf:"bytes,5,opt,name=prefix" json:"prefix,omitempty"` + // `suffix` requires the field value to have the specified bytes at the end + // of the string. + // If the field value doesn't meet the requirement, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value does not have suffix \x03\x04 + // optional bytes value = 1 [(buf.validate.field).bytes.suffix = "\x03\x04"]; + // } + // + // ``` + Suffix []byte `protobuf:"bytes,6,opt,name=suffix" json:"suffix,omitempty"` + // `contains` requires the field value to have the specified bytes anywhere in + // the string. + // If the field value doesn't meet the requirement, an error message is generated. + // + // ```protobuf + // + // message MyBytes { + // // value does not contain \x02\x03 + // optional bytes value = 1 [(buf.validate.field).bytes.contains = "\x02\x03"]; + // } + // + // ``` + Contains []byte `protobuf:"bytes,7,opt,name=contains" json:"contains,omitempty"` + // `in` requires the field value to be equal to one of the specified + // values. If the field value doesn't match any of the specified values, an + // error message is generated. + // + // ```protobuf + // + // message MyBytes { + // // value must in ["\x01\x02", "\x02\x03", "\x03\x04"] + // optional bytes value = 1 [(buf.validate.field).bytes.in = {"\x01\x02", "\x02\x03", "\x03\x04"}]; + // } + // + // ``` + In [][]byte `protobuf:"bytes,8,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to be not equal to any of the specified + // values. + // If the field value matches any of the specified values, an error message is + // generated. + // + // ```proto + // + // message MyBytes { + // // value must not in ["\x01\x02", "\x02\x03", "\x03\x04"] + // optional bytes value = 1 [(buf.validate.field).bytes.not_in = {"\x01\x02", "\x02\x03", "\x03\x04"}]; + // } + // + // ``` + NotIn [][]byte `protobuf:"bytes,9,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced rules against common byte + // patterns + // + // Types that are assignable to WellKnown: + // + // *BytesRules_Ip + // *BytesRules_Ipv4 + // *BytesRules_Ipv6 + WellKnown isBytesRules_WellKnown `protobuf_oneof:"well_known"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyBytes { + // bytes value = 1 [ + // (buf.validate.field).bytes.example = "\x01\x02", + // (buf.validate.field).bytes.example = "\x02\x03" + // ]; + // } + // + // ``` + Example [][]byte `protobuf:"bytes,14,rep,name=example" json:"example,omitempty"` +} + +func (x *BytesRules) Reset() { + *x = BytesRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BytesRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BytesRules) ProtoMessage() {} + +func (x *BytesRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BytesRules.ProtoReflect.Descriptor instead. +func (*BytesRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{20} +} + +func (x *BytesRules) GetConst() []byte { + if x != nil { + return x.Const + } + return nil +} + +func (x *BytesRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *BytesRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *BytesRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *BytesRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *BytesRules) GetPrefix() []byte { + if x != nil { + return x.Prefix + } + return nil +} + +func (x *BytesRules) GetSuffix() []byte { + if x != nil { + return x.Suffix + } + return nil +} + +func (x *BytesRules) GetContains() []byte { + if x != nil { + return x.Contains + } + return nil +} + +func (x *BytesRules) GetIn() [][]byte { + if x != nil { + return x.In + } + return nil +} + +func (x *BytesRules) GetNotIn() [][]byte { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *BytesRules) GetWellKnown() isBytesRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *BytesRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *BytesRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *BytesRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *BytesRules) GetExample() [][]byte { + if x != nil { + return x.Example + } + return nil +} + +type isBytesRules_WellKnown interface { + isBytesRules_WellKnown() +} + +type BytesRules_Ip struct { + // `ip` ensures that the field `value` is a valid IP address (v4 or v6) in byte format. + // If the field value doesn't meet this rule, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value must be a valid IP address + // optional bytes value = 1 [(buf.validate.field).bytes.ip = true]; + // } + // + // ``` + Ip bool `protobuf:"varint,10,opt,name=ip,oneof"` +} + +type BytesRules_Ipv4 struct { + // `ipv4` ensures that the field `value` is a valid IPv4 address in byte format. + // If the field value doesn't meet this rule, an error message is generated. + // + // ```proto + // + // message MyBytes { + // // value must be a valid IPv4 address + // optional bytes value = 1 [(buf.validate.field).bytes.ipv4 = true]; + // } + // + // ``` + Ipv4 bool `protobuf:"varint,11,opt,name=ipv4,oneof"` +} + +type BytesRules_Ipv6 struct { + // `ipv6` ensures that the field `value` is a valid IPv6 address in byte format. + // If the field value doesn't meet this rule, an error message is generated. + // ```proto + // + // message MyBytes { + // // value must be a valid IPv6 address + // optional bytes value = 1 [(buf.validate.field).bytes.ipv6 = true]; + // } + // + // ``` + Ipv6 bool `protobuf:"varint,12,opt,name=ipv6,oneof"` +} + +func (*BytesRules_Ip) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv4) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv6) isBytesRules_WellKnown() {} + +// EnumRules describe the rules applied to `enum` values. +type EnumRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` requires the field value to exactly match the specified enum value. + // If the field value doesn't match, an error message is generated. + // + // ```proto + // + // enum MyEnum { + // MY_ENUM_UNSPECIFIED = 0; + // MY_ENUM_VALUE1 = 1; + // MY_ENUM_VALUE2 = 2; + // } + // + // message MyMessage { + // // The field `value` must be exactly MY_ENUM_VALUE1. + // MyEnum value = 1 [(buf.validate.field).enum.const = 1]; + // } + // + // ``` + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // `defined_only` requires the field value to be one of the defined values for + // this enum, failing on any undefined value. + // + // ```proto + // + // enum MyEnum { + // MY_ENUM_UNSPECIFIED = 0; + // MY_ENUM_VALUE1 = 1; + // MY_ENUM_VALUE2 = 2; + // } + // + // message MyMessage { + // // The field `value` must be a defined value of MyEnum. + // MyEnum value = 1 [(buf.validate.field).enum.defined_only = true]; + // } + // + // ``` + DefinedOnly *bool `protobuf:"varint,2,opt,name=defined_only,json=definedOnly" json:"defined_only,omitempty"` + // `in` requires the field value to be equal to one of the + // specified enum values. If the field value doesn't match any of the + // specified values, an error message is generated. + // + // ```proto + // + // enum MyEnum { + // MY_ENUM_UNSPECIFIED = 0; + // MY_ENUM_VALUE1 = 1; + // MY_ENUM_VALUE2 = 2; + // } + // + // message MyMessage { + // // The field `value` must be equal to one of the specified values. + // MyEnum value = 1 [(buf.validate.field).enum = { in: [1, 2]}]; + // } + // + // ``` + In []int32 `protobuf:"varint,3,rep,name=in" json:"in,omitempty"` + // `not_in` requires the field value to be not equal to any of the + // specified enum values. If the field value matches one of the specified + // values, an error message is generated. + // + // ```proto + // + // enum MyEnum { + // MY_ENUM_UNSPECIFIED = 0; + // MY_ENUM_VALUE1 = 1; + // MY_ENUM_VALUE2 = 2; + // } + // + // message MyMessage { + // // The field `value` must not be equal to any of the specified values. + // MyEnum value = 1 [(buf.validate.field).enum = { not_in: [1, 2]}]; + // } + // + // ``` + NotIn []int32 `protobuf:"varint,4,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // enum MyEnum { + // MY_ENUM_UNSPECIFIED = 0; + // MY_ENUM_VALUE1 = 1; + // MY_ENUM_VALUE2 = 2; + // } + // + // message MyMessage { + // (buf.validate.field).enum.example = 1, + // (buf.validate.field).enum.example = 2 + // } + // + // ``` + Example []int32 `protobuf:"varint,5,rep,name=example" json:"example,omitempty"` +} + +func (x *EnumRules) Reset() { + *x = EnumRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumRules) ProtoMessage() {} + +func (x *EnumRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumRules.ProtoReflect.Descriptor instead. +func (*EnumRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{21} +} + +func (x *EnumRules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *EnumRules) GetDefinedOnly() bool { + if x != nil && x.DefinedOnly != nil { + return *x.DefinedOnly + } + return false +} + +func (x *EnumRules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *EnumRules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *EnumRules) GetExample() []int32 { + if x != nil { + return x.Example + } + return nil +} + +// RepeatedRules describe the rules applied to `repeated` values. +type RepeatedRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `min_items` requires that this field must contain at least the specified + // minimum number of items. + // + // Note that `min_items = 1` is equivalent to setting a field as `required`. + // + // ```proto + // + // message MyRepeated { + // // value must contain at least 2 items + // repeated string value = 1 [(buf.validate.field).repeated.min_items = 2]; + // } + // + // ``` + MinItems *uint64 `protobuf:"varint,1,opt,name=min_items,json=minItems" json:"min_items,omitempty"` + // `max_items` denotes that this field must not exceed a + // certain number of items as the upper limit. If the field contains more + // items than specified, an error message will be generated, requiring the + // field to maintain no more than the specified number of items. + // + // ```proto + // + // message MyRepeated { + // // value must contain no more than 3 item(s) + // repeated string value = 1 [(buf.validate.field).repeated.max_items = 3]; + // } + // + // ``` + MaxItems *uint64 `protobuf:"varint,2,opt,name=max_items,json=maxItems" json:"max_items,omitempty"` + // `unique` indicates that all elements in this field must + // be unique. This rule is strictly applicable to scalar and enum + // types, with message types not being supported. + // + // ```proto + // + // message MyRepeated { + // // repeated value must contain unique items + // repeated string value = 1 [(buf.validate.field).repeated.unique = true]; + // } + // + // ``` + Unique *bool `protobuf:"varint,3,opt,name=unique" json:"unique,omitempty"` + // `items` details the rules to be applied to each item + // in the field. Even for repeated message fields, validation is executed + // against each item unless `ignore` is specified. + // + // ```proto + // + // message MyRepeated { + // // The items in the field `value` must follow the specified rules. + // repeated string value = 1 [(buf.validate.field).repeated.items = { + // string: { + // min_len: 3 + // max_len: 10 + // } + // }]; + // } + // + // ``` + // + // Note that the `required` rule does not apply. Repeated items + // cannot be unset. + Items *FieldRules `protobuf:"bytes,4,opt,name=items" json:"items,omitempty"` +} + +func (x *RepeatedRules) Reset() { + *x = RepeatedRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RepeatedRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepeatedRules) ProtoMessage() {} + +func (x *RepeatedRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead. +func (*RepeatedRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{22} +} + +func (x *RepeatedRules) GetMinItems() uint64 { + if x != nil && x.MinItems != nil { + return *x.MinItems + } + return 0 +} + +func (x *RepeatedRules) GetMaxItems() uint64 { + if x != nil && x.MaxItems != nil { + return *x.MaxItems + } + return 0 +} + +func (x *RepeatedRules) GetUnique() bool { + if x != nil && x.Unique != nil { + return *x.Unique + } + return false +} + +func (x *RepeatedRules) GetItems() *FieldRules { + if x != nil { + return x.Items + } + return nil +} + +// MapRules describe the rules applied to `map` values. +type MapRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // Specifies the minimum number of key-value pairs allowed. If the field has + // fewer key-value pairs than specified, an error message is generated. + // + // ```proto + // + // message MyMap { + // // The field `value` must have at least 2 key-value pairs. + // map value = 1 [(buf.validate.field).map.min_pairs = 2]; + // } + // + // ``` + MinPairs *uint64 `protobuf:"varint,1,opt,name=min_pairs,json=minPairs" json:"min_pairs,omitempty"` + // Specifies the maximum number of key-value pairs allowed. If the field has + // more key-value pairs than specified, an error message is generated. + // + // ```proto + // + // message MyMap { + // // The field `value` must have at most 3 key-value pairs. + // map value = 1 [(buf.validate.field).map.max_pairs = 3]; + // } + // + // ``` + MaxPairs *uint64 `protobuf:"varint,2,opt,name=max_pairs,json=maxPairs" json:"max_pairs,omitempty"` + // Specifies the rules to be applied to each key in the field. + // + // ```proto + // + // message MyMap { + // // The keys in the field `value` must follow the specified rules. + // map value = 1 [(buf.validate.field).map.keys = { + // string: { + // min_len: 3 + // max_len: 10 + // } + // }]; + // } + // + // ``` + // + // Note that the `required` rule does not apply. Map keys cannot be unset. + Keys *FieldRules `protobuf:"bytes,4,opt,name=keys" json:"keys,omitempty"` + // Specifies the rules to be applied to the value of each key in the + // field. Message values will still have their validations evaluated unless + // `ignore` is specified. + // + // ```proto + // + // message MyMap { + // // The values in the field `value` must follow the specified rules. + // map value = 1 [(buf.validate.field).map.values = { + // string: { + // min_len: 5 + // max_len: 20 + // } + // }]; + // } + // + // ``` + // Note that the `required` rule does not apply. Map values cannot be unset. + Values *FieldRules `protobuf:"bytes,5,opt,name=values" json:"values,omitempty"` +} + +func (x *MapRules) Reset() { + *x = MapRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MapRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MapRules) ProtoMessage() {} + +func (x *MapRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MapRules.ProtoReflect.Descriptor instead. +func (*MapRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{23} +} + +func (x *MapRules) GetMinPairs() uint64 { + if x != nil && x.MinPairs != nil { + return *x.MinPairs + } + return 0 +} + +func (x *MapRules) GetMaxPairs() uint64 { + if x != nil && x.MaxPairs != nil { + return *x.MaxPairs + } + return 0 +} + +func (x *MapRules) GetKeys() *FieldRules { + if x != nil { + return x.Keys + } + return nil +} + +func (x *MapRules) GetValues() *FieldRules { + if x != nil { + return x.Values + } + return nil +} + +// AnyRules describe rules applied exclusively to the `google.protobuf.Any` well-known type. +type AnyRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `in` requires the field's `type_url` to be equal to one of the + // specified values. If it doesn't match any of the specified values, an error + // message is generated. + // + // ```proto + // + // message MyAny { + // // The `value` field must have a `type_url` equal to one of the specified values. + // google.protobuf.Any value = 1 [(buf.validate.field).any = { + // in: ["type.googleapis.com/MyType1", "type.googleapis.com/MyType2"] + // }]; + // } + // + // ``` + In []string `protobuf:"bytes,2,rep,name=in" json:"in,omitempty"` + // requires the field's type_url to be not equal to any of the specified values. If it matches any of the specified values, an error message is generated. + // + // ```proto + // + // message MyAny { + // // The `value` field must not have a `type_url` equal to any of the specified values. + // google.protobuf.Any value = 1 [(buf.validate.field).any = { + // not_in: ["type.googleapis.com/ForbiddenType1", "type.googleapis.com/ForbiddenType2"] + // }]; + // } + // + // ``` + NotIn []string `protobuf:"bytes,3,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *AnyRules) Reset() { + *x = AnyRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnyRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnyRules) ProtoMessage() {} + +func (x *AnyRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnyRules.ProtoReflect.Descriptor instead. +func (*AnyRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{24} +} + +func (x *AnyRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *AnyRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +// DurationRules describe the rules applied exclusively to the `google.protobuf.Duration` well-known type. +type DurationRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` dictates that the field must match the specified value of the `google.protobuf.Duration` type exactly. + // If the field's value deviates from the specified value, an error message + // will be generated. + // + // ```proto + // + // message MyDuration { + // // value must equal 5s + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.const = "5s"]; + // } + // + // ``` + Const *durationpb.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *DurationRules_Lt + // *DurationRules_Lte + LessThan isDurationRules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *DurationRules_Gt + // *DurationRules_Gte + GreaterThan isDurationRules_GreaterThan `protobuf_oneof:"greater_than"` + // `in` asserts that the field must be equal to one of the specified values of the `google.protobuf.Duration` type. + // If the field's value doesn't correspond to any of the specified values, + // an error message will be generated. + // + // ```proto + // + // message MyDuration { + // // value must be in list [1s, 2s, 3s] + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.in = ["1s", "2s", "3s"]]; + // } + // + // ``` + In []*durationpb.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` + // `not_in` denotes that the field must not be equal to + // any of the specified values of the `google.protobuf.Duration` type. + // If the field's value matches any of these values, an error message will be + // generated. + // + // ```proto + // + // message MyDuration { + // // value must not be in list [1s, 2s, 3s] + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.not_in = ["1s", "2s", "3s"]]; + // } + // + // ``` + NotIn []*durationpb.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyDuration { + // google.protobuf.Duration value = 1 [ + // (buf.validate.field).duration.example = { seconds: 1 }, + // (buf.validate.field).duration.example = { seconds: 2 }, + // ]; + // } + // + // ``` + Example []*durationpb.Duration `protobuf:"bytes,9,rep,name=example" json:"example,omitempty"` +} + +func (x *DurationRules) Reset() { + *x = DurationRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DurationRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DurationRules) ProtoMessage() {} + +func (x *DurationRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DurationRules.ProtoReflect.Descriptor instead. +func (*DurationRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{25} +} + +func (x *DurationRules) GetConst() *durationpb.Duration { + if x != nil { + return x.Const + } + return nil +} + +func (m *DurationRules) GetLessThan() isDurationRules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *DurationRules) GetLt() *durationpb.Duration { + if x, ok := x.GetLessThan().(*DurationRules_Lt); ok { + return x.Lt + } + return nil +} + +func (x *DurationRules) GetLte() *durationpb.Duration { + if x, ok := x.GetLessThan().(*DurationRules_Lte); ok { + return x.Lte + } + return nil +} + +func (m *DurationRules) GetGreaterThan() isDurationRules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *DurationRules) GetGt() *durationpb.Duration { + if x, ok := x.GetGreaterThan().(*DurationRules_Gt); ok { + return x.Gt + } + return nil +} + +func (x *DurationRules) GetGte() *durationpb.Duration { + if x, ok := x.GetGreaterThan().(*DurationRules_Gte); ok { + return x.Gte + } + return nil +} + +func (x *DurationRules) GetIn() []*durationpb.Duration { + if x != nil { + return x.In + } + return nil +} + +func (x *DurationRules) GetNotIn() []*durationpb.Duration { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *DurationRules) GetExample() []*durationpb.Duration { + if x != nil { + return x.Example + } + return nil +} + +type isDurationRules_LessThan interface { + isDurationRules_LessThan() +} + +type DurationRules_Lt struct { + // `lt` stipulates that the field must be less than the specified value of the `google.protobuf.Duration` type, + // exclusive. If the field's value is greater than or equal to the specified + // value, an error message will be generated. + // + // ```proto + // + // message MyDuration { + // // value must be less than 5s + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = "5s"]; + // } + // + // ``` + Lt *durationpb.Duration `protobuf:"bytes,3,opt,name=lt,oneof"` +} + +type DurationRules_Lte struct { + // `lte` indicates that the field must be less than or equal to the specified + // value of the `google.protobuf.Duration` type, inclusive. If the field's value is greater than the specified value, + // an error message will be generated. + // + // ```proto + // + // message MyDuration { + // // value must be less than or equal to 10s + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.lte = "10s"]; + // } + // + // ``` + Lte *durationpb.Duration `protobuf:"bytes,4,opt,name=lte,oneof"` +} + +func (*DurationRules_Lt) isDurationRules_LessThan() {} + +func (*DurationRules_Lte) isDurationRules_LessThan() {} + +type isDurationRules_GreaterThan interface { + isDurationRules_GreaterThan() +} + +type DurationRules_Gt struct { + // `gt` requires the duration field value to be greater than the specified + // value (exclusive). If the value of `gt` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyDuration { + // // duration must be greater than 5s [duration.gt] + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.gt = { seconds: 5 }]; + // + // // duration must be greater than 5s and less than 10s [duration.gt_lt] + // google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gt: { seconds: 5 }, lt: { seconds: 10 } }]; + // + // // duration must be greater than 10s or less than 5s [duration.gt_lt_exclusive] + // google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gt: { seconds: 10 }, lt: { seconds: 5 } }]; + // } + // + // ``` + Gt *durationpb.Duration `protobuf:"bytes,5,opt,name=gt,oneof"` +} + +type DurationRules_Gte struct { + // `gte` requires the duration field value to be greater than or equal to the + // specified value (exclusive). If the value of `gte` is larger than a + // specified `lt` or `lte`, the range is reversed, and the field value must + // be outside the specified range. If the field value doesn't meet the + // required conditions, an error message is generated. + // + // ```proto + // + // message MyDuration { + // // duration must be greater than or equal to 5s [duration.gte] + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.gte = { seconds: 5 }]; + // + // // duration must be greater than or equal to 5s and less than 10s [duration.gte_lt] + // google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gte: { seconds: 5 }, lt: { seconds: 10 } }]; + // + // // duration must be greater than or equal to 10s or less than 5s [duration.gte_lt_exclusive] + // google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gte: { seconds: 10 }, lt: { seconds: 5 } }]; + // } + // + // ``` + Gte *durationpb.Duration `protobuf:"bytes,6,opt,name=gte,oneof"` +} + +func (*DurationRules_Gt) isDurationRules_GreaterThan() {} + +func (*DurationRules_Gte) isDurationRules_GreaterThan() {} + +// TimestampRules describe the rules applied exclusively to the `google.protobuf.Timestamp` well-known type. +type TimestampRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // `const` dictates that this field, of the `google.protobuf.Timestamp` type, must exactly match the specified value. If the field value doesn't correspond to the specified timestamp, an error message will be generated. + // + // ```proto + // + // message MyTimestamp { + // // value must equal 2023-05-03T10:00:00Z + // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.const = {seconds: 1727998800}]; + // } + // + // ``` + Const *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Types that are assignable to LessThan: + // + // *TimestampRules_Lt + // *TimestampRules_Lte + // *TimestampRules_LtNow + LessThan isTimestampRules_LessThan `protobuf_oneof:"less_than"` + // Types that are assignable to GreaterThan: + // + // *TimestampRules_Gt + // *TimestampRules_Gte + // *TimestampRules_GtNow + GreaterThan isTimestampRules_GreaterThan `protobuf_oneof:"greater_than"` + // `within` specifies that this field, of the `google.protobuf.Timestamp` type, must be within the specified duration of the current time. If the field value isn't within the duration, an error message is generated. + // + // ```proto + // + // message MyTimestamp { + // // value must be within 1 hour of now + // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.within = {seconds: 3600}]; + // } + // + // ``` + Within *durationpb.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` + // `example` specifies values that the field may have. These values SHOULD + // conform to other rules. `example` values will not impact validation + // but may be used as helpful guidance on how to populate the given field. + // + // ```proto + // + // message MyTimestamp { + // google.protobuf.Timestamp value = 1 [ + // (buf.validate.field).timestamp.example = { seconds: 1672444800 }, + // (buf.validate.field).timestamp.example = { seconds: 1672531200 }, + // ]; + // } + // + // ``` + Example []*timestamppb.Timestamp `protobuf:"bytes,10,rep,name=example" json:"example,omitempty"` +} + +func (x *TimestampRules) Reset() { + *x = TimestampRules{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimestampRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimestampRules) ProtoMessage() {} + +func (x *TimestampRules) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead. +func (*TimestampRules) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{26} +} + +func (x *TimestampRules) GetConst() *timestamppb.Timestamp { + if x != nil { + return x.Const + } + return nil +} + +func (m *TimestampRules) GetLessThan() isTimestampRules_LessThan { + if m != nil { + return m.LessThan + } + return nil +} + +func (x *TimestampRules) GetLt() *timestamppb.Timestamp { + if x, ok := x.GetLessThan().(*TimestampRules_Lt); ok { + return x.Lt + } + return nil +} + +func (x *TimestampRules) GetLte() *timestamppb.Timestamp { + if x, ok := x.GetLessThan().(*TimestampRules_Lte); ok { + return x.Lte + } + return nil +} + +func (x *TimestampRules) GetLtNow() bool { + if x, ok := x.GetLessThan().(*TimestampRules_LtNow); ok { + return x.LtNow + } + return false +} + +func (m *TimestampRules) GetGreaterThan() isTimestampRules_GreaterThan { + if m != nil { + return m.GreaterThan + } + return nil +} + +func (x *TimestampRules) GetGt() *timestamppb.Timestamp { + if x, ok := x.GetGreaterThan().(*TimestampRules_Gt); ok { + return x.Gt + } + return nil +} + +func (x *TimestampRules) GetGte() *timestamppb.Timestamp { + if x, ok := x.GetGreaterThan().(*TimestampRules_Gte); ok { + return x.Gte + } + return nil +} + +func (x *TimestampRules) GetGtNow() bool { + if x, ok := x.GetGreaterThan().(*TimestampRules_GtNow); ok { + return x.GtNow + } + return false +} + +func (x *TimestampRules) GetWithin() *durationpb.Duration { + if x != nil { + return x.Within + } + return nil +} + +func (x *TimestampRules) GetExample() []*timestamppb.Timestamp { + if x != nil { + return x.Example + } + return nil +} + +type isTimestampRules_LessThan interface { + isTimestampRules_LessThan() +} + +type TimestampRules_Lt struct { + // requires the duration field value to be less than the specified value (field < value). If the field value doesn't meet the required conditions, an error message is generated. + // + // ```proto + // + // message MyDuration { + // // duration must be less than 'P3D' [duration.lt] + // google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = { seconds: 259200 }]; + // } + // + // ``` + Lt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lt,oneof"` +} + +type TimestampRules_Lte struct { + // requires the timestamp field value to be less than or equal to the specified value (field <= value). If the field value doesn't meet the required conditions, an error message is generated. + // + // ```proto + // + // message MyTimestamp { + // // timestamp must be less than or equal to '2023-05-14T00:00:00Z' [timestamp.lte] + // google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.lte = { seconds: 1678867200 }]; + // } + // + // ``` + Lte *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lte,oneof"` +} + +type TimestampRules_LtNow struct { + // `lt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be less than the current time. `lt_now` can only be used with the `within` rule. + // + // ```proto + // + // message MyTimestamp { + // // value must be less than now + // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.lt_now = true]; + // } + // + // ``` + LtNow bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow,oneof"` +} + +func (*TimestampRules_Lt) isTimestampRules_LessThan() {} + +func (*TimestampRules_Lte) isTimestampRules_LessThan() {} + +func (*TimestampRules_LtNow) isTimestampRules_LessThan() {} + +type isTimestampRules_GreaterThan interface { + isTimestampRules_GreaterThan() +} + +type TimestampRules_Gt struct { + // `gt` requires the timestamp field value to be greater than the specified + // value (exclusive). If the value of `gt` is larger than a specified `lt` + // or `lte`, the range is reversed, and the field value must be outside the + // specified range. If the field value doesn't meet the required conditions, + // an error message is generated. + // + // ```proto + // + // message MyTimestamp { + // // timestamp must be greater than '2023-01-01T00:00:00Z' [timestamp.gt] + // google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gt = { seconds: 1672444800 }]; + // + // // timestamp must be greater than '2023-01-01T00:00:00Z' and less than '2023-01-02T00:00:00Z' [timestamp.gt_lt] + // google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gt: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }]; + // + // // timestamp must be greater than '2023-01-02T00:00:00Z' or less than '2023-01-01T00:00:00Z' [timestamp.gt_lt_exclusive] + // google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gt: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }]; + // } + // + // ``` + Gt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=gt,oneof"` +} + +type TimestampRules_Gte struct { + // `gte` requires the timestamp field value to be greater than or equal to the + // specified value (exclusive). If the value of `gte` is larger than a + // specified `lt` or `lte`, the range is reversed, and the field value + // must be outside the specified range. If the field value doesn't meet + // the required conditions, an error message is generated. + // + // ```proto + // + // message MyTimestamp { + // // timestamp must be greater than or equal to '2023-01-01T00:00:00Z' [timestamp.gte] + // google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gte = { seconds: 1672444800 }]; + // + // // timestamp must be greater than or equal to '2023-01-01T00:00:00Z' and less than '2023-01-02T00:00:00Z' [timestamp.gte_lt] + // google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gte: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }]; + // + // // timestamp must be greater than or equal to '2023-01-02T00:00:00Z' or less than '2023-01-01T00:00:00Z' [timestamp.gte_lt_exclusive] + // google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gte: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }]; + // } + // + // ``` + Gte *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=gte,oneof"` +} + +type TimestampRules_GtNow struct { + // `gt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be greater than the current time. `gt_now` can only be used with the `within` rule. + // + // ```proto + // + // message MyTimestamp { + // // value must be greater than now + // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.gt_now = true]; + // } + // + // ``` + GtNow bool `protobuf:"varint,8,opt,name=gt_now,json=gtNow,oneof"` +} + +func (*TimestampRules_Gt) isTimestampRules_GreaterThan() {} + +func (*TimestampRules_Gte) isTimestampRules_GreaterThan() {} + +func (*TimestampRules_GtNow) isTimestampRules_GreaterThan() {} + +// `Violations` is a collection of `Violation` messages. This message type is returned by +// Protovalidate when a proto message fails to meet the requirements set by the `Rule` validation rules. +// Each individual violation is represented by a `Violation` message. +type Violations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected. + Violations []*Violation `protobuf:"bytes,1,rep,name=violations" json:"violations,omitempty"` +} + +func (x *Violations) Reset() { + *x = Violations{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Violations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Violations) ProtoMessage() {} + +func (x *Violations) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Violations.ProtoReflect.Descriptor instead. +func (*Violations) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{27} +} + +func (x *Violations) GetViolations() []*Violation { + if x != nil { + return x.Violations + } + return nil +} + +// `Violation` represents a single instance where a validation rule, expressed +// as a `Rule`, was not met. It provides information about the field that +// caused the violation, the specific rule that wasn't fulfilled, and a +// human-readable error message. +// +// For example, consider the following message: +// +// ```proto +// +// message User { +// int32 age = 1 [(buf.validate.field).cel = { +// id: "user.age", +// expression: "this < 18 ? 'User must be at least 18 years old' : ''", +// }]; +// } +// +// ``` +// +// It could produce the following violation: +// +// ```json +// +// { +// "ruleId": "user.age", +// "message": "User must be at least 18 years old", +// "field": { +// "elements": [ +// { +// "fieldNumber": 1, +// "fieldName": "age", +// "fieldType": "TYPE_INT32" +// } +// ] +// }, +// "rule": { +// "elements": [ +// { +// "fieldNumber": 23, +// "fieldName": "cel", +// "fieldType": "TYPE_MESSAGE", +// "index": "0" +// } +// ] +// } +// } +// +// ``` +type Violation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `field` is a machine-readable path to the field that failed validation. + // This could be a nested field, in which case the path will include all the parent fields leading to the actual field that caused the violation. + // + // For example, consider the following message: + // + // ```proto + // + // message Message { + // bool a = 1 [(buf.validate.field).required = true]; + // } + // + // ``` + // + // It could produce the following violation: + // + // ```textproto + // + // violation { + // field { element { field_number: 1, field_name: "a", field_type: 8 } } + // ... + // } + // + // ``` + Field *FieldPath `protobuf:"bytes,5,opt,name=field" json:"field,omitempty"` + // `rule` is a machine-readable path that points to the specific rule that failed validation. + // This will be a nested field starting from the FieldRules of the field that failed validation. + // For custom rules, this will provide the path of the rule, e.g. `cel[0]`. + // + // For example, consider the following message: + // + // ```proto + // + // message Message { + // bool a = 1 [(buf.validate.field).required = true]; + // bool b = 2 [(buf.validate.field).cel = { + // id: "custom_rule", + // expression: "!this ? 'b must be true': ''" + // }] + // } + // + // ``` + // + // It could produce the following violations: + // + // ```textproto + // + // violation { + // rule { element { field_number: 25, field_name: "required", field_type: 8 } } + // ... + // } + // + // violation { + // rule { element { field_number: 23, field_name: "cel", field_type: 11, index: 0 } } + // ... + // } + // + // ``` + Rule *FieldPath `protobuf:"bytes,6,opt,name=rule" json:"rule,omitempty"` + // `rule_id` is the unique identifier of the `Rule` that was not fulfilled. + // This is the same `id` that was specified in the `Rule` message, allowing easy tracing of which rule was violated. + RuleId *string `protobuf:"bytes,2,opt,name=rule_id,json=ruleId" json:"rule_id,omitempty"` + // `message` is a human-readable error message that describes the nature of the violation. + // This can be the default error message from the violated `Rule`, or it can be a custom message that gives more context about the violation. + Message *string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` + // `for_key` indicates whether the violation was caused by a map key, rather than a value. + ForKey *bool `protobuf:"varint,4,opt,name=for_key,json=forKey" json:"for_key,omitempty"` +} + +func (x *Violation) Reset() { + *x = Violation{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Violation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Violation) ProtoMessage() {} + +func (x *Violation) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Violation.ProtoReflect.Descriptor instead. +func (*Violation) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{28} +} + +func (x *Violation) GetField() *FieldPath { + if x != nil { + return x.Field + } + return nil +} + +func (x *Violation) GetRule() *FieldPath { + if x != nil { + return x.Rule + } + return nil +} + +func (x *Violation) GetRuleId() string { + if x != nil && x.RuleId != nil { + return *x.RuleId + } + return "" +} + +func (x *Violation) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +func (x *Violation) GetForKey() bool { + if x != nil && x.ForKey != nil { + return *x.ForKey + } + return false +} + +// `FieldPath` provides a path to a nested protobuf field. +// +// This message provides enough information to render a dotted field path even without protobuf descriptors. +// It also provides enough information to resolve a nested field through unknown wire data. +type FieldPath struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `elements` contains each element of the path, starting from the root and recursing downward. + Elements []*FieldPathElement `protobuf:"bytes,1,rep,name=elements" json:"elements,omitempty"` +} + +func (x *FieldPath) Reset() { + *x = FieldPath{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldPath) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldPath) ProtoMessage() {} + +func (x *FieldPath) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldPath.ProtoReflect.Descriptor instead. +func (*FieldPath) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{29} +} + +func (x *FieldPath) GetElements() []*FieldPathElement { + if x != nil { + return x.Elements + } + return nil +} + +// `FieldPathElement` provides enough information to nest through a single protobuf field. +// +// If the selected field is a map or repeated field, the `subscript` value selects a specific element from it. +// A path that refers to a value nested under a map key or repeated field index will have a `subscript` value. +// The `field_type` field allows unambiguous resolution of a field even if descriptors are not available. +type FieldPathElement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // `field_number` is the field number this path element refers to. + FieldNumber *int32 `protobuf:"varint,1,opt,name=field_number,json=fieldNumber" json:"field_number,omitempty"` + // `field_name` contains the field name this path element refers to. + // This can be used to display a human-readable path even if the field number is unknown. + FieldName *string `protobuf:"bytes,2,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` + // `field_type` specifies the type of this field. When using reflection, this value is not needed. + // + // This value is provided to make it possible to traverse unknown fields through wire data. + // When traversing wire data, be mindful of both packed[1] and delimited[2] encoding schemes. + // + // N.B.: Although groups are deprecated, the corresponding delimited encoding scheme is not, and + // can be explicitly used in Protocol Buffers 2023 Edition. + // + // [1]: https://protobuf.dev/programming-guides/encoding/#packed + // [2]: https://protobuf.dev/programming-guides/encoding/#groups + FieldType *descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,3,opt,name=field_type,json=fieldType,enum=google.protobuf.FieldDescriptorProto_Type" json:"field_type,omitempty"` + // `key_type` specifies the map key type of this field. This value is useful when traversing + // unknown fields through wire data: specifically, it allows handling the differences between + // different integer encodings. + KeyType *descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,4,opt,name=key_type,json=keyType,enum=google.protobuf.FieldDescriptorProto_Type" json:"key_type,omitempty"` + // `value_type` specifies map value type of this field. This is useful if you want to display a + // value inside unknown fields through wire data. + ValueType *descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=value_type,json=valueType,enum=google.protobuf.FieldDescriptorProto_Type" json:"value_type,omitempty"` + // `subscript` contains a repeated index or map key, if this path element nests into a repeated or map field. + // + // Types that are assignable to Subscript: + // + // *FieldPathElement_Index + // *FieldPathElement_BoolKey + // *FieldPathElement_IntKey + // *FieldPathElement_UintKey + // *FieldPathElement_StringKey + Subscript isFieldPathElement_Subscript `protobuf_oneof:"subscript"` +} + +func (x *FieldPathElement) Reset() { + *x = FieldPathElement{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_validate_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldPathElement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldPathElement) ProtoMessage() {} + +func (x *FieldPathElement) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_validate_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldPathElement.ProtoReflect.Descriptor instead. +func (*FieldPathElement) Descriptor() ([]byte, []int) { + return file_buf_validate_validate_proto_rawDescGZIP(), []int{30} +} + +func (x *FieldPathElement) GetFieldNumber() int32 { + if x != nil && x.FieldNumber != nil { + return *x.FieldNumber + } + return 0 +} + +func (x *FieldPathElement) GetFieldName() string { + if x != nil && x.FieldName != nil { + return *x.FieldName + } + return "" +} + +func (x *FieldPathElement) GetFieldType() descriptorpb.FieldDescriptorProto_Type { + if x != nil && x.FieldType != nil { + return *x.FieldType + } + return descriptorpb.FieldDescriptorProto_Type(1) +} + +func (x *FieldPathElement) GetKeyType() descriptorpb.FieldDescriptorProto_Type { + if x != nil && x.KeyType != nil { + return *x.KeyType + } + return descriptorpb.FieldDescriptorProto_Type(1) +} + +func (x *FieldPathElement) GetValueType() descriptorpb.FieldDescriptorProto_Type { + if x != nil && x.ValueType != nil { + return *x.ValueType + } + return descriptorpb.FieldDescriptorProto_Type(1) +} + +func (m *FieldPathElement) GetSubscript() isFieldPathElement_Subscript { + if m != nil { + return m.Subscript + } + return nil +} + +func (x *FieldPathElement) GetIndex() uint64 { + if x, ok := x.GetSubscript().(*FieldPathElement_Index); ok { + return x.Index + } + return 0 +} + +func (x *FieldPathElement) GetBoolKey() bool { + if x, ok := x.GetSubscript().(*FieldPathElement_BoolKey); ok { + return x.BoolKey + } + return false +} + +func (x *FieldPathElement) GetIntKey() int64 { + if x, ok := x.GetSubscript().(*FieldPathElement_IntKey); ok { + return x.IntKey + } + return 0 +} + +func (x *FieldPathElement) GetUintKey() uint64 { + if x, ok := x.GetSubscript().(*FieldPathElement_UintKey); ok { + return x.UintKey + } + return 0 +} + +func (x *FieldPathElement) GetStringKey() string { + if x, ok := x.GetSubscript().(*FieldPathElement_StringKey); ok { + return x.StringKey + } + return "" +} + +type isFieldPathElement_Subscript interface { + isFieldPathElement_Subscript() +} + +type FieldPathElement_Index struct { + // `index` specifies a 0-based index into a repeated field. + Index uint64 `protobuf:"varint,6,opt,name=index,oneof"` +} + +type FieldPathElement_BoolKey struct { + // `bool_key` specifies a map key of type bool. + BoolKey bool `protobuf:"varint,7,opt,name=bool_key,json=boolKey,oneof"` +} + +type FieldPathElement_IntKey struct { + // `int_key` specifies a map key of type int32, int64, sint32, sint64, sfixed32 or sfixed64. + IntKey int64 `protobuf:"varint,8,opt,name=int_key,json=intKey,oneof"` +} + +type FieldPathElement_UintKey struct { + // `uint_key` specifies a map key of type uint32, uint64, fixed32 or fixed64. + UintKey uint64 `protobuf:"varint,9,opt,name=uint_key,json=uintKey,oneof"` +} + +type FieldPathElement_StringKey struct { + // `string_key` specifies a map key of type string. + StringKey string `protobuf:"bytes,10,opt,name=string_key,json=stringKey,oneof"` +} + +func (*FieldPathElement_Index) isFieldPathElement_Subscript() {} + +func (*FieldPathElement_BoolKey) isFieldPathElement_Subscript() {} + +func (*FieldPathElement_IntKey) isFieldPathElement_Subscript() {} + +func (*FieldPathElement_UintKey) isFieldPathElement_Subscript() {} + +func (*FieldPathElement_StringKey) isFieldPathElement_Subscript() {} + +var file_buf_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*MessageRules)(nil), + Field: 1159, + Name: "buf.validate.message", + Tag: "bytes,1159,opt,name=message", + Filename: "buf/validate/validate.proto", + }, + { + ExtendedType: (*descriptorpb.OneofOptions)(nil), + ExtensionType: (*OneofRules)(nil), + Field: 1159, + Name: "buf.validate.oneof", + Tag: "bytes,1159,opt,name=oneof", + Filename: "buf/validate/validate.proto", + }, + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*FieldRules)(nil), + Field: 1159, + Name: "buf.validate.field", + Tag: "bytes,1159,opt,name=field", + Filename: "buf/validate/validate.proto", + }, + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*PredefinedRules)(nil), + Field: 1160, + Name: "buf.validate.predefined", + Tag: "bytes,1160,opt,name=predefined", + Filename: "buf/validate/validate.proto", + }, +} + +// Extension fields to descriptorpb.MessageOptions. +var ( + // Rules specify the validations to be performed on this message. By default, + // no validation is performed against a message. + // + // optional buf.validate.MessageRules message = 1159; + E_Message = &file_buf_validate_validate_proto_extTypes[0] +) + +// Extension fields to descriptorpb.OneofOptions. +var ( + // Rules specify the validations to be performed on this oneof. By default, + // no validation is performed against a oneof. + // + // optional buf.validate.OneofRules oneof = 1159; + E_Oneof = &file_buf_validate_validate_proto_extTypes[1] +) + +// Extension fields to descriptorpb.FieldOptions. +var ( + // Rules specify the validations to be performed on this field. By default, + // no validation is performed against a field. + // + // optional buf.validate.FieldRules field = 1159; + E_Field = &file_buf_validate_validate_proto_extTypes[2] + // Specifies predefined rules. When extending a standard rule message, + // this adds additional CEL expressions that apply when the extension is used. + // + // ```proto + // + // extend buf.validate.Int32Rules { + // bool is_zero [(buf.validate.predefined).cel = { + // id: "int32.is_zero", + // message: "value must be zero", + // expression: "!rule || this == 0", + // }]; + // } + // + // message Foo { + // int32 reserved = 1 [(buf.validate.field).int32.(is_zero) = true]; + // } + // + // ``` + // + // optional buf.validate.PredefinedRules predefined = 1160; + E_Predefined = &file_buf_validate_validate_proto_extTypes[3] +) + +var File_buf_validate_validate_proto protoreflect.FileDescriptor + +var file_buf_validate_validate_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x62, + 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x50, + 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x7a, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x24, 0x0a, 0x03, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x03, 0x63, 0x65, 0x6c, 0x12, 0x34, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x6e, 0x65, 0x6f, + 0x66, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4a, 0x04, 0x08, 0x01, + 0x10, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x46, 0x0a, 0x10, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x52, 0x75, 0x6c, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x22, 0x28, 0x0a, 0x0a, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xfd, + 0x09, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, + 0x03, 0x63, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x03, + 0x63, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, + 0x2c, 0x0a, 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x14, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x30, 0x0a, + 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, + 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, + 0x33, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x33, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x33, 0x0a, + 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x36, 0x0a, 0x07, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x12, 0x36, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x39, 0x0a, 0x08, + 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x66, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, + 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x36, 0x34, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, + 0x6c, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x66, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, + 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x2a, + 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x75, + 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, + 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04, 0x08, 0x18, 0x10, + 0x19, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, + 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5a, + 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x03, 0x63, 0x65, 0x6c, 0x4a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x4a, 0x04, 0x08, + 0x1a, 0x10, 0x1b, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x0c, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x90, 0x18, 0x0a, 0x0a, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x74, 0xc2, 0x48, 0x71, 0x0a, 0x6f, + 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0xa3, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x42, 0x90, 0x01, 0xc2, 0x48, 0x8c, 0x01, 0x0a, 0x89, 0x01, 0x0a, 0x08, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x6c, 0x74, 0x1a, 0x7d, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xb4, 0x01, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x9f, 0x01, 0xc2, 0x48, 0x9b, + 0x01, 0x0a, 0x98, 0x01, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x6c, 0x74, 0x65, 0x1a, + 0x8a, 0x01, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, + 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, + 0x6c, 0x74, 0x65, 0x12, 0xf3, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x42, 0xe0, 0x07, 0xc2, 0x48, 0xdc, 0x07, 0x0a, 0x8d, 0x01, 0x0a, 0x08, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x2e, 0x67, 0x74, 0x1a, 0x80, 0x01, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc3, 0x01, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x1a, 0xb3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, + 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcd, 0x01, + 0x0a, 0x15, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, + 0x7c, 0x7c, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd3, 0x01, + 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc2, + 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xdd, 0x01, 0x0a, 0x16, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x67, 0x74, + 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xc2, + 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0xbf, 0x08, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x42, 0xaa, 0x08, 0xc2, 0x48, 0xa6, 0x08, 0x0a, 0x9b, + 0x01, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x8d, 0x01, 0x21, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, + 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd2, 0x01, 0x0a, + 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xc1, 0x01, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x0a, 0xdc, 0x01, 0x0a, 0x16, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x67, 0x74, 0x65, 0x5f, + 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xc1, 0x01, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, + 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x0a, 0xe2, 0x01, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, + 0x74, 0x65, 0x1a, 0xd0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xec, 0x01, 0x0a, 0x17, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, + 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x1a, 0xd0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x42, 0x73, 0xc2, 0x48, 0x70, 0x0a, 0x6e, 0x0a, + 0x08, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, + 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x7d, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x02, 0x42, 0x66, 0xc2, 0x48, 0x63, 0x0a, 0x61, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, + 0x12, 0x7d, 0x0a, 0x06, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x65, 0xc2, 0x48, 0x62, 0x0a, 0x60, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x65, 0x1a, 0x50, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x20, 0x3f, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, + 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x6e, + 0x66, 0x28, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x27, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x06, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x12, + 0x34, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x02, + 0x42, 0x1a, 0xc2, 0x48, 0x17, 0x0a, 0x15, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2e, 0x65, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, + 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, + 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, 0xa2, 0x18, + 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8b, 0x01, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x75, 0xc2, + 0x48, 0x72, 0x0a, 0x70, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0xa4, 0x01, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x91, 0x01, 0xc2, 0x48, 0x8d, 0x01, 0x0a, + 0x8a, 0x01, 0x0a, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x6c, 0x74, 0x1a, 0x7d, 0x21, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, + 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0xb5, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, + 0x42, 0xa0, 0x01, 0xc2, 0x48, 0x9c, 0x01, 0x0a, 0x99, 0x01, 0x0a, 0x0a, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x8a, 0x01, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0xf8, 0x07, 0x0a, 0x02, 0x67, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x42, 0xe5, 0x07, 0xc2, 0x48, 0xe1, 0x07, 0x0a, 0x8e, + 0x01, 0x0a, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x1a, 0x80, 0x01, 0x21, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, + 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xc4, 0x01, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, + 0x1a, 0xb3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xce, 0x01, 0x0a, 0x16, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x1a, 0xb3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd4, 0x01, 0x0a, 0x0d, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc2, 0x01, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, + 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xde, + 0x01, 0x0a, 0x17, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xc2, 0x01, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, + 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, + 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0xc4, 0x08, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x01, 0x42, 0xaf, 0x08, 0xc2, 0x48, 0xab, 0x08, 0x0a, 0x9c, 0x01, 0x0a, 0x0a, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x8d, 0x01, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd3, 0x01, 0x0a, 0x0d, 0x64, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xc1, 0x01, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, + 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xdd, 0x01, 0x0a, 0x17, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xc1, 0x01, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, + 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xe3, 0x01, 0x0a, 0x0e, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, + 0x74, 0x65, 0x1a, 0xd0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xed, 0x01, 0x0a, 0x18, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x76, 0x65, 0x1a, 0xd0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, + 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x84, 0x01, 0x0a, + 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x42, 0x74, 0xc2, 0x48, 0x71, 0x0a, 0x6f, + 0x0a, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, + 0x02, 0x69, 0x6e, 0x12, 0x7e, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x01, 0x42, 0x67, 0xc2, 0x48, 0x64, 0x0a, 0x62, 0x0a, 0x0d, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x7e, 0x0a, 0x06, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x66, 0xc2, 0x48, 0x63, 0x0a, 0x61, 0x0a, 0x0d, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x1a, 0x50, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x20, 0x3f, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x69, 0x73, 0x4e, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x69, 0x73, 0x49, 0x6e, 0x66, 0x28, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x27, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x06, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x01, 0x42, 0x1b, 0xc2, 0x48, 0x18, 0x0a, 0x16, 0x0a, 0x0e, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, + 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, + 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, + 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, + 0x61, 0x6e, 0x22, 0xba, 0x15, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x74, 0xc2, 0x48, 0x71, 0x0a, 0x6f, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, + 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x8e, + 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x7c, 0xc2, 0x48, 0x79, + 0x0a, 0x77, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, + 0xa1, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x8c, 0x01, + 0xc2, 0x48, 0x88, 0x01, 0x0a, 0x85, 0x01, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x6c, + 0x74, 0x65, 0x1a, 0x78, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, + 0x6c, 0x74, 0x65, 0x12, 0x9b, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x88, 0x07, 0xc2, 0x48, 0x84, 0x07, 0x0a, 0x7a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xb3, 0x01, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, + 0x5f, 0x6c, 0x74, 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbb, 0x01, 0x0a, 0x15, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc3, 0x01, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcb, 0x01, + 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, + 0x74, 0x12, 0xe8, 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, + 0xd3, 0x07, 0xc2, 0x48, 0xcf, 0x07, 0x0a, 0x88, 0x01, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x0a, 0xc2, 0x01, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, + 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xca, 0x01, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xd2, 0x01, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, + 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xda, 0x01, 0x0a, 0x17, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x83, 0x01, 0x0a, + 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x42, 0x73, 0xc2, 0x48, 0x70, 0x0a, 0x6e, + 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x7d, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x05, 0x42, 0x66, 0xc2, 0x48, 0x63, 0x0a, 0x61, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x05, 0x42, 0x1a, 0xc2, 0x48, 0x17, 0x0a, 0x15, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, + 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, + 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, + 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, + 0xba, 0x15, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8a, + 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x74, + 0xc2, 0x48, 0x71, 0x0a, 0x6f, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x8e, 0x01, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x7c, 0xc2, 0x48, 0x79, 0x0a, 0x77, 0x0a, + 0x08, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa1, 0x01, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x8c, 0x01, 0xc2, 0x48, 0x88, + 0x01, 0x0a, 0x85, 0x01, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x65, 0x1a, + 0x78, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x9b, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x88, 0x07, + 0xc2, 0x48, 0x84, 0x07, 0x0a, 0x7a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, + 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x0a, 0xb3, 0x01, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, + 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbb, 0x01, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc3, 0x01, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, + 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, + 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcb, 0x01, 0x0a, 0x16, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0xe8, + 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, 0xd3, 0x07, 0xc2, + 0x48, 0xcf, 0x07, 0x0a, 0x88, 0x01, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, + 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc2, + 0x01, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, + 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xca, 0x01, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, + 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xaf, + 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x0a, 0xd2, 0x01, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, + 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xda, 0x01, 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, + 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x42, 0x73, 0xc2, 0x48, 0x70, 0x0a, 0x6e, 0x0a, 0x08, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, + 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, + 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, + 0x7d, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x42, + 0x66, 0xc2, 0x48, 0x63, 0x0a, 0x61, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x34, + 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x03, 0x42, + 0x1a, 0xc2, 0x48, 0x17, 0x0a, 0x15, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, + 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, 0xcb, 0x15, 0x0a, + 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8b, 0x01, 0x0a, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x75, 0xc2, 0x48, + 0x72, 0x0a, 0x70, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x02, 0x6c, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x7d, 0xc2, 0x48, 0x7a, 0x0a, 0x78, 0x0a, 0x09, + 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa2, 0x01, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x8d, 0x01, 0xc2, 0x48, 0x89, + 0x01, 0x0a, 0x86, 0x01, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x65, + 0x1a, 0x78, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, + 0x65, 0x12, 0xa0, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x8d, + 0x07, 0xc2, 0x48, 0x89, 0x07, 0x0a, 0x7b, 0x0a, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, + 0x67, 0x74, 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x0a, 0xb4, 0x01, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, + 0x5f, 0x6c, 0x74, 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbc, 0x01, 0x0a, 0x16, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc4, 0x01, 0x0a, 0x0d, 0x75, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xcc, 0x01, 0x0a, 0x17, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, + 0x52, 0x02, 0x67, 0x74, 0x12, 0xed, 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0xd8, 0x07, 0xc2, 0x48, 0xd4, 0x07, 0x0a, 0x89, 0x01, 0x0a, 0x0a, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc3, 0x01, 0x0a, 0x0d, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcb, 0x01, 0x0a, 0x17, + 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, + 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd3, 0x01, 0x0a, 0x0e, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xdb, 0x01, 0x0a, 0x18, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, + 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0d, 0x42, 0x74, 0xc2, 0x48, 0x71, 0x0a, 0x6f, 0x0a, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, + 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, + 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x7e, 0x0a, 0x06, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x67, 0xc2, 0x48, 0x64, + 0x0a, 0x62, 0x0a, 0x0d, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x35, 0x0a, 0x07, 0x65, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x1b, 0xc2, 0x48, + 0x18, 0x0a, 0x16, 0x0a, 0x0e, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, + 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, 0xcb, 0x15, 0x0a, 0x0b, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x75, 0xc2, 0x48, 0x72, 0x0a, + 0x70, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, + 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, + 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x7d, 0xc2, 0x48, 0x7a, 0x0a, 0x78, 0x0a, 0x09, 0x75, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa2, 0x01, 0x0a, 0x03, 0x6c, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x8d, 0x01, 0xc2, 0x48, 0x89, 0x01, 0x0a, + 0x86, 0x01, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x78, + 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, + 0xa0, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x8d, 0x07, 0xc2, + 0x48, 0x89, 0x07, 0x0a, 0x7b, 0x0a, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, + 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x0a, 0xb4, 0x01, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, + 0x74, 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbc, 0x01, 0x0a, 0x16, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc4, 0x01, 0x0a, 0x0d, 0x75, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcc, 0x01, + 0x0a, 0x17, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, + 0x67, 0x74, 0x12, 0xed, 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x42, 0xd8, 0x07, 0xc2, 0x48, 0xd4, 0x07, 0x0a, 0x89, 0x01, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xc3, 0x01, 0x0a, 0x0d, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, + 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcb, 0x01, 0x0a, 0x17, 0x75, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd3, 0x01, 0x0a, 0x0e, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xdb, 0x01, + 0x0a, 0x18, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x74, 0xc2, 0x48, 0x71, 0x0a, 0x6f, 0x0a, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x69, + 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, + 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x7e, 0x0a, 0x06, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x42, 0x67, 0xc2, 0x48, 0x64, 0x0a, 0x62, + 0x0a, 0x0d, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, + 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x42, 0x1b, 0xc2, 0x48, 0x18, 0x0a, + 0x16, 0x0a, 0x0e, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, 0xcb, 0x15, 0x0a, 0x0b, 0x53, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x42, 0x75, 0xc2, 0x48, 0x72, 0x0a, 0x70, 0x0a, + 0x0c, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x11, 0x42, 0x7d, 0xc2, 0x48, 0x7a, 0x0a, 0x78, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa2, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x42, 0x8d, 0x01, 0xc2, 0x48, 0x89, 0x01, 0x0a, 0x86, 0x01, + 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x78, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0xa0, 0x07, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x42, 0x8d, 0x07, 0xc2, 0x48, 0x89, + 0x07, 0x0a, 0x7b, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x1a, 0x6e, + 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xb4, + 0x01, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x1a, + 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbc, 0x01, 0x0a, 0x16, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc4, 0x01, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, + 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcc, 0x01, 0x0a, 0x17, + 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, + 0x12, 0xed, 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x42, 0xd8, + 0x07, 0xc2, 0x48, 0xd4, 0x07, 0x0a, 0x89, 0x01, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x0a, 0xc3, 0x01, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, + 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcb, 0x01, 0x0a, 0x17, 0x73, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd3, 0x01, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xdb, 0x01, 0x0a, 0x18, + 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x84, 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x11, 0x42, 0x74, 0xc2, + 0x48, 0x71, 0x0a, 0x6f, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x69, 0x6e, 0x1a, + 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, + 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x7e, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x42, 0x67, 0xc2, 0x48, 0x64, 0x0a, 0x62, 0x0a, 0x0d, + 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x11, 0x42, 0x1b, 0xc2, 0x48, 0x18, 0x0a, 0x16, 0x0a, + 0x0e, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, + 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, + 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, + 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, 0xcb, 0x15, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x42, 0x75, 0xc2, 0x48, 0x72, 0x0a, 0x70, 0x0a, 0x0c, 0x73, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x12, 0x42, 0x7d, 0xc2, 0x48, 0x7a, 0x0a, 0x78, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa2, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x12, 0x42, 0x8d, 0x01, 0xc2, 0x48, 0x89, 0x01, 0x0a, 0x86, 0x01, 0x0a, 0x0a, + 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x78, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0xa0, 0x07, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x42, 0x8d, 0x07, 0xc2, 0x48, 0x89, 0x07, 0x0a, + 0x7b, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x1a, 0x6e, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xb4, 0x01, 0x0a, + 0x0c, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x1a, 0xa3, 0x01, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xbc, 0x01, 0x0a, 0x16, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, + 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xa1, + 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x0a, 0xc4, 0x01, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, + 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcc, 0x01, 0x0a, 0x17, 0x73, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0xed, + 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x42, 0xd8, 0x07, 0xc2, + 0x48, 0xd4, 0x07, 0x0a, 0x89, 0x01, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, + 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xc3, 0x01, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, + 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcb, 0x01, 0x0a, 0x17, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xd3, 0x01, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, + 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xdb, 0x01, 0x0a, 0x18, 0x73, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x84, + 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x42, 0x74, 0xc2, 0x48, 0x71, + 0x0a, 0x6f, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x7e, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x12, 0x42, 0x67, 0xc2, 0x48, 0x64, 0x0a, 0x62, 0x0a, 0x0d, 0x73, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x12, 0x42, 0x1b, 0xc2, 0x48, 0x18, 0x0a, 0x16, 0x0a, 0x0e, 0x73, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, + 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, + 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, + 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, + 0x74, 0x68, 0x61, 0x6e, 0x22, 0xdc, 0x15, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x07, 0x42, 0x76, 0xc2, 0x48, 0x73, 0x0a, 0x71, 0x0a, 0x0d, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x90, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x07, 0x42, 0x7e, 0xc2, 0x48, 0x7b, 0x0a, 0x79, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, + 0x32, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa3, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x07, 0x42, 0x8e, 0x01, 0xc2, 0x48, 0x8a, 0x01, 0x0a, 0x87, 0x01, 0x0a, + 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x78, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0xa5, 0x07, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x42, 0x92, 0x07, 0xc2, 0x48, 0x8e, + 0x07, 0x0a, 0x7c, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x1a, + 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xb5, 0x01, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, + 0x74, 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbd, 0x01, 0x0a, 0x17, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc5, 0x01, 0x0a, 0x0e, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xcd, 0x01, 0x0a, 0x18, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, + 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, + 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0xf2, 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x07, 0x42, 0xdd, 0x07, 0xc2, 0x48, 0xd9, 0x07, 0x0a, 0x8a, 0x01, 0x0a, 0x0b, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc4, 0x01, 0x0a, 0x0e, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcc, + 0x01, 0x0a, 0x18, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd4, 0x01, + 0x0a, 0x0f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, + 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xdc, 0x01, 0x0a, 0x19, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, + 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x02, 0x69, + 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x42, 0x75, 0xc2, 0x48, 0x72, 0x0a, 0x70, 0x0a, 0x0a, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x7f, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x07, 0x42, 0x68, 0xc2, 0x48, 0x65, 0x0a, 0x63, 0x0a, 0x0e, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x07, 0x42, 0x1c, 0xc2, 0x48, 0x19, 0x0a, 0x17, 0x0a, 0x0f, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, + 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, + 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, + 0x68, 0x61, 0x6e, 0x22, 0xdc, 0x15, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x06, 0x42, 0x76, 0xc2, 0x48, 0x73, 0x0a, 0x71, 0x0a, 0x0d, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x36, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x12, 0x90, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, + 0x42, 0x7e, 0xc2, 0x48, 0x7b, 0x0a, 0x79, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, + 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa3, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x06, 0x42, 0x8e, 0x01, 0xc2, 0x48, 0x8a, 0x01, 0x0a, 0x87, 0x01, 0x0a, 0x0b, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x78, 0x21, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0xa5, 0x07, 0x0a, + 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x42, 0x92, 0x07, 0xc2, 0x48, 0x8e, 0x07, + 0x0a, 0x7c, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x1a, 0x6e, + 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xb5, + 0x01, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, + 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbd, 0x01, 0x0a, 0x17, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc5, 0x01, 0x0a, 0x0e, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcd, + 0x01, 0x0a, 0x18, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, + 0x52, 0x02, 0x67, 0x74, 0x12, 0xf2, 0x07, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x06, 0x42, 0xdd, 0x07, 0xc2, 0x48, 0xd9, 0x07, 0x0a, 0x8a, 0x01, 0x0a, 0x0b, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc4, 0x01, 0x0a, 0x0e, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcc, 0x01, + 0x0a, 0x18, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, + 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd4, 0x01, 0x0a, + 0x0f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, + 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xdc, 0x01, 0x0a, 0x19, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, + 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x06, 0x42, 0x75, 0xc2, 0x48, 0x72, 0x0a, 0x70, 0x0a, 0x0a, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, + 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x7f, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x06, 0x42, 0x68, 0xc2, 0x48, 0x65, 0x0a, 0x63, 0x0a, 0x0e, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, + 0x34, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x49, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x06, 0x42, 0x1c, 0xc2, 0x48, 0x19, 0x0a, 0x17, 0x0a, 0x0f, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, + 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, + 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, + 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, + 0x61, 0x6e, 0x22, 0xee, 0x15, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0f, 0x42, 0x77, 0xc2, 0x48, 0x74, 0x0a, 0x72, 0x0a, 0x0e, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, + 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x91, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0f, 0x42, 0x7f, 0xc2, 0x48, 0x7c, 0x0a, 0x7a, 0x0a, 0x0b, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa4, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0f, 0x42, 0x8f, 0x01, 0xc2, 0x48, 0x8b, 0x01, 0x0a, 0x88, 0x01, + 0x0a, 0x0c, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x78, + 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, + 0xaa, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x42, 0x97, 0x07, 0xc2, + 0x48, 0x93, 0x07, 0x0a, 0x7d, 0x0a, 0x0b, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, + 0x67, 0x74, 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x0a, 0xb6, 0x01, 0x0a, 0x0e, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, + 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbe, 0x01, 0x0a, 0x18, + 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, + 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, + 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc6, 0x01, 0x0a, + 0x0f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, + 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xce, 0x01, 0x0a, 0x19, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0xf7, 0x07, 0x0a, + 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x42, 0xe2, 0x07, 0xc2, 0x48, 0xde, + 0x07, 0x0a, 0x8b, 0x01, 0x0a, 0x0c, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, + 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xc5, 0x01, 0x0a, 0x0f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, + 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcd, 0x01, 0x0a, 0x19, 0x73, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd5, 0x01, 0x0a, 0x10, 0x73, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, + 0xdd, 0x01, 0x0a, 0x1a, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x2e, 0x67, 0x74, 0x65, + 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, + 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, + 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0f, 0x42, 0x76, 0xc2, 0x48, 0x73, 0x0a, 0x71, 0x0a, 0x0b, 0x73, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, + 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, + 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, + 0x80, 0x01, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, + 0x42, 0x69, 0xc2, 0x48, 0x66, 0x0a, 0x64, 0x0a, 0x0f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, + 0x32, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x49, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0f, 0x42, 0x1d, 0xc2, 0x48, 0x1a, 0x0a, 0x18, 0x0a, 0x10, 0x73, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, + 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, + 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, + 0x68, 0x61, 0x6e, 0x22, 0xee, 0x15, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x10, 0x42, 0x77, 0xc2, 0x48, 0x74, 0x0a, 0x72, 0x0a, 0x0e, 0x73, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, + 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x91, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x10, 0x42, 0x7f, 0xc2, 0x48, 0x7c, 0x0a, 0x7a, 0x0a, 0x0b, 0x73, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x12, 0xa4, 0x01, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x42, 0x8f, 0x01, 0xc2, 0x48, 0x8b, 0x01, 0x0a, 0x88, + 0x01, 0x0a, 0x0c, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x6c, 0x74, 0x65, 0x1a, + 0x78, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0xaa, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x42, 0x97, 0x07, + 0xc2, 0x48, 0x93, 0x07, 0x0a, 0x7d, 0x0a, 0x0b, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, + 0x2e, 0x67, 0x74, 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x0a, 0xb6, 0x01, 0x0a, 0x0e, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, + 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbe, 0x01, 0x0a, + 0x18, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc6, 0x01, + 0x0a, 0x0f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, + 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xce, 0x01, 0x0a, 0x19, 0x73, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0xf7, 0x07, + 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x42, 0xe2, 0x07, 0xc2, 0x48, + 0xde, 0x07, 0x0a, 0x8b, 0x01, 0x0a, 0x0c, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, + 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x0a, 0xc5, 0x01, 0x0a, 0x0f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, + 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xcd, 0x01, 0x0a, 0x19, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, + 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xd5, 0x01, 0x0a, 0x10, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x0a, 0xdd, 0x01, 0x0a, 0x1a, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x67, 0x74, + 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, + 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x10, 0x42, 0x76, 0xc2, 0x48, 0x73, 0x0a, 0x71, 0x0a, 0x0b, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, + 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x80, 0x01, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x10, 0x42, 0x69, 0xc2, 0x48, 0x66, 0x0a, 0x64, 0x0a, 0x0f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x36, 0x34, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x10, 0x42, 0x1d, 0xc2, 0x48, 0x1a, 0x0a, 0x18, 0x0a, 0x10, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, + 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, + 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, + 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, + 0x74, 0x68, 0x61, 0x6e, 0x22, 0xd7, 0x01, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x73, 0xc2, 0x48, 0x70, 0x0a, 0x6e, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, + 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x33, + 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x08, 0x42, + 0x19, 0xc2, 0x48, 0x16, 0x0a, 0x14, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x2e, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd1, + 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x8d, + 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x77, + 0xc2, 0x48, 0x74, 0x0a, 0x72, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x1a, 0x62, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x60, 0x25, 0x73, 0x60, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x83, + 0x01, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x42, 0x71, 0xc2, 0x48, + 0x6e, 0x0a, 0x6c, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6c, 0x65, 0x6e, 0x1a, + 0x5e, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, + 0x29, 0x29, 0x20, 0x21, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x25, 0x73, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, + 0x03, 0x6c, 0x65, 0x6e, 0x12, 0xa1, 0x01, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x87, 0x01, 0xc2, 0x48, 0x83, 0x01, 0x0a, 0x80, 0x01, + 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, + 0x1a, 0x6e, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, + 0x28, 0x29, 0x29, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, + 0x6c, 0x65, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x74, 0x20, 0x6c, + 0x65, 0x61, 0x73, 0x74, 0x20, 0x25, 0x73, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x9f, 0x01, 0x0a, 0x07, 0x6d, 0x61, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x85, 0x01, 0xc2, 0x48, 0x81, + 0x01, 0x0a, 0x7f, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x61, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x1a, 0x6d, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, + 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, + 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x25, 0x73, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0xa5, 0x01, 0x0a, 0x09, 0x6c, + 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x42, 0x87, + 0x01, 0xc2, 0x48, 0x83, 0x01, 0x0a, 0x80, 0x01, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x2e, 0x6c, 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x6c, 0x75, 0x69, 0x6e, 0x74, + 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2e, 0x73, 0x69, 0x7a, + 0x65, 0x28, 0x29, 0x29, 0x20, 0x21, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x25, 0x73, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0xad, 0x01, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x8f, 0x01, 0xc2, 0x48, 0x8b, 0x01, 0x0a, 0x88, 0x01, + 0x0a, 0x10, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x1a, 0x74, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, + 0x25, 0x73, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x8e, 0x01, 0xc2, 0x48, 0x8a, 0x01, 0x0a, 0x87, 0x01, + 0x0a, 0x10, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x1a, 0x73, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x25, + 0x73, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x96, 0x01, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x7c, 0xc2, 0x48, 0x79, 0x0a, 0x77, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x1a, 0x65, 0x21, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x60, + 0x25, 0x73, 0x60, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x8c, 0x01, 0x0a, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x74, 0xc2, 0x48, 0x71, + 0x0a, 0x6f, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x1a, 0x5e, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x57, + 0x69, 0x74, 0x68, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x60, 0x25, 0x73, 0x60, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x8a, 0x01, 0x0a, 0x06, 0x73, 0x75, + 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x72, 0xc2, 0x48, 0x6f, 0x0a, + 0x6d, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, + 0x1a, 0x5c, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x6e, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x29, 0x20, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x20, 0x60, 0x25, 0x73, + 0x60, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x06, + 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x9a, 0x01, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x7e, 0xc2, 0x48, 0x7b, 0x0a, 0x79, + 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x1a, 0x66, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x60, 0x25, 0x73, 0x60, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x73, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x73, 0x12, 0xa5, 0x01, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x42, 0x81, 0x01, 0xc2, 0x48, 0x7e, + 0x0a, 0x7c, 0x0a, 0x13, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x1a, 0x65, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x60, 0x25, 0x73, 0x60, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x0b, + 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x42, 0x74, 0xc2, 0x48, 0x71, 0x0a, 0x6f, 0x0a, + 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x7e, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x09, 0x42, 0x67, 0xc2, 0x48, 0x64, 0x0a, 0x62, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x49, 0x6e, 0x12, 0xe6, 0x01, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0xcd, 0x01, 0xc2, 0x48, 0xc9, 0x01, 0x0a, 0x61, 0x0a, 0x0c, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x2e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x20, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x2c, + 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x28, 0x29, 0x0a, 0x64, 0x0a, 0x12, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x32, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x20, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x1a, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, + 0x27, 0x27, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0xf1, 0x01, 0x0a, 0x08, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0xd2, + 0x01, 0xc2, 0x48, 0xce, 0x01, 0x0a, 0x65, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x32, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x69, 0x73, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x29, 0x0a, 0x65, 0x0a, 0x15, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x68, 0x6f, 0x73, 0x74, + 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, + 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0xcb, 0x01, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0xb8, 0x01, 0xc2, + 0x48, 0xb4, 0x01, 0x0a, 0x55, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, + 0x12, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x1a, 0x26, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x28, 0x29, 0x0a, 0x5b, 0x0a, 0x0f, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x17, + 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0xdc, 0x01, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0xc5, 0x01, 0xc2, + 0x48, 0xc1, 0x01, 0x0a, 0x5c, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, + 0x76, 0x34, 0x12, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x29, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, + 0x70, 0x76, 0x34, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, + 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x28, 0x34, + 0x29, 0x0a, 0x61, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, + 0x34, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x19, 0x21, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x69, 0x70, 0x76, 0x34, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, + 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0xdc, 0x01, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0xc5, 0x01, 0xc2, 0x48, + 0xc1, 0x01, 0x0a, 0x5c, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, + 0x36, 0x12, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x29, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, + 0x76, 0x36, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x28, 0x36, 0x29, + 0x0a, 0x61, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x36, + 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x19, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x69, 0x70, 0x76, 0x36, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, + 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0xc4, 0x01, 0x0a, 0x03, + 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0xaf, 0x01, 0xc2, 0x48, 0xab, 0x01, + 0x0a, 0x51, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x72, 0x69, 0x12, 0x19, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x55, 0x52, 0x49, 0x1a, 0x28, 0x21, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x75, 0x72, 0x69, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, + 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x55, 0x72, + 0x69, 0x28, 0x29, 0x0a, 0x56, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x72, + 0x69, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x55, 0x52, + 0x49, 0x1a, 0x18, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x75, 0x72, 0x69, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x03, 0x75, + 0x72, 0x69, 0x12, 0x78, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x5d, 0xc2, 0x48, 0x5a, 0x0a, 0x58, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, 0x66, 0x12, 0x23, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x20, 0x55, 0x52, 0x49, 0x20, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, + 0x21, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, 0x66, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x55, 0x72, 0x69, 0x52, 0x65, 0x66, + 0x28, 0x29, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, 0x52, 0x65, 0x66, 0x12, 0x99, 0x02, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, 0xfc, + 0x01, 0xc2, 0x48, 0xf8, 0x01, 0x0a, 0x81, 0x01, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x2e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x70, 0x20, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x40, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, + 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x28, 0x29, 0x0a, 0x72, 0x0a, 0x14, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x3c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x70, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, + 0x1c, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x9e, 0x02, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x42, 0x87, 0x02, 0xc2, 0x48, 0x83, 0x02, 0x0a, 0xa5, + 0x01, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x55, 0x55, 0x49, 0x44, 0x1a, 0x7a, 0x21, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x75, 0x75, 0x69, 0x64, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x28, 0x27, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, + 0x2d, 0x46, 0x5d, 0x7b, 0x38, 0x7d, 0x2d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, + 0x46, 0x5d, 0x7b, 0x34, 0x7d, 0x2d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, + 0x5d, 0x7b, 0x34, 0x7d, 0x2d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, + 0x7b, 0x34, 0x7d, 0x2d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, + 0x31, 0x32, 0x7d, 0x24, 0x27, 0x29, 0x0a, 0x59, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x2e, 0x75, 0x75, 0x69, 0x64, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x29, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x20, 0x55, 0x55, 0x49, 0x44, 0x1a, 0x19, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x75, + 0x75, 0x69, 0x64, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, + 0x27, 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0xf7, 0x01, 0x0a, 0x05, 0x74, 0x75, + 0x75, 0x69, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x42, 0xde, 0x01, 0xc2, 0x48, 0xda, 0x01, + 0x0a, 0x73, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x74, 0x75, 0x75, 0x69, 0x64, + 0x12, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, + 0x55, 0x55, 0x49, 0x44, 0x1a, 0x3f, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x75, 0x75, + 0x69, 0x64, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x28, 0x27, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x33, + 0x32, 0x7d, 0x24, 0x27, 0x29, 0x0a, 0x63, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x74, 0x75, 0x75, 0x69, 0x64, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x55, 0x55, 0x49, 0x44, 0x1a, 0x1a, + 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x75, 0x75, 0x69, 0x64, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x05, 0x74, 0x75, + 0x75, 0x69, 0x64, 0x12, 0xa7, 0x02, 0x0a, 0x11, 0x69, 0x70, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x42, + 0xf8, 0x01, 0xc2, 0x48, 0xf4, 0x01, 0x0a, 0x78, 0x0a, 0x18, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x2e, 0x69, 0x70, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, + 0x65, 0x6e, 0x12, 0x1f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x1a, 0x3b, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x20, 0x7c, 0x7c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x28, 0x29, + 0x0a, 0x78, 0x0a, 0x1e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x1a, 0x26, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x70, + 0x57, 0x69, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x12, 0xe2, 0x02, + 0x0a, 0x13, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x42, 0xaf, 0x02, 0xc2, 0x48, + 0xab, 0x02, 0x0a, 0x93, 0x01, 0x0a, 0x1a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, + 0x6e, 0x12, 0x35, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x3e, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x6c, 0x65, 0x6e, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, + 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x28, 0x34, 0x29, 0x0a, 0x92, 0x01, 0x0a, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x1a, 0x28, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, + 0x11, 0x69, 0x70, 0x76, 0x34, 0x57, 0x69, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, + 0x65, 0x6e, 0x12, 0xe2, 0x02, 0x0a, 0x13, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, + 0x42, 0xaf, 0x02, 0xc2, 0x48, 0xab, 0x02, 0x0a, 0x93, 0x01, 0x0a, 0x1a, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x12, 0x35, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, + 0x76, 0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x3e, 0x21, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x69, 0x73, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x28, 0x36, 0x29, 0x0a, 0x92, 0x01, + 0x0a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x44, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x28, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x6c, 0x65, 0x6e, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, + 0x27, 0x27, 0x48, 0x00, 0x52, 0x11, 0x69, 0x70, 0x76, 0x36, 0x57, 0x69, 0x74, 0x68, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x12, 0xfc, 0x01, 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x42, 0xdc, 0x01, 0xc2, 0x48, + 0xd8, 0x01, 0x0a, 0x6c, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x37, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x69, 0x73, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x28, 0x74, 0x72, 0x75, 0x65, 0x29, + 0x0a, 0x68, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x20, 0x49, 0x50, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x1e, 0x21, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x8f, 0x02, 0x0a, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x42, 0xeb, 0x01, 0xc2, + 0x48, 0xe7, 0x01, 0x0a, 0x75, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x21, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x3c, 0x21, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x28, 0x34, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x0a, 0x6e, 0x0a, 0x18, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x30, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, + 0x34, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x20, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x70, + 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x8f, 0x02, 0x0a, 0x0b, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x42, 0xeb, + 0x01, 0xc2, 0x48, 0xe7, 0x01, 0x0a, 0x75, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x21, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x3c, + 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x49, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x28, 0x36, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x0a, 0x6e, 0x0a, 0x18, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x30, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, + 0x50, 0x76, 0x36, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x20, 0x21, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x0a, + 0x69, 0x70, 0x76, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0xc2, 0x02, 0x0a, 0x0d, 0x68, + 0x6f, 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x9b, 0x02, 0xc2, 0x48, 0x97, 0x02, 0x0a, 0x99, 0x01, 0x0a, 0x14, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x41, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x28, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x49, 0x50, 0x20, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x1a, 0x3e, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x68, 0x6f, + 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x69, 0x73, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x28, + 0x74, 0x72, 0x75, 0x65, 0x29, 0x0a, 0x79, 0x0a, 0x1a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x37, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x1a, 0x22, 0x21, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, + 0x48, 0x00, 0x52, 0x0b, 0x68, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0xb8, 0x05, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, + 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, + 0x65, 0x67, 0x65, 0x78, 0x42, 0xf1, 0x04, 0xc2, 0x48, 0xed, 0x04, 0x0a, 0xf0, 0x01, 0x0a, 0x23, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x26, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xa0, 0x01, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, + 0x65, 0x67, 0x65, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x31, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x28, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x20, 0x3f, 0x27, 0x5e, 0x3a, 0x3f, + 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x21, 0x23, 0x24, 0x25, 0x26, 0x5c, + 0x27, 0x2a, 0x2b, 0x2d, 0x2e, 0x5e, 0x5f, 0x7c, 0x7e, 0x5c, 0x78, 0x36, 0x30, 0x5d, 0x2b, 0x24, + 0x27, 0x20, 0x3a, 0x27, 0x5e, 0x5b, 0x5e, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x5c, 0x75, 0x30, + 0x30, 0x30, 0x41, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x44, 0x5d, 0x2b, 0x24, 0x27, 0x29, 0x0a, 0x8d, + 0x01, 0x0a, 0x29, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x35, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x1a, 0x29, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x5f, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x31, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x27, 0x0a, 0xe7, + 0x01, 0x0a, 0x24, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x48, + 0x54, 0x54, 0x50, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x1a, 0x95, 0x01, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x32, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x28, 0x21, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x20, 0x3f, 0x27, 0x5e, 0x5b, 0x5e, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x2d, 0x5c, 0x75, + 0x30, 0x30, 0x30, 0x38, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x41, 0x2d, 0x5c, 0x75, 0x30, 0x30, 0x31, + 0x46, 0x5c, 0x75, 0x30, 0x30, 0x37, 0x46, 0x5d, 0x2a, 0x24, 0x27, 0x20, 0x3a, 0x27, 0x5e, 0x5b, + 0x5e, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x41, 0x5c, 0x75, 0x30, + 0x30, 0x30, 0x44, 0x5d, 0x2a, 0x24, 0x27, 0x29, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x65, 0x6c, 0x6c, + 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, + 0x63, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x22, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x1b, 0xc2, 0x48, 0x18, 0x0a, 0x16, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, + 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, + 0x80, 0x80, 0x80, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x22, 0xce, 0x11, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x87, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x71, 0xc2, 0x48, 0x6e, 0x0a, 0x6c, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x5d, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, + 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x25, 0x78, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x7d, 0x0a, 0x03, 0x6c, + 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x6b, 0xc2, 0x48, 0x68, 0x0a, 0x66, 0x0a, + 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x1a, 0x59, 0x75, 0x69, 0x6e, 0x74, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x21, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x25, 0x73, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x98, 0x01, 0x0a, 0x07, 0x6d, + 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x7f, 0xc2, 0x48, + 0x7c, 0x0a, 0x7a, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x1a, 0x69, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, + 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x69, + 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x74, + 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x25, 0x73, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, + 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x06, 0x6d, + 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x90, 0x01, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x77, 0xc2, 0x48, 0x74, 0x0a, 0x72, 0x0a, 0x0d, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x1a, 0x61, 0x75, + 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, + 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, + 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x25, 0x73, 0x20, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x99, 0x01, 0x0a, 0x07, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x7f, 0xc2, 0x48, 0x7c, 0x0a, + 0x7a, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x1a, 0x69, 0x21, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2e, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, + 0x20, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x60, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x07, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x12, 0x89, 0x01, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x71, 0xc2, 0x48, 0x6e, 0x0a, 0x6c, 0x0a, 0x0c, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x5c, 0x21, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x25, 0x78, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x87, 0x01, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x6f, 0xc2, 0x48, 0x6c, 0x0a, 0x6a, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, + 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x1a, 0x5a, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x6e, + 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x75, 0x66, + 0x66, 0x69, 0x78, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x20, 0x25, 0x78, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x8d, 0x01, 0x0a, 0x08, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x71, 0xc2, + 0x48, 0x6e, 0x0a, 0x6c, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x1a, 0x5a, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x73, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x25, + 0x78, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x02, 0x69, + 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x9a, 0x01, 0xc2, 0x48, 0x96, 0x01, 0x0a, 0x93, + 0x01, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x1a, 0x86, 0x01, 0x67, 0x65, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, + 0x6e, 0x27, 0x29, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x3e, 0x20, 0x30, 0x20, 0x26, + 0x26, 0x20, 0x21, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, + 0x29, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x7d, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x66, 0xc2, 0x48, 0x63, 0x0a, 0x61, 0x0a, + 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0xef, 0x01, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x42, 0xdc, 0x01, 0xc2, 0x48, 0xd8, 0x01, 0x0a, 0x74, 0x0a, 0x08, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x12, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, + 0x50, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x46, 0x21, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x69, 0x70, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, + 0x65, 0x28, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x34, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x31, + 0x36, 0x0a, 0x60, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x20, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x1a, 0x1d, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x21, + 0x3d, 0x20, 0x30, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0xea, 0x01, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0xd3, 0x01, 0xc2, 0x48, 0xcf, 0x01, 0x0a, + 0x65, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x34, 0x12, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x1a, 0x33, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x34, 0x20, 0x7c, + 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x3d, 0x3d, + 0x20, 0x30, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, + 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x34, 0x0a, 0x66, 0x0a, 0x10, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x1f, 0x21, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x34, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x21, 0x3d, 0x20, 0x30, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0xeb, 0x01, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0xd4, 0x01, 0xc2, 0x48, 0xd0, 0x01, 0x0a, 0x66, 0x0a, 0x0a, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x12, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x34, + 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x3d, + 0x3d, 0x20, 0x31, 0x36, 0x0a, 0x66, 0x0a, 0x10, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x49, + 0x50, 0x76, 0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x1f, 0x21, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x70, 0x76, 0x36, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x20, 0x21, 0x3d, 0x20, 0x30, 0x48, 0x00, 0x52, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x1a, 0xc2, 0x48, 0x17, 0x0a, 0x15, 0x0a, 0x0d, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, + 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, + 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x22, 0xfd, 0x03, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x89, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x73, 0xc2, 0x48, 0x70, 0x0a, 0x6e, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, + 0x12, 0x82, 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x42, 0x72, 0xc2, + 0x48, 0x6f, 0x0a, 0x6d, 0x0a, 0x07, 0x65, 0x6e, 0x75, 0x6d, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x7c, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x05, 0x42, 0x65, 0xc2, 0x48, 0x62, 0x0a, 0x60, 0x0a, 0x0b, 0x65, 0x6e, + 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x42, 0x19, 0xc2, 0x48, 0x16, 0x0a, 0x14, 0x0a, 0x0c, 0x65, 0x6e, 0x75, + 0x6d, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, + 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, + 0x80, 0x80, 0x02, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xa8, 0x01, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x8a, 0x01, 0xc2, 0x48, 0x86, 0x01, + 0x0a, 0x83, 0x01, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x6d, 0x69, + 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x6d, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x25, 0x64, 0x20, 0x69, + 0x74, 0x65, 0x6d, 0x28, 0x73, 0x29, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x12, 0xac, 0x01, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x8e, 0x01, 0xc2, 0x48, 0x8a, 0x01, 0x0a, 0x87, 0x01, 0x0a, 0x12, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x1a, 0x71, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, + 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x61, + 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x69, 0x74, + 0x65, 0x6d, 0x28, 0x73, 0x29, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x78, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x60, 0xc2, 0x48, 0x5d, 0x0a, 0x5b, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x2e, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x28, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x1a, 0x1e, 0x21, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x28, + 0x29, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, + 0x80, 0x80, 0x80, 0x02, 0x22, 0xac, 0x03, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x99, 0x01, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x7c, 0xc2, 0x48, 0x79, 0x0a, 0x77, 0x0a, 0x0d, 0x6d, 0x61, + 0x70, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x1a, 0x66, 0x75, 0x69, 0x6e, + 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x20, 0x3f, 0x20, 0x27, 0x6d, 0x61, 0x70, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x25, 0x64, 0x20, 0x65, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x5d, 0x29, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x98, 0x01, + 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x7b, 0xc2, 0x48, 0x78, 0x0a, 0x76, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x2e, 0x6d, 0x61, + 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x1a, 0x65, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x29, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x20, 0x3f, 0x20, 0x27, + 0x6d, 0x61, 0x70, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x73, 0x74, 0x20, 0x25, 0x64, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6d, 0x61, + 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, + 0x80, 0x80, 0x02, 0x22, 0x31, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, + 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xc6, 0x17, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xa8, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x77, 0xc2, 0x48, 0x74, 0x0a, 0x72, 0x0a, 0x0e, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x21, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x7f, 0xc2, 0x48, 0x7c, + 0x0a, 0x7a, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6c, 0x74, 0x1a, + 0x6b, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0xbf, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x8f, 0x01, 0xc2, 0x48, + 0x8b, 0x01, 0x0a, 0x88, 0x01, 0x0a, 0x0c, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x6c, 0x74, 0x65, 0x1a, 0x78, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0xc5, 0x07, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x97, 0x07, 0xc2, + 0x48, 0x93, 0x07, 0x0a, 0x7d, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x67, 0x74, 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x0a, 0xb6, 0x01, 0x0a, 0x0e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x1a, 0xa3, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbe, 0x01, 0x0a, 0x18, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, + 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, + 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc6, 0x01, 0x0a, + 0x0f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, + 0x1a, 0xb2, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, + 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, + 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xce, 0x01, 0x0a, 0x19, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x1a, 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x92, 0x08, 0x0a, + 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xe2, 0x07, 0xc2, 0x48, 0xde, 0x07, 0x0a, 0x8b, 0x01, 0x0a, + 0x0c, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, + 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc5, 0x01, 0x0a, 0x0f, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xb1, + 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x0a, 0xcd, 0x01, 0x0a, 0x19, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x0a, 0xd5, 0x01, 0x0a, 0x10, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xdd, 0x01, 0x0a, 0x1a, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, 0x73, 0x28, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, + 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, 0x67, 0x74, + 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x76, 0xc2, 0x48, 0x73, 0x0a, 0x71, + 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6e, 0x1a, 0x62, 0x21, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x29, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x27, 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x9b, 0x01, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x69, 0xc2, 0x48, 0x66, 0x0a, 0x64, 0x0a, 0x0f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x1a, 0x51, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x20, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x52, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x1d, 0xc2, 0x48, 0x1a, 0x0a, 0x18, 0x0a, 0x10, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, + 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, + 0x80, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, + 0x0e, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, + 0xca, 0x18, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 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, 0x42, 0x78, + 0xc2, 0x48, 0x75, 0x0a, 0x73, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x60, 0x74, 0x68, 0x69, 0x73, 0x20, 0x21, 0x3d, 0x20, + 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x25, 0x73, 0x27, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x67, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x27, + 0x29, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, + 0xaf, 0x01, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 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, 0x42, 0x80, 0x01, 0xc2, 0x48, 0x7d, 0x0a, 0x7b, + 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x6c, 0x74, 0x1a, 0x6b, + 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, 0x52, 0x02, 0x6c, + 0x74, 0x12, 0xc1, 0x01, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 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, 0x42, 0x90, 0x01, 0xc2, 0x48, + 0x8c, 0x01, 0x0a, 0x89, 0x01, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x6c, 0x74, 0x65, 0x1a, 0x78, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x00, + 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x73, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x5a, 0xc2, 0x48, 0x57, 0x0a, 0x55, 0x0a, 0x10, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x1a, 0x41, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x20, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x77, 0x27, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0xcb, 0x07, 0x0a, 0x02, 0x67, + 0x74, 0x18, 0x05, 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, 0x42, 0x9c, 0x07, 0xc2, 0x48, 0x98, 0x07, 0x0a, 0x7e, 0x0a, 0x0c, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x1a, 0x6e, 0x21, 0x68, 0x61, 0x73, + 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, 0x68, + 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xb7, 0x01, 0x0a, 0x0f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x1a, 0xa3, + 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, + 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xbf, 0x01, 0x0a, 0x19, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x76, 0x65, 0x1a, 0xa1, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, + 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc7, 0x01, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xb2, 0x01, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x2c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, + 0x0a, 0xcf, 0x01, 0x0a, 0x1a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, + 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, + 0xb0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x98, 0x08, 0x0a, 0x03, 0x67, 0x74, 0x65, + 0x18, 0x06, 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, 0x42, 0xe7, 0x07, 0xc2, 0x48, 0xe3, 0x07, 0x0a, 0x8c, 0x01, 0x0a, 0x0d, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x65, 0x1a, 0x7b, 0x21, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, 0x21, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, + 0x74, 0x65, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xc6, 0x01, 0x0a, 0x10, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x1a, 0xb1, 0x01, + 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, + 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, + 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x0a, 0xce, 0x01, 0x0a, 0x1a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x1a, 0xaf, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x20, 0x3c, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x29, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x25, 0x73, 0x27, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, + 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x5d, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x0a, 0xd6, 0x01, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, 0x65, 0x1a, 0xc0, 0x01, 0x68, 0x61, 0x73, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, 0x20, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x5b, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x0a, 0xde, 0x01, 0x0a, 0x1b, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x65, 0x5f, 0x6c, 0x74, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xbe, 0x01, 0x68, 0x61, + 0x73, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x67, 0x74, 0x65, 0x20, 0x26, 0x26, 0x20, 0x28, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x6c, 0x74, 0x65, 0x20, 0x3c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x3c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x29, 0x3f, + 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x73, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x65, 0x2c, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x6c, 0x74, 0x65, 0x5d, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x48, 0x01, 0x52, 0x03, + 0x67, 0x74, 0x65, 0x12, 0x76, 0x0a, 0x06, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x5d, 0xc2, 0x48, 0x5a, 0x0a, 0x58, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x1a, 0x44, 0x28, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x20, 0x26, 0x26, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x77, 0x27, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x48, 0x01, 0x52, 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0xc0, 0x01, 0x0a, 0x06, + 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x8c, 0x01, 0xc2, 0x48, 0x88, 0x01, 0x0a, 0x85, + 0x01, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x1a, 0x71, 0x74, 0x68, 0x69, 0x73, 0x20, 0x3c, 0x20, 0x6e, 0x6f, 0x77, 0x2d, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x7c, 0x7c, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x3e, 0x20, 0x6e, 0x6f, 0x77, 0x2b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x3f, 0x20, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x25, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x77, 0x27, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x5b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x5d, + 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x52, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x12, 0x54, + 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x03, 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, 0x42, 0x1e, 0xc2, 0x48, 0x1b, + 0x0a, 0x19, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, + 0x0b, 0x0a, 0x09, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x22, 0x45, 0x0a, 0x0a, + 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x76, 0x69, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x69, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x09, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2d, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x0a, + 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, + 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0x47, 0x0a, 0x09, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0xcc, 0x03, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, + 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, + 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x1b, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, + 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, + 0x52, 0x06, 0x69, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x69, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x75, 0x69, + 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x2a, 0xa1, 0x01, 0x0a, 0x06, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x16, + 0x0a, 0x12, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, + 0x5f, 0x49, 0x46, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x01, + 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x41, 0x4c, 0x57, 0x41, 0x59, + 0x53, 0x10, 0x03, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x2a, 0x0c, 0x49, 0x47, 0x4e, 0x4f, 0x52, + 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x2a, 0x0e, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, + 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x2a, 0x17, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, + 0x49, 0x46, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, + 0x2a, 0x15, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x49, 0x46, 0x5f, 0x55, 0x4e, 0x50, 0x4f, + 0x50, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x44, 0x2a, 0x6e, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, + 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, + 0x45, 0x47, 0x45, 0x58, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x45, + 0x58, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, + 0x4d, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x45, + 0x47, 0x45, 0x58, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, + 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x56, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x87, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, + 0x4e, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x87, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x6e, + 0x65, 0x6f, 0x66, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x3a, + 0x4e, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x87, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x3a, + 0x5d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x88, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x42, 0xa2, + 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x42, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0xa2, 0x02, 0x03, 0x42, 0x56, 0x58, 0xaa, 0x02, 0x0c, 0x42, 0x75, 0x66, + 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0xca, 0x02, 0x0c, 0x42, 0x75, 0x66, 0x5c, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0xe2, 0x02, 0x18, 0x42, 0x75, 0x66, 0x5c, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x42, 0x75, 0x66, 0x3a, 0x3a, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, +} + +var ( + file_buf_validate_validate_proto_rawDescOnce sync.Once + file_buf_validate_validate_proto_rawDescData = file_buf_validate_validate_proto_rawDesc +) + +func file_buf_validate_validate_proto_rawDescGZIP() []byte { + file_buf_validate_validate_proto_rawDescOnce.Do(func() { + file_buf_validate_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_buf_validate_validate_proto_rawDescData) + }) + return file_buf_validate_validate_proto_rawDescData +} + +var file_buf_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_buf_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +var file_buf_validate_validate_proto_goTypes = []interface{}{ + (Ignore)(0), // 0: buf.validate.Ignore + (KnownRegex)(0), // 1: buf.validate.KnownRegex + (*Rule)(nil), // 2: buf.validate.Rule + (*MessageRules)(nil), // 3: buf.validate.MessageRules + (*MessageOneofRule)(nil), // 4: buf.validate.MessageOneofRule + (*OneofRules)(nil), // 5: buf.validate.OneofRules + (*FieldRules)(nil), // 6: buf.validate.FieldRules + (*PredefinedRules)(nil), // 7: buf.validate.PredefinedRules + (*FloatRules)(nil), // 8: buf.validate.FloatRules + (*DoubleRules)(nil), // 9: buf.validate.DoubleRules + (*Int32Rules)(nil), // 10: buf.validate.Int32Rules + (*Int64Rules)(nil), // 11: buf.validate.Int64Rules + (*UInt32Rules)(nil), // 12: buf.validate.UInt32Rules + (*UInt64Rules)(nil), // 13: buf.validate.UInt64Rules + (*SInt32Rules)(nil), // 14: buf.validate.SInt32Rules + (*SInt64Rules)(nil), // 15: buf.validate.SInt64Rules + (*Fixed32Rules)(nil), // 16: buf.validate.Fixed32Rules + (*Fixed64Rules)(nil), // 17: buf.validate.Fixed64Rules + (*SFixed32Rules)(nil), // 18: buf.validate.SFixed32Rules + (*SFixed64Rules)(nil), // 19: buf.validate.SFixed64Rules + (*BoolRules)(nil), // 20: buf.validate.BoolRules + (*StringRules)(nil), // 21: buf.validate.StringRules + (*BytesRules)(nil), // 22: buf.validate.BytesRules + (*EnumRules)(nil), // 23: buf.validate.EnumRules + (*RepeatedRules)(nil), // 24: buf.validate.RepeatedRules + (*MapRules)(nil), // 25: buf.validate.MapRules + (*AnyRules)(nil), // 26: buf.validate.AnyRules + (*DurationRules)(nil), // 27: buf.validate.DurationRules + (*TimestampRules)(nil), // 28: buf.validate.TimestampRules + (*Violations)(nil), // 29: buf.validate.Violations + (*Violation)(nil), // 30: buf.validate.Violation + (*FieldPath)(nil), // 31: buf.validate.FieldPath + (*FieldPathElement)(nil), // 32: buf.validate.FieldPathElement + (*durationpb.Duration)(nil), // 33: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp + (descriptorpb.FieldDescriptorProto_Type)(0), // 35: google.protobuf.FieldDescriptorProto.Type + (*descriptorpb.MessageOptions)(nil), // 36: google.protobuf.MessageOptions + (*descriptorpb.OneofOptions)(nil), // 37: google.protobuf.OneofOptions + (*descriptorpb.FieldOptions)(nil), // 38: google.protobuf.FieldOptions +} +var file_buf_validate_validate_proto_depIdxs = []int32{ + 2, // 0: buf.validate.MessageRules.cel:type_name -> buf.validate.Rule + 4, // 1: buf.validate.MessageRules.oneof:type_name -> buf.validate.MessageOneofRule + 2, // 2: buf.validate.FieldRules.cel:type_name -> buf.validate.Rule + 0, // 3: buf.validate.FieldRules.ignore:type_name -> buf.validate.Ignore + 8, // 4: buf.validate.FieldRules.float:type_name -> buf.validate.FloatRules + 9, // 5: buf.validate.FieldRules.double:type_name -> buf.validate.DoubleRules + 10, // 6: buf.validate.FieldRules.int32:type_name -> buf.validate.Int32Rules + 11, // 7: buf.validate.FieldRules.int64:type_name -> buf.validate.Int64Rules + 12, // 8: buf.validate.FieldRules.uint32:type_name -> buf.validate.UInt32Rules + 13, // 9: buf.validate.FieldRules.uint64:type_name -> buf.validate.UInt64Rules + 14, // 10: buf.validate.FieldRules.sint32:type_name -> buf.validate.SInt32Rules + 15, // 11: buf.validate.FieldRules.sint64:type_name -> buf.validate.SInt64Rules + 16, // 12: buf.validate.FieldRules.fixed32:type_name -> buf.validate.Fixed32Rules + 17, // 13: buf.validate.FieldRules.fixed64:type_name -> buf.validate.Fixed64Rules + 18, // 14: buf.validate.FieldRules.sfixed32:type_name -> buf.validate.SFixed32Rules + 19, // 15: buf.validate.FieldRules.sfixed64:type_name -> buf.validate.SFixed64Rules + 20, // 16: buf.validate.FieldRules.bool:type_name -> buf.validate.BoolRules + 21, // 17: buf.validate.FieldRules.string:type_name -> buf.validate.StringRules + 22, // 18: buf.validate.FieldRules.bytes:type_name -> buf.validate.BytesRules + 23, // 19: buf.validate.FieldRules.enum:type_name -> buf.validate.EnumRules + 24, // 20: buf.validate.FieldRules.repeated:type_name -> buf.validate.RepeatedRules + 25, // 21: buf.validate.FieldRules.map:type_name -> buf.validate.MapRules + 26, // 22: buf.validate.FieldRules.any:type_name -> buf.validate.AnyRules + 27, // 23: buf.validate.FieldRules.duration:type_name -> buf.validate.DurationRules + 28, // 24: buf.validate.FieldRules.timestamp:type_name -> buf.validate.TimestampRules + 2, // 25: buf.validate.PredefinedRules.cel:type_name -> buf.validate.Rule + 1, // 26: buf.validate.StringRules.well_known_regex:type_name -> buf.validate.KnownRegex + 6, // 27: buf.validate.RepeatedRules.items:type_name -> buf.validate.FieldRules + 6, // 28: buf.validate.MapRules.keys:type_name -> buf.validate.FieldRules + 6, // 29: buf.validate.MapRules.values:type_name -> buf.validate.FieldRules + 33, // 30: buf.validate.DurationRules.const:type_name -> google.protobuf.Duration + 33, // 31: buf.validate.DurationRules.lt:type_name -> google.protobuf.Duration + 33, // 32: buf.validate.DurationRules.lte:type_name -> google.protobuf.Duration + 33, // 33: buf.validate.DurationRules.gt:type_name -> google.protobuf.Duration + 33, // 34: buf.validate.DurationRules.gte:type_name -> google.protobuf.Duration + 33, // 35: buf.validate.DurationRules.in:type_name -> google.protobuf.Duration + 33, // 36: buf.validate.DurationRules.not_in:type_name -> google.protobuf.Duration + 33, // 37: buf.validate.DurationRules.example:type_name -> google.protobuf.Duration + 34, // 38: buf.validate.TimestampRules.const:type_name -> google.protobuf.Timestamp + 34, // 39: buf.validate.TimestampRules.lt:type_name -> google.protobuf.Timestamp + 34, // 40: buf.validate.TimestampRules.lte:type_name -> google.protobuf.Timestamp + 34, // 41: buf.validate.TimestampRules.gt:type_name -> google.protobuf.Timestamp + 34, // 42: buf.validate.TimestampRules.gte:type_name -> google.protobuf.Timestamp + 33, // 43: buf.validate.TimestampRules.within:type_name -> google.protobuf.Duration + 34, // 44: buf.validate.TimestampRules.example:type_name -> google.protobuf.Timestamp + 30, // 45: buf.validate.Violations.violations:type_name -> buf.validate.Violation + 31, // 46: buf.validate.Violation.field:type_name -> buf.validate.FieldPath + 31, // 47: buf.validate.Violation.rule:type_name -> buf.validate.FieldPath + 32, // 48: buf.validate.FieldPath.elements:type_name -> buf.validate.FieldPathElement + 35, // 49: buf.validate.FieldPathElement.field_type:type_name -> google.protobuf.FieldDescriptorProto.Type + 35, // 50: buf.validate.FieldPathElement.key_type:type_name -> google.protobuf.FieldDescriptorProto.Type + 35, // 51: buf.validate.FieldPathElement.value_type:type_name -> google.protobuf.FieldDescriptorProto.Type + 36, // 52: buf.validate.message:extendee -> google.protobuf.MessageOptions + 37, // 53: buf.validate.oneof:extendee -> google.protobuf.OneofOptions + 38, // 54: buf.validate.field:extendee -> google.protobuf.FieldOptions + 38, // 55: buf.validate.predefined:extendee -> google.protobuf.FieldOptions + 3, // 56: buf.validate.message:type_name -> buf.validate.MessageRules + 5, // 57: buf.validate.oneof:type_name -> buf.validate.OneofRules + 6, // 58: buf.validate.field:type_name -> buf.validate.FieldRules + 7, // 59: buf.validate.predefined:type_name -> buf.validate.PredefinedRules + 60, // [60:60] is the sub-list for method output_type + 60, // [60:60] is the sub-list for method input_type + 56, // [56:60] is the sub-list for extension type_name + 52, // [52:56] is the sub-list for extension extendee + 0, // [0:52] is the sub-list for field type_name +} + +func init() { file_buf_validate_validate_proto_init() } +func file_buf_validate_validate_proto_init() { + if File_buf_validate_validate_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_buf_validate_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Rule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageOneofRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OneofRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PredefinedRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DoubleRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoolRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BytesRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepeatedRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MapRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnyRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DurationRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimestampRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Violations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Violation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldPath); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_validate_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldPathElement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_buf_validate_validate_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*FieldRules_Float)(nil), + (*FieldRules_Double)(nil), + (*FieldRules_Int32)(nil), + (*FieldRules_Int64)(nil), + (*FieldRules_Uint32)(nil), + (*FieldRules_Uint64)(nil), + (*FieldRules_Sint32)(nil), + (*FieldRules_Sint64)(nil), + (*FieldRules_Fixed32)(nil), + (*FieldRules_Fixed64)(nil), + (*FieldRules_Sfixed32)(nil), + (*FieldRules_Sfixed64)(nil), + (*FieldRules_Bool)(nil), + (*FieldRules_String_)(nil), + (*FieldRules_Bytes)(nil), + (*FieldRules_Enum)(nil), + (*FieldRules_Repeated)(nil), + (*FieldRules_Map)(nil), + (*FieldRules_Any)(nil), + (*FieldRules_Duration)(nil), + (*FieldRules_Timestamp)(nil), + } + file_buf_validate_validate_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*FloatRules_Lt)(nil), + (*FloatRules_Lte)(nil), + (*FloatRules_Gt)(nil), + (*FloatRules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*DoubleRules_Lt)(nil), + (*DoubleRules_Lte)(nil), + (*DoubleRules_Gt)(nil), + (*DoubleRules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[8].OneofWrappers = []interface{}{ + (*Int32Rules_Lt)(nil), + (*Int32Rules_Lte)(nil), + (*Int32Rules_Gt)(nil), + (*Int32Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*Int64Rules_Lt)(nil), + (*Int64Rules_Lte)(nil), + (*Int64Rules_Gt)(nil), + (*Int64Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*UInt32Rules_Lt)(nil), + (*UInt32Rules_Lte)(nil), + (*UInt32Rules_Gt)(nil), + (*UInt32Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[11].OneofWrappers = []interface{}{ + (*UInt64Rules_Lt)(nil), + (*UInt64Rules_Lte)(nil), + (*UInt64Rules_Gt)(nil), + (*UInt64Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[12].OneofWrappers = []interface{}{ + (*SInt32Rules_Lt)(nil), + (*SInt32Rules_Lte)(nil), + (*SInt32Rules_Gt)(nil), + (*SInt32Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[13].OneofWrappers = []interface{}{ + (*SInt64Rules_Lt)(nil), + (*SInt64Rules_Lte)(nil), + (*SInt64Rules_Gt)(nil), + (*SInt64Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*Fixed32Rules_Lt)(nil), + (*Fixed32Rules_Lte)(nil), + (*Fixed32Rules_Gt)(nil), + (*Fixed32Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*Fixed64Rules_Lt)(nil), + (*Fixed64Rules_Lte)(nil), + (*Fixed64Rules_Gt)(nil), + (*Fixed64Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[16].OneofWrappers = []interface{}{ + (*SFixed32Rules_Lt)(nil), + (*SFixed32Rules_Lte)(nil), + (*SFixed32Rules_Gt)(nil), + (*SFixed32Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[17].OneofWrappers = []interface{}{ + (*SFixed64Rules_Lt)(nil), + (*SFixed64Rules_Lte)(nil), + (*SFixed64Rules_Gt)(nil), + (*SFixed64Rules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[19].OneofWrappers = []interface{}{ + (*StringRules_Email)(nil), + (*StringRules_Hostname)(nil), + (*StringRules_Ip)(nil), + (*StringRules_Ipv4)(nil), + (*StringRules_Ipv6)(nil), + (*StringRules_Uri)(nil), + (*StringRules_UriRef)(nil), + (*StringRules_Address)(nil), + (*StringRules_Uuid)(nil), + (*StringRules_Tuuid)(nil), + (*StringRules_IpWithPrefixlen)(nil), + (*StringRules_Ipv4WithPrefixlen)(nil), + (*StringRules_Ipv6WithPrefixlen)(nil), + (*StringRules_IpPrefix)(nil), + (*StringRules_Ipv4Prefix)(nil), + (*StringRules_Ipv6Prefix)(nil), + (*StringRules_HostAndPort)(nil), + (*StringRules_WellKnownRegex)(nil), + } + file_buf_validate_validate_proto_msgTypes[20].OneofWrappers = []interface{}{ + (*BytesRules_Ip)(nil), + (*BytesRules_Ipv4)(nil), + (*BytesRules_Ipv6)(nil), + } + file_buf_validate_validate_proto_msgTypes[25].OneofWrappers = []interface{}{ + (*DurationRules_Lt)(nil), + (*DurationRules_Lte)(nil), + (*DurationRules_Gt)(nil), + (*DurationRules_Gte)(nil), + } + file_buf_validate_validate_proto_msgTypes[26].OneofWrappers = []interface{}{ + (*TimestampRules_Lt)(nil), + (*TimestampRules_Lte)(nil), + (*TimestampRules_LtNow)(nil), + (*TimestampRules_Gt)(nil), + (*TimestampRules_Gte)(nil), + (*TimestampRules_GtNow)(nil), + } + file_buf_validate_validate_proto_msgTypes[30].OneofWrappers = []interface{}{ + (*FieldPathElement_Index)(nil), + (*FieldPathElement_BoolKey)(nil), + (*FieldPathElement_IntKey)(nil), + (*FieldPathElement_UintKey)(nil), + (*FieldPathElement_StringKey)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_buf_validate_validate_proto_rawDesc, + NumEnums: 2, + NumMessages: 31, + NumExtensions: 4, + NumServices: 0, + }, + GoTypes: file_buf_validate_validate_proto_goTypes, + DependencyIndexes: file_buf_validate_validate_proto_depIdxs, + EnumInfos: file_buf_validate_validate_proto_enumTypes, + MessageInfos: file_buf_validate_validate_proto_msgTypes, + ExtensionInfos: file_buf_validate_validate_proto_extTypes, + }.Build() + File_buf_validate_validate_proto = out.File + file_buf_validate_validate_proto_rawDesc = nil + file_buf_validate_validate_proto_goTypes = nil + file_buf_validate_validate_proto_depIdxs = nil +} diff --git a/go/gen/buf/validate/validate_vtproto.pb.go b/go/gen/buf/validate/validate_vtproto.pb.go new file mode 100644 index 000000000..8dee80f61 --- /dev/null +++ b/go/gen/buf/validate/validate_vtproto.pb.go @@ -0,0 +1,34559 @@ +// Code generated by protoc-gen-go-vtproto. DO NOT EDIT. +// protoc-gen-go-vtproto version: v0.6.0 +// source: buf/validate/validate.proto + +package validate + +import ( + binary "encoding/binary" + fmt "fmt" + protohelpers "github.com/planetscale/vtprotobuf/protohelpers" + durationpb1 "github.com/planetscale/vtprotobuf/types/known/durationpb" + timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" + proto "google.golang.org/protobuf/proto" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + io "io" + math "math" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +func (m *Rule) CloneVT() *Rule { + if m == nil { + return (*Rule)(nil) + } + r := new(Rule) + if rhs := m.Id; rhs != nil { + tmpVal := *rhs + r.Id = &tmpVal + } + if rhs := m.Message; rhs != nil { + tmpVal := *rhs + r.Message = &tmpVal + } + if rhs := m.Expression; rhs != nil { + tmpVal := *rhs + r.Expression = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Rule) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *MessageRules) CloneVT() *MessageRules { + if m == nil { + return (*MessageRules)(nil) + } + r := new(MessageRules) + if rhs := m.Cel; rhs != nil { + tmpContainer := make([]*Rule, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Cel = tmpContainer + } + if rhs := m.Oneof; rhs != nil { + tmpContainer := make([]*MessageOneofRule, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Oneof = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *MessageRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *MessageOneofRule) CloneVT() *MessageOneofRule { + if m == nil { + return (*MessageOneofRule)(nil) + } + r := new(MessageOneofRule) + if rhs := m.Fields; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.Fields = tmpContainer + } + if rhs := m.Required; rhs != nil { + tmpVal := *rhs + r.Required = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *MessageOneofRule) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *OneofRules) CloneVT() *OneofRules { + if m == nil { + return (*OneofRules)(nil) + } + r := new(OneofRules) + if rhs := m.Required; rhs != nil { + tmpVal := *rhs + r.Required = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *OneofRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FieldRules) CloneVT() *FieldRules { + if m == nil { + return (*FieldRules)(nil) + } + r := new(FieldRules) + if rhs := m.Cel; rhs != nil { + tmpContainer := make([]*Rule, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Cel = tmpContainer + } + if rhs := m.Required; rhs != nil { + tmpVal := *rhs + r.Required = &tmpVal + } + if rhs := m.Ignore; rhs != nil { + tmpVal := *rhs + r.Ignore = &tmpVal + } + if m.Type != nil { + r.Type = m.Type.(interface{ CloneVT() isFieldRules_Type }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FieldRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FieldRules_Float) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Float)(nil) + } + r := new(FieldRules_Float) + r.Float = m.Float.CloneVT() + return r +} + +func (m *FieldRules_Double) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Double)(nil) + } + r := new(FieldRules_Double) + r.Double = m.Double.CloneVT() + return r +} + +func (m *FieldRules_Int32) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Int32)(nil) + } + r := new(FieldRules_Int32) + r.Int32 = m.Int32.CloneVT() + return r +} + +func (m *FieldRules_Int64) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Int64)(nil) + } + r := new(FieldRules_Int64) + r.Int64 = m.Int64.CloneVT() + return r +} + +func (m *FieldRules_Uint32) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Uint32)(nil) + } + r := new(FieldRules_Uint32) + r.Uint32 = m.Uint32.CloneVT() + return r +} + +func (m *FieldRules_Uint64) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Uint64)(nil) + } + r := new(FieldRules_Uint64) + r.Uint64 = m.Uint64.CloneVT() + return r +} + +func (m *FieldRules_Sint32) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Sint32)(nil) + } + r := new(FieldRules_Sint32) + r.Sint32 = m.Sint32.CloneVT() + return r +} + +func (m *FieldRules_Sint64) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Sint64)(nil) + } + r := new(FieldRules_Sint64) + r.Sint64 = m.Sint64.CloneVT() + return r +} + +func (m *FieldRules_Fixed32) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Fixed32)(nil) + } + r := new(FieldRules_Fixed32) + r.Fixed32 = m.Fixed32.CloneVT() + return r +} + +func (m *FieldRules_Fixed64) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Fixed64)(nil) + } + r := new(FieldRules_Fixed64) + r.Fixed64 = m.Fixed64.CloneVT() + return r +} + +func (m *FieldRules_Sfixed32) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Sfixed32)(nil) + } + r := new(FieldRules_Sfixed32) + r.Sfixed32 = m.Sfixed32.CloneVT() + return r +} + +func (m *FieldRules_Sfixed64) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Sfixed64)(nil) + } + r := new(FieldRules_Sfixed64) + r.Sfixed64 = m.Sfixed64.CloneVT() + return r +} + +func (m *FieldRules_Bool) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Bool)(nil) + } + r := new(FieldRules_Bool) + r.Bool = m.Bool.CloneVT() + return r +} + +func (m *FieldRules_String_) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_String_)(nil) + } + r := new(FieldRules_String_) + r.String_ = m.String_.CloneVT() + return r +} + +func (m *FieldRules_Bytes) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Bytes)(nil) + } + r := new(FieldRules_Bytes) + r.Bytes = m.Bytes.CloneVT() + return r +} + +func (m *FieldRules_Enum) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Enum)(nil) + } + r := new(FieldRules_Enum) + r.Enum = m.Enum.CloneVT() + return r +} + +func (m *FieldRules_Repeated) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Repeated)(nil) + } + r := new(FieldRules_Repeated) + r.Repeated = m.Repeated.CloneVT() + return r +} + +func (m *FieldRules_Map) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Map)(nil) + } + r := new(FieldRules_Map) + r.Map = m.Map.CloneVT() + return r +} + +func (m *FieldRules_Any) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Any)(nil) + } + r := new(FieldRules_Any) + r.Any = m.Any.CloneVT() + return r +} + +func (m *FieldRules_Duration) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Duration)(nil) + } + r := new(FieldRules_Duration) + r.Duration = m.Duration.CloneVT() + return r +} + +func (m *FieldRules_Timestamp) CloneVT() isFieldRules_Type { + if m == nil { + return (*FieldRules_Timestamp)(nil) + } + r := new(FieldRules_Timestamp) + r.Timestamp = m.Timestamp.CloneVT() + return r +} + +func (m *PredefinedRules) CloneVT() *PredefinedRules { + if m == nil { + return (*PredefinedRules)(nil) + } + r := new(PredefinedRules) + if rhs := m.Cel; rhs != nil { + tmpContainer := make([]*Rule, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Cel = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *PredefinedRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FloatRules) CloneVT() *FloatRules { + if m == nil { + return (*FloatRules)(nil) + } + r := new(FloatRules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isFloatRules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isFloatRules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]float32, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]float32, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Finite; rhs != nil { + tmpVal := *rhs + r.Finite = &tmpVal + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]float32, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FloatRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FloatRules_Lt) CloneVT() isFloatRules_LessThan { + if m == nil { + return (*FloatRules_Lt)(nil) + } + r := new(FloatRules_Lt) + r.Lt = m.Lt + return r +} + +func (m *FloatRules_Lte) CloneVT() isFloatRules_LessThan { + if m == nil { + return (*FloatRules_Lte)(nil) + } + r := new(FloatRules_Lte) + r.Lte = m.Lte + return r +} + +func (m *FloatRules_Gt) CloneVT() isFloatRules_GreaterThan { + if m == nil { + return (*FloatRules_Gt)(nil) + } + r := new(FloatRules_Gt) + r.Gt = m.Gt + return r +} + +func (m *FloatRules_Gte) CloneVT() isFloatRules_GreaterThan { + if m == nil { + return (*FloatRules_Gte)(nil) + } + r := new(FloatRules_Gte) + r.Gte = m.Gte + return r +} + +func (m *DoubleRules) CloneVT() *DoubleRules { + if m == nil { + return (*DoubleRules)(nil) + } + r := new(DoubleRules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isDoubleRules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isDoubleRules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]float64, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]float64, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Finite; rhs != nil { + tmpVal := *rhs + r.Finite = &tmpVal + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]float64, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *DoubleRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DoubleRules_Lt) CloneVT() isDoubleRules_LessThan { + if m == nil { + return (*DoubleRules_Lt)(nil) + } + r := new(DoubleRules_Lt) + r.Lt = m.Lt + return r +} + +func (m *DoubleRules_Lte) CloneVT() isDoubleRules_LessThan { + if m == nil { + return (*DoubleRules_Lte)(nil) + } + r := new(DoubleRules_Lte) + r.Lte = m.Lte + return r +} + +func (m *DoubleRules_Gt) CloneVT() isDoubleRules_GreaterThan { + if m == nil { + return (*DoubleRules_Gt)(nil) + } + r := new(DoubleRules_Gt) + r.Gt = m.Gt + return r +} + +func (m *DoubleRules_Gte) CloneVT() isDoubleRules_GreaterThan { + if m == nil { + return (*DoubleRules_Gte)(nil) + } + r := new(DoubleRules_Gte) + r.Gte = m.Gte + return r +} + +func (m *Int32Rules) CloneVT() *Int32Rules { + if m == nil { + return (*Int32Rules)(nil) + } + r := new(Int32Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isInt32Rules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isInt32Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Int32Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *Int32Rules_Lt) CloneVT() isInt32Rules_LessThan { + if m == nil { + return (*Int32Rules_Lt)(nil) + } + r := new(Int32Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *Int32Rules_Lte) CloneVT() isInt32Rules_LessThan { + if m == nil { + return (*Int32Rules_Lte)(nil) + } + r := new(Int32Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *Int32Rules_Gt) CloneVT() isInt32Rules_GreaterThan { + if m == nil { + return (*Int32Rules_Gt)(nil) + } + r := new(Int32Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *Int32Rules_Gte) CloneVT() isInt32Rules_GreaterThan { + if m == nil { + return (*Int32Rules_Gte)(nil) + } + r := new(Int32Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *Int64Rules) CloneVT() *Int64Rules { + if m == nil { + return (*Int64Rules)(nil) + } + r := new(Int64Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isInt64Rules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isInt64Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Int64Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *Int64Rules_Lt) CloneVT() isInt64Rules_LessThan { + if m == nil { + return (*Int64Rules_Lt)(nil) + } + r := new(Int64Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *Int64Rules_Lte) CloneVT() isInt64Rules_LessThan { + if m == nil { + return (*Int64Rules_Lte)(nil) + } + r := new(Int64Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *Int64Rules_Gt) CloneVT() isInt64Rules_GreaterThan { + if m == nil { + return (*Int64Rules_Gt)(nil) + } + r := new(Int64Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *Int64Rules_Gte) CloneVT() isInt64Rules_GreaterThan { + if m == nil { + return (*Int64Rules_Gte)(nil) + } + r := new(Int64Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *UInt32Rules) CloneVT() *UInt32Rules { + if m == nil { + return (*UInt32Rules)(nil) + } + r := new(UInt32Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isUInt32Rules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isUInt32Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]uint32, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]uint32, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]uint32, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UInt32Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UInt32Rules_Lt) CloneVT() isUInt32Rules_LessThan { + if m == nil { + return (*UInt32Rules_Lt)(nil) + } + r := new(UInt32Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *UInt32Rules_Lte) CloneVT() isUInt32Rules_LessThan { + if m == nil { + return (*UInt32Rules_Lte)(nil) + } + r := new(UInt32Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *UInt32Rules_Gt) CloneVT() isUInt32Rules_GreaterThan { + if m == nil { + return (*UInt32Rules_Gt)(nil) + } + r := new(UInt32Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *UInt32Rules_Gte) CloneVT() isUInt32Rules_GreaterThan { + if m == nil { + return (*UInt32Rules_Gte)(nil) + } + r := new(UInt32Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *UInt64Rules) CloneVT() *UInt64Rules { + if m == nil { + return (*UInt64Rules)(nil) + } + r := new(UInt64Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isUInt64Rules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isUInt64Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]uint64, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]uint64, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]uint64, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UInt64Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UInt64Rules_Lt) CloneVT() isUInt64Rules_LessThan { + if m == nil { + return (*UInt64Rules_Lt)(nil) + } + r := new(UInt64Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *UInt64Rules_Lte) CloneVT() isUInt64Rules_LessThan { + if m == nil { + return (*UInt64Rules_Lte)(nil) + } + r := new(UInt64Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *UInt64Rules_Gt) CloneVT() isUInt64Rules_GreaterThan { + if m == nil { + return (*UInt64Rules_Gt)(nil) + } + r := new(UInt64Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *UInt64Rules_Gte) CloneVT() isUInt64Rules_GreaterThan { + if m == nil { + return (*UInt64Rules_Gte)(nil) + } + r := new(UInt64Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *SInt32Rules) CloneVT() *SInt32Rules { + if m == nil { + return (*SInt32Rules)(nil) + } + r := new(SInt32Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isSInt32Rules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isSInt32Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SInt32Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SInt32Rules_Lt) CloneVT() isSInt32Rules_LessThan { + if m == nil { + return (*SInt32Rules_Lt)(nil) + } + r := new(SInt32Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *SInt32Rules_Lte) CloneVT() isSInt32Rules_LessThan { + if m == nil { + return (*SInt32Rules_Lte)(nil) + } + r := new(SInt32Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *SInt32Rules_Gt) CloneVT() isSInt32Rules_GreaterThan { + if m == nil { + return (*SInt32Rules_Gt)(nil) + } + r := new(SInt32Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *SInt32Rules_Gte) CloneVT() isSInt32Rules_GreaterThan { + if m == nil { + return (*SInt32Rules_Gte)(nil) + } + r := new(SInt32Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *SInt64Rules) CloneVT() *SInt64Rules { + if m == nil { + return (*SInt64Rules)(nil) + } + r := new(SInt64Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface{ CloneVT() isSInt64Rules_LessThan }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isSInt64Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SInt64Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SInt64Rules_Lt) CloneVT() isSInt64Rules_LessThan { + if m == nil { + return (*SInt64Rules_Lt)(nil) + } + r := new(SInt64Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *SInt64Rules_Lte) CloneVT() isSInt64Rules_LessThan { + if m == nil { + return (*SInt64Rules_Lte)(nil) + } + r := new(SInt64Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *SInt64Rules_Gt) CloneVT() isSInt64Rules_GreaterThan { + if m == nil { + return (*SInt64Rules_Gt)(nil) + } + r := new(SInt64Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *SInt64Rules_Gte) CloneVT() isSInt64Rules_GreaterThan { + if m == nil { + return (*SInt64Rules_Gte)(nil) + } + r := new(SInt64Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *Fixed32Rules) CloneVT() *Fixed32Rules { + if m == nil { + return (*Fixed32Rules)(nil) + } + r := new(Fixed32Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface { + CloneVT() isFixed32Rules_LessThan + }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isFixed32Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]uint32, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]uint32, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]uint32, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Fixed32Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *Fixed32Rules_Lt) CloneVT() isFixed32Rules_LessThan { + if m == nil { + return (*Fixed32Rules_Lt)(nil) + } + r := new(Fixed32Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *Fixed32Rules_Lte) CloneVT() isFixed32Rules_LessThan { + if m == nil { + return (*Fixed32Rules_Lte)(nil) + } + r := new(Fixed32Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *Fixed32Rules_Gt) CloneVT() isFixed32Rules_GreaterThan { + if m == nil { + return (*Fixed32Rules_Gt)(nil) + } + r := new(Fixed32Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *Fixed32Rules_Gte) CloneVT() isFixed32Rules_GreaterThan { + if m == nil { + return (*Fixed32Rules_Gte)(nil) + } + r := new(Fixed32Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *Fixed64Rules) CloneVT() *Fixed64Rules { + if m == nil { + return (*Fixed64Rules)(nil) + } + r := new(Fixed64Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface { + CloneVT() isFixed64Rules_LessThan + }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isFixed64Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]uint64, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]uint64, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]uint64, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Fixed64Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *Fixed64Rules_Lt) CloneVT() isFixed64Rules_LessThan { + if m == nil { + return (*Fixed64Rules_Lt)(nil) + } + r := new(Fixed64Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *Fixed64Rules_Lte) CloneVT() isFixed64Rules_LessThan { + if m == nil { + return (*Fixed64Rules_Lte)(nil) + } + r := new(Fixed64Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *Fixed64Rules_Gt) CloneVT() isFixed64Rules_GreaterThan { + if m == nil { + return (*Fixed64Rules_Gt)(nil) + } + r := new(Fixed64Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *Fixed64Rules_Gte) CloneVT() isFixed64Rules_GreaterThan { + if m == nil { + return (*Fixed64Rules_Gte)(nil) + } + r := new(Fixed64Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *SFixed32Rules) CloneVT() *SFixed32Rules { + if m == nil { + return (*SFixed32Rules)(nil) + } + r := new(SFixed32Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface { + CloneVT() isSFixed32Rules_LessThan + }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isSFixed32Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SFixed32Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SFixed32Rules_Lt) CloneVT() isSFixed32Rules_LessThan { + if m == nil { + return (*SFixed32Rules_Lt)(nil) + } + r := new(SFixed32Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *SFixed32Rules_Lte) CloneVT() isSFixed32Rules_LessThan { + if m == nil { + return (*SFixed32Rules_Lte)(nil) + } + r := new(SFixed32Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *SFixed32Rules_Gt) CloneVT() isSFixed32Rules_GreaterThan { + if m == nil { + return (*SFixed32Rules_Gt)(nil) + } + r := new(SFixed32Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *SFixed32Rules_Gte) CloneVT() isSFixed32Rules_GreaterThan { + if m == nil { + return (*SFixed32Rules_Gte)(nil) + } + r := new(SFixed32Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *SFixed64Rules) CloneVT() *SFixed64Rules { + if m == nil { + return (*SFixed64Rules)(nil) + } + r := new(SFixed64Rules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface { + CloneVT() isSFixed64Rules_LessThan + }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isSFixed64Rules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]int64, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SFixed64Rules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SFixed64Rules_Lt) CloneVT() isSFixed64Rules_LessThan { + if m == nil { + return (*SFixed64Rules_Lt)(nil) + } + r := new(SFixed64Rules_Lt) + r.Lt = m.Lt + return r +} + +func (m *SFixed64Rules_Lte) CloneVT() isSFixed64Rules_LessThan { + if m == nil { + return (*SFixed64Rules_Lte)(nil) + } + r := new(SFixed64Rules_Lte) + r.Lte = m.Lte + return r +} + +func (m *SFixed64Rules_Gt) CloneVT() isSFixed64Rules_GreaterThan { + if m == nil { + return (*SFixed64Rules_Gt)(nil) + } + r := new(SFixed64Rules_Gt) + r.Gt = m.Gt + return r +} + +func (m *SFixed64Rules_Gte) CloneVT() isSFixed64Rules_GreaterThan { + if m == nil { + return (*SFixed64Rules_Gte)(nil) + } + r := new(SFixed64Rules_Gte) + r.Gte = m.Gte + return r +} + +func (m *BoolRules) CloneVT() *BoolRules { + if m == nil { + return (*BoolRules)(nil) + } + r := new(BoolRules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]bool, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BoolRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *StringRules) CloneVT() *StringRules { + if m == nil { + return (*StringRules)(nil) + } + r := new(StringRules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if rhs := m.Len; rhs != nil { + tmpVal := *rhs + r.Len = &tmpVal + } + if rhs := m.MinLen; rhs != nil { + tmpVal := *rhs + r.MinLen = &tmpVal + } + if rhs := m.MaxLen; rhs != nil { + tmpVal := *rhs + r.MaxLen = &tmpVal + } + if rhs := m.LenBytes; rhs != nil { + tmpVal := *rhs + r.LenBytes = &tmpVal + } + if rhs := m.MinBytes; rhs != nil { + tmpVal := *rhs + r.MinBytes = &tmpVal + } + if rhs := m.MaxBytes; rhs != nil { + tmpVal := *rhs + r.MaxBytes = &tmpVal + } + if rhs := m.Pattern; rhs != nil { + tmpVal := *rhs + r.Pattern = &tmpVal + } + if rhs := m.Prefix; rhs != nil { + tmpVal := *rhs + r.Prefix = &tmpVal + } + if rhs := m.Suffix; rhs != nil { + tmpVal := *rhs + r.Suffix = &tmpVal + } + if rhs := m.Contains; rhs != nil { + tmpVal := *rhs + r.Contains = &tmpVal + } + if rhs := m.NotContains; rhs != nil { + tmpVal := *rhs + r.NotContains = &tmpVal + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if m.WellKnown != nil { + r.WellKnown = m.WellKnown.(interface { + CloneVT() isStringRules_WellKnown + }).CloneVT() + } + if rhs := m.Strict; rhs != nil { + tmpVal := *rhs + r.Strict = &tmpVal + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *StringRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *StringRules_Email) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Email)(nil) + } + r := new(StringRules_Email) + r.Email = m.Email + return r +} + +func (m *StringRules_Hostname) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Hostname)(nil) + } + r := new(StringRules_Hostname) + r.Hostname = m.Hostname + return r +} + +func (m *StringRules_Ip) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Ip)(nil) + } + r := new(StringRules_Ip) + r.Ip = m.Ip + return r +} + +func (m *StringRules_Ipv4) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Ipv4)(nil) + } + r := new(StringRules_Ipv4) + r.Ipv4 = m.Ipv4 + return r +} + +func (m *StringRules_Ipv6) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Ipv6)(nil) + } + r := new(StringRules_Ipv6) + r.Ipv6 = m.Ipv6 + return r +} + +func (m *StringRules_Uri) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Uri)(nil) + } + r := new(StringRules_Uri) + r.Uri = m.Uri + return r +} + +func (m *StringRules_UriRef) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_UriRef)(nil) + } + r := new(StringRules_UriRef) + r.UriRef = m.UriRef + return r +} + +func (m *StringRules_Address) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Address)(nil) + } + r := new(StringRules_Address) + r.Address = m.Address + return r +} + +func (m *StringRules_Uuid) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Uuid)(nil) + } + r := new(StringRules_Uuid) + r.Uuid = m.Uuid + return r +} + +func (m *StringRules_Tuuid) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Tuuid)(nil) + } + r := new(StringRules_Tuuid) + r.Tuuid = m.Tuuid + return r +} + +func (m *StringRules_IpWithPrefixlen) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_IpWithPrefixlen)(nil) + } + r := new(StringRules_IpWithPrefixlen) + r.IpWithPrefixlen = m.IpWithPrefixlen + return r +} + +func (m *StringRules_Ipv4WithPrefixlen) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Ipv4WithPrefixlen)(nil) + } + r := new(StringRules_Ipv4WithPrefixlen) + r.Ipv4WithPrefixlen = m.Ipv4WithPrefixlen + return r +} + +func (m *StringRules_Ipv6WithPrefixlen) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Ipv6WithPrefixlen)(nil) + } + r := new(StringRules_Ipv6WithPrefixlen) + r.Ipv6WithPrefixlen = m.Ipv6WithPrefixlen + return r +} + +func (m *StringRules_IpPrefix) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_IpPrefix)(nil) + } + r := new(StringRules_IpPrefix) + r.IpPrefix = m.IpPrefix + return r +} + +func (m *StringRules_Ipv4Prefix) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Ipv4Prefix)(nil) + } + r := new(StringRules_Ipv4Prefix) + r.Ipv4Prefix = m.Ipv4Prefix + return r +} + +func (m *StringRules_Ipv6Prefix) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_Ipv6Prefix)(nil) + } + r := new(StringRules_Ipv6Prefix) + r.Ipv6Prefix = m.Ipv6Prefix + return r +} + +func (m *StringRules_HostAndPort) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_HostAndPort)(nil) + } + r := new(StringRules_HostAndPort) + r.HostAndPort = m.HostAndPort + return r +} + +func (m *StringRules_WellKnownRegex) CloneVT() isStringRules_WellKnown { + if m == nil { + return (*StringRules_WellKnownRegex)(nil) + } + r := new(StringRules_WellKnownRegex) + r.WellKnownRegex = m.WellKnownRegex + return r +} + +func (m *BytesRules) CloneVT() *BytesRules { + if m == nil { + return (*BytesRules)(nil) + } + r := new(BytesRules) + if rhs := m.Const; rhs != nil { + tmpBytes := make([]byte, len(rhs)) + copy(tmpBytes, rhs) + r.Const = tmpBytes + } + if rhs := m.Len; rhs != nil { + tmpVal := *rhs + r.Len = &tmpVal + } + if rhs := m.MinLen; rhs != nil { + tmpVal := *rhs + r.MinLen = &tmpVal + } + if rhs := m.MaxLen; rhs != nil { + tmpVal := *rhs + r.MaxLen = &tmpVal + } + if rhs := m.Pattern; rhs != nil { + tmpVal := *rhs + r.Pattern = &tmpVal + } + if rhs := m.Prefix; rhs != nil { + tmpBytes := make([]byte, len(rhs)) + copy(tmpBytes, rhs) + r.Prefix = tmpBytes + } + if rhs := m.Suffix; rhs != nil { + tmpBytes := make([]byte, len(rhs)) + copy(tmpBytes, rhs) + r.Suffix = tmpBytes + } + if rhs := m.Contains; rhs != nil { + tmpBytes := make([]byte, len(rhs)) + copy(tmpBytes, rhs) + r.Contains = tmpBytes + } + if rhs := m.In; rhs != nil { + tmpContainer := make([][]byte, len(rhs)) + for k, v := range rhs { + tmpBytes := make([]byte, len(v)) + copy(tmpBytes, v) + tmpContainer[k] = tmpBytes + } + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([][]byte, len(rhs)) + for k, v := range rhs { + tmpBytes := make([]byte, len(v)) + copy(tmpBytes, v) + tmpContainer[k] = tmpBytes + } + r.NotIn = tmpContainer + } + if m.WellKnown != nil { + r.WellKnown = m.WellKnown.(interface{ CloneVT() isBytesRules_WellKnown }).CloneVT() + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([][]byte, len(rhs)) + for k, v := range rhs { + tmpBytes := make([]byte, len(v)) + copy(tmpBytes, v) + tmpContainer[k] = tmpBytes + } + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BytesRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BytesRules_Ip) CloneVT() isBytesRules_WellKnown { + if m == nil { + return (*BytesRules_Ip)(nil) + } + r := new(BytesRules_Ip) + r.Ip = m.Ip + return r +} + +func (m *BytesRules_Ipv4) CloneVT() isBytesRules_WellKnown { + if m == nil { + return (*BytesRules_Ipv4)(nil) + } + r := new(BytesRules_Ipv4) + r.Ipv4 = m.Ipv4 + return r +} + +func (m *BytesRules_Ipv6) CloneVT() isBytesRules_WellKnown { + if m == nil { + return (*BytesRules_Ipv6)(nil) + } + r := new(BytesRules_Ipv6) + r.Ipv6 = m.Ipv6 + return r +} + +func (m *EnumRules) CloneVT() *EnumRules { + if m == nil { + return (*EnumRules)(nil) + } + r := new(EnumRules) + if rhs := m.Const; rhs != nil { + tmpVal := *rhs + r.Const = &tmpVal + } + if rhs := m.DefinedOnly; rhs != nil { + tmpVal := *rhs + r.DefinedOnly = &tmpVal + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]int32, len(rhs)) + copy(tmpContainer, rhs) + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *EnumRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *RepeatedRules) CloneVT() *RepeatedRules { + if m == nil { + return (*RepeatedRules)(nil) + } + r := new(RepeatedRules) + r.Items = m.Items.CloneVT() + if rhs := m.MinItems; rhs != nil { + tmpVal := *rhs + r.MinItems = &tmpVal + } + if rhs := m.MaxItems; rhs != nil { + tmpVal := *rhs + r.MaxItems = &tmpVal + } + if rhs := m.Unique; rhs != nil { + tmpVal := *rhs + r.Unique = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RepeatedRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *MapRules) CloneVT() *MapRules { + if m == nil { + return (*MapRules)(nil) + } + r := new(MapRules) + r.Keys = m.Keys.CloneVT() + r.Values = m.Values.CloneVT() + if rhs := m.MinPairs; rhs != nil { + tmpVal := *rhs + r.MinPairs = &tmpVal + } + if rhs := m.MaxPairs; rhs != nil { + tmpVal := *rhs + r.MaxPairs = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *MapRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *AnyRules) CloneVT() *AnyRules { + if m == nil { + return (*AnyRules)(nil) + } + r := new(AnyRules) + if rhs := m.In; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.NotIn = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *AnyRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DurationRules) CloneVT() *DurationRules { + if m == nil { + return (*DurationRules)(nil) + } + r := new(DurationRules) + r.Const = (*durationpb.Duration)((*durationpb1.Duration)(m.Const).CloneVT()) + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface { + CloneVT() isDurationRules_LessThan + }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isDurationRules_GreaterThan + }).CloneVT() + } + if rhs := m.In; rhs != nil { + tmpContainer := make([]*durationpb.Duration, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = (*durationpb.Duration)((*durationpb1.Duration)(v).CloneVT()) + } + r.In = tmpContainer + } + if rhs := m.NotIn; rhs != nil { + tmpContainer := make([]*durationpb.Duration, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = (*durationpb.Duration)((*durationpb1.Duration)(v).CloneVT()) + } + r.NotIn = tmpContainer + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]*durationpb.Duration, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = (*durationpb.Duration)((*durationpb1.Duration)(v).CloneVT()) + } + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *DurationRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DurationRules_Lt) CloneVT() isDurationRules_LessThan { + if m == nil { + return (*DurationRules_Lt)(nil) + } + r := new(DurationRules_Lt) + r.Lt = (*durationpb.Duration)((*durationpb1.Duration)(m.Lt).CloneVT()) + return r +} + +func (m *DurationRules_Lte) CloneVT() isDurationRules_LessThan { + if m == nil { + return (*DurationRules_Lte)(nil) + } + r := new(DurationRules_Lte) + r.Lte = (*durationpb.Duration)((*durationpb1.Duration)(m.Lte).CloneVT()) + return r +} + +func (m *DurationRules_Gt) CloneVT() isDurationRules_GreaterThan { + if m == nil { + return (*DurationRules_Gt)(nil) + } + r := new(DurationRules_Gt) + r.Gt = (*durationpb.Duration)((*durationpb1.Duration)(m.Gt).CloneVT()) + return r +} + +func (m *DurationRules_Gte) CloneVT() isDurationRules_GreaterThan { + if m == nil { + return (*DurationRules_Gte)(nil) + } + r := new(DurationRules_Gte) + r.Gte = (*durationpb.Duration)((*durationpb1.Duration)(m.Gte).CloneVT()) + return r +} + +func (m *TimestampRules) CloneVT() *TimestampRules { + if m == nil { + return (*TimestampRules)(nil) + } + r := new(TimestampRules) + r.Const = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.Const).CloneVT()) + r.Within = (*durationpb.Duration)((*durationpb1.Duration)(m.Within).CloneVT()) + if m.LessThan != nil { + r.LessThan = m.LessThan.(interface { + CloneVT() isTimestampRules_LessThan + }).CloneVT() + } + if m.GreaterThan != nil { + r.GreaterThan = m.GreaterThan.(interface { + CloneVT() isTimestampRules_GreaterThan + }).CloneVT() + } + if rhs := m.Example; rhs != nil { + tmpContainer := make([]*timestamppb.Timestamp, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(v).CloneVT()) + } + r.Example = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *TimestampRules) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *TimestampRules_Lt) CloneVT() isTimestampRules_LessThan { + if m == nil { + return (*TimestampRules_Lt)(nil) + } + r := new(TimestampRules_Lt) + r.Lt = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.Lt).CloneVT()) + return r +} + +func (m *TimestampRules_Lte) CloneVT() isTimestampRules_LessThan { + if m == nil { + return (*TimestampRules_Lte)(nil) + } + r := new(TimestampRules_Lte) + r.Lte = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.Lte).CloneVT()) + return r +} + +func (m *TimestampRules_LtNow) CloneVT() isTimestampRules_LessThan { + if m == nil { + return (*TimestampRules_LtNow)(nil) + } + r := new(TimestampRules_LtNow) + r.LtNow = m.LtNow + return r +} + +func (m *TimestampRules_Gt) CloneVT() isTimestampRules_GreaterThan { + if m == nil { + return (*TimestampRules_Gt)(nil) + } + r := new(TimestampRules_Gt) + r.Gt = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.Gt).CloneVT()) + return r +} + +func (m *TimestampRules_Gte) CloneVT() isTimestampRules_GreaterThan { + if m == nil { + return (*TimestampRules_Gte)(nil) + } + r := new(TimestampRules_Gte) + r.Gte = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.Gte).CloneVT()) + return r +} + +func (m *TimestampRules_GtNow) CloneVT() isTimestampRules_GreaterThan { + if m == nil { + return (*TimestampRules_GtNow)(nil) + } + r := new(TimestampRules_GtNow) + r.GtNow = m.GtNow + return r +} + +func (m *Violations) CloneVT() *Violations { + if m == nil { + return (*Violations)(nil) + } + r := new(Violations) + if rhs := m.Violations; rhs != nil { + tmpContainer := make([]*Violation, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Violations = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Violations) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *Violation) CloneVT() *Violation { + if m == nil { + return (*Violation)(nil) + } + r := new(Violation) + r.Field = m.Field.CloneVT() + r.Rule = m.Rule.CloneVT() + if rhs := m.RuleId; rhs != nil { + tmpVal := *rhs + r.RuleId = &tmpVal + } + if rhs := m.Message; rhs != nil { + tmpVal := *rhs + r.Message = &tmpVal + } + if rhs := m.ForKey; rhs != nil { + tmpVal := *rhs + r.ForKey = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Violation) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FieldPath) CloneVT() *FieldPath { + if m == nil { + return (*FieldPath)(nil) + } + r := new(FieldPath) + if rhs := m.Elements; rhs != nil { + tmpContainer := make([]*FieldPathElement, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Elements = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FieldPath) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FieldPathElement) CloneVT() *FieldPathElement { + if m == nil { + return (*FieldPathElement)(nil) + } + r := new(FieldPathElement) + if rhs := m.FieldNumber; rhs != nil { + tmpVal := *rhs + r.FieldNumber = &tmpVal + } + if rhs := m.FieldName; rhs != nil { + tmpVal := *rhs + r.FieldName = &tmpVal + } + if rhs := m.FieldType; rhs != nil { + tmpVal := *rhs + r.FieldType = &tmpVal + } + if rhs := m.KeyType; rhs != nil { + tmpVal := *rhs + r.KeyType = &tmpVal + } + if rhs := m.ValueType; rhs != nil { + tmpVal := *rhs + r.ValueType = &tmpVal + } + if m.Subscript != nil { + r.Subscript = m.Subscript.(interface { + CloneVT() isFieldPathElement_Subscript + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FieldPathElement) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FieldPathElement_Index) CloneVT() isFieldPathElement_Subscript { + if m == nil { + return (*FieldPathElement_Index)(nil) + } + r := new(FieldPathElement_Index) + r.Index = m.Index + return r +} + +func (m *FieldPathElement_BoolKey) CloneVT() isFieldPathElement_Subscript { + if m == nil { + return (*FieldPathElement_BoolKey)(nil) + } + r := new(FieldPathElement_BoolKey) + r.BoolKey = m.BoolKey + return r +} + +func (m *FieldPathElement_IntKey) CloneVT() isFieldPathElement_Subscript { + if m == nil { + return (*FieldPathElement_IntKey)(nil) + } + r := new(FieldPathElement_IntKey) + r.IntKey = m.IntKey + return r +} + +func (m *FieldPathElement_UintKey) CloneVT() isFieldPathElement_Subscript { + if m == nil { + return (*FieldPathElement_UintKey)(nil) + } + r := new(FieldPathElement_UintKey) + r.UintKey = m.UintKey + return r +} + +func (m *FieldPathElement_StringKey) CloneVT() isFieldPathElement_Subscript { + if m == nil { + return (*FieldPathElement_StringKey)(nil) + } + r := new(FieldPathElement_StringKey) + r.StringKey = m.StringKey + return r +} + +func (this *Rule) EqualVT(that *Rule) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if p, q := this.Id, that.Id; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Message, that.Message; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Expression, that.Expression; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Rule) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Rule) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *MessageRules) EqualVT(that *MessageRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Cel) != len(that.Cel) { + return false + } + for i, vx := range this.Cel { + vy := that.Cel[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Rule{} + } + if q == nil { + q = &Rule{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.Oneof) != len(that.Oneof) { + return false + } + for i, vx := range this.Oneof { + vy := that.Oneof[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &MessageOneofRule{} + } + if q == nil { + q = &MessageOneofRule{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *MessageRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*MessageRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *MessageOneofRule) EqualVT(that *MessageOneofRule) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Fields) != len(that.Fields) { + return false + } + for i, vx := range this.Fields { + vy := that.Fields[i] + if vx != vy { + return false + } + } + if p, q := this.Required, that.Required; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *MessageOneofRule) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*MessageOneofRule) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *OneofRules) EqualVT(that *OneofRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if p, q := this.Required, that.Required; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *OneofRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*OneofRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FieldRules) EqualVT(that *FieldRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Type == nil && that.Type != nil { + return false + } else if this.Type != nil { + if that.Type == nil { + return false + } + if !this.Type.(interface{ EqualVT(isFieldRules_Type) bool }).EqualVT(that.Type) { + return false + } + } + if len(this.Cel) != len(that.Cel) { + return false + } + for i, vx := range this.Cel { + vy := that.Cel[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Rule{} + } + if q == nil { + q = &Rule{} + } + if !p.EqualVT(q) { + return false + } + } + } + if p, q := this.Required, that.Required; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Ignore, that.Ignore; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FieldRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FieldRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FieldRules_Float) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Float) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Float, that.Float; p != q { + if p == nil { + p = &FloatRules{} + } + if q == nil { + q = &FloatRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Double) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Double) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Double, that.Double; p != q { + if p == nil { + p = &DoubleRules{} + } + if q == nil { + q = &DoubleRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Int32) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Int32) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Int32, that.Int32; p != q { + if p == nil { + p = &Int32Rules{} + } + if q == nil { + q = &Int32Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Int64) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Int64) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Int64, that.Int64; p != q { + if p == nil { + p = &Int64Rules{} + } + if q == nil { + q = &Int64Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Uint32) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Uint32) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Uint32, that.Uint32; p != q { + if p == nil { + p = &UInt32Rules{} + } + if q == nil { + q = &UInt32Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Uint64) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Uint64) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Uint64, that.Uint64; p != q { + if p == nil { + p = &UInt64Rules{} + } + if q == nil { + q = &UInt64Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Sint32) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Sint32) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Sint32, that.Sint32; p != q { + if p == nil { + p = &SInt32Rules{} + } + if q == nil { + q = &SInt32Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Sint64) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Sint64) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Sint64, that.Sint64; p != q { + if p == nil { + p = &SInt64Rules{} + } + if q == nil { + q = &SInt64Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Fixed32) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Fixed32) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Fixed32, that.Fixed32; p != q { + if p == nil { + p = &Fixed32Rules{} + } + if q == nil { + q = &Fixed32Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Fixed64) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Fixed64) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Fixed64, that.Fixed64; p != q { + if p == nil { + p = &Fixed64Rules{} + } + if q == nil { + q = &Fixed64Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Sfixed32) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Sfixed32) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Sfixed32, that.Sfixed32; p != q { + if p == nil { + p = &SFixed32Rules{} + } + if q == nil { + q = &SFixed32Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Sfixed64) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Sfixed64) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Sfixed64, that.Sfixed64; p != q { + if p == nil { + p = &SFixed64Rules{} + } + if q == nil { + q = &SFixed64Rules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Bool) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Bool) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Bool, that.Bool; p != q { + if p == nil { + p = &BoolRules{} + } + if q == nil { + q = &BoolRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_String_) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_String_) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.String_, that.String_; p != q { + if p == nil { + p = &StringRules{} + } + if q == nil { + q = &StringRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Bytes) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Bytes) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Bytes, that.Bytes; p != q { + if p == nil { + p = &BytesRules{} + } + if q == nil { + q = &BytesRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Enum) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Enum) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Enum, that.Enum; p != q { + if p == nil { + p = &EnumRules{} + } + if q == nil { + q = &EnumRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Repeated) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Repeated) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Repeated, that.Repeated; p != q { + if p == nil { + p = &RepeatedRules{} + } + if q == nil { + q = &RepeatedRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Map) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Map) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Map, that.Map; p != q { + if p == nil { + p = &MapRules{} + } + if q == nil { + q = &MapRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Any) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Any) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Any, that.Any; p != q { + if p == nil { + p = &AnyRules{} + } + if q == nil { + q = &AnyRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Duration) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Duration) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Duration, that.Duration; p != q { + if p == nil { + p = &DurationRules{} + } + if q == nil { + q = &DurationRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FieldRules_Timestamp) EqualVT(thatIface isFieldRules_Type) bool { + that, ok := thatIface.(*FieldRules_Timestamp) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Timestamp, that.Timestamp; p != q { + if p == nil { + p = &TimestampRules{} + } + if q == nil { + q = &TimestampRules{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *PredefinedRules) EqualVT(that *PredefinedRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Cel) != len(that.Cel) { + return false + } + for i, vx := range this.Cel { + vy := that.Cel[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Rule{} + } + if q == nil { + q = &Rule{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *PredefinedRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*PredefinedRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FloatRules) EqualVT(that *FloatRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isFloatRules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isFloatRules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if p, q := this.Finite, that.Finite; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FloatRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FloatRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FloatRules_Lt) EqualVT(thatIface isFloatRules_LessThan) bool { + that, ok := thatIface.(*FloatRules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *FloatRules_Lte) EqualVT(thatIface isFloatRules_LessThan) bool { + that, ok := thatIface.(*FloatRules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *FloatRules_Gt) EqualVT(thatIface isFloatRules_GreaterThan) bool { + that, ok := thatIface.(*FloatRules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *FloatRules_Gte) EqualVT(thatIface isFloatRules_GreaterThan) bool { + that, ok := thatIface.(*FloatRules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *DoubleRules) EqualVT(that *DoubleRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isDoubleRules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isDoubleRules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if p, q := this.Finite, that.Finite; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *DoubleRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*DoubleRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *DoubleRules_Lt) EqualVT(thatIface isDoubleRules_LessThan) bool { + that, ok := thatIface.(*DoubleRules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *DoubleRules_Lte) EqualVT(thatIface isDoubleRules_LessThan) bool { + that, ok := thatIface.(*DoubleRules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *DoubleRules_Gt) EqualVT(thatIface isDoubleRules_GreaterThan) bool { + that, ok := thatIface.(*DoubleRules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *DoubleRules_Gte) EqualVT(thatIface isDoubleRules_GreaterThan) bool { + that, ok := thatIface.(*DoubleRules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *Int32Rules) EqualVT(that *Int32Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isInt32Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isInt32Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Int32Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Int32Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Int32Rules_Lt) EqualVT(thatIface isInt32Rules_LessThan) bool { + that, ok := thatIface.(*Int32Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *Int32Rules_Lte) EqualVT(thatIface isInt32Rules_LessThan) bool { + that, ok := thatIface.(*Int32Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *Int32Rules_Gt) EqualVT(thatIface isInt32Rules_GreaterThan) bool { + that, ok := thatIface.(*Int32Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *Int32Rules_Gte) EqualVT(thatIface isInt32Rules_GreaterThan) bool { + that, ok := thatIface.(*Int32Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *Int64Rules) EqualVT(that *Int64Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isInt64Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isInt64Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Int64Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Int64Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Int64Rules_Lt) EqualVT(thatIface isInt64Rules_LessThan) bool { + that, ok := thatIface.(*Int64Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *Int64Rules_Lte) EqualVT(thatIface isInt64Rules_LessThan) bool { + that, ok := thatIface.(*Int64Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *Int64Rules_Gt) EqualVT(thatIface isInt64Rules_GreaterThan) bool { + that, ok := thatIface.(*Int64Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *Int64Rules_Gte) EqualVT(thatIface isInt64Rules_GreaterThan) bool { + that, ok := thatIface.(*Int64Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *UInt32Rules) EqualVT(that *UInt32Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isUInt32Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isUInt32Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UInt32Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UInt32Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UInt32Rules_Lt) EqualVT(thatIface isUInt32Rules_LessThan) bool { + that, ok := thatIface.(*UInt32Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *UInt32Rules_Lte) EqualVT(thatIface isUInt32Rules_LessThan) bool { + that, ok := thatIface.(*UInt32Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *UInt32Rules_Gt) EqualVT(thatIface isUInt32Rules_GreaterThan) bool { + that, ok := thatIface.(*UInt32Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *UInt32Rules_Gte) EqualVT(thatIface isUInt32Rules_GreaterThan) bool { + that, ok := thatIface.(*UInt32Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *UInt64Rules) EqualVT(that *UInt64Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isUInt64Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isUInt64Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UInt64Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UInt64Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UInt64Rules_Lt) EqualVT(thatIface isUInt64Rules_LessThan) bool { + that, ok := thatIface.(*UInt64Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *UInt64Rules_Lte) EqualVT(thatIface isUInt64Rules_LessThan) bool { + that, ok := thatIface.(*UInt64Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *UInt64Rules_Gt) EqualVT(thatIface isUInt64Rules_GreaterThan) bool { + that, ok := thatIface.(*UInt64Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *UInt64Rules_Gte) EqualVT(thatIface isUInt64Rules_GreaterThan) bool { + that, ok := thatIface.(*UInt64Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *SInt32Rules) EqualVT(that *SInt32Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isSInt32Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isSInt32Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *SInt32Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*SInt32Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *SInt32Rules_Lt) EqualVT(thatIface isSInt32Rules_LessThan) bool { + that, ok := thatIface.(*SInt32Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *SInt32Rules_Lte) EqualVT(thatIface isSInt32Rules_LessThan) bool { + that, ok := thatIface.(*SInt32Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *SInt32Rules_Gt) EqualVT(thatIface isSInt32Rules_GreaterThan) bool { + that, ok := thatIface.(*SInt32Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *SInt32Rules_Gte) EqualVT(thatIface isSInt32Rules_GreaterThan) bool { + that, ok := thatIface.(*SInt32Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *SInt64Rules) EqualVT(that *SInt64Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isSInt64Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isSInt64Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *SInt64Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*SInt64Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *SInt64Rules_Lt) EqualVT(thatIface isSInt64Rules_LessThan) bool { + that, ok := thatIface.(*SInt64Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *SInt64Rules_Lte) EqualVT(thatIface isSInt64Rules_LessThan) bool { + that, ok := thatIface.(*SInt64Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *SInt64Rules_Gt) EqualVT(thatIface isSInt64Rules_GreaterThan) bool { + that, ok := thatIface.(*SInt64Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *SInt64Rules_Gte) EqualVT(thatIface isSInt64Rules_GreaterThan) bool { + that, ok := thatIface.(*SInt64Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *Fixed32Rules) EqualVT(that *Fixed32Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isFixed32Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isFixed32Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Fixed32Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Fixed32Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Fixed32Rules_Lt) EqualVT(thatIface isFixed32Rules_LessThan) bool { + that, ok := thatIface.(*Fixed32Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *Fixed32Rules_Lte) EqualVT(thatIface isFixed32Rules_LessThan) bool { + that, ok := thatIface.(*Fixed32Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *Fixed32Rules_Gt) EqualVT(thatIface isFixed32Rules_GreaterThan) bool { + that, ok := thatIface.(*Fixed32Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *Fixed32Rules_Gte) EqualVT(thatIface isFixed32Rules_GreaterThan) bool { + that, ok := thatIface.(*Fixed32Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *Fixed64Rules) EqualVT(that *Fixed64Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isFixed64Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isFixed64Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Fixed64Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Fixed64Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Fixed64Rules_Lt) EqualVT(thatIface isFixed64Rules_LessThan) bool { + that, ok := thatIface.(*Fixed64Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *Fixed64Rules_Lte) EqualVT(thatIface isFixed64Rules_LessThan) bool { + that, ok := thatIface.(*Fixed64Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *Fixed64Rules_Gt) EqualVT(thatIface isFixed64Rules_GreaterThan) bool { + that, ok := thatIface.(*Fixed64Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *Fixed64Rules_Gte) EqualVT(thatIface isFixed64Rules_GreaterThan) bool { + that, ok := thatIface.(*Fixed64Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *SFixed32Rules) EqualVT(that *SFixed32Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isSFixed32Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isSFixed32Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *SFixed32Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*SFixed32Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *SFixed32Rules_Lt) EqualVT(thatIface isSFixed32Rules_LessThan) bool { + that, ok := thatIface.(*SFixed32Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *SFixed32Rules_Lte) EqualVT(thatIface isSFixed32Rules_LessThan) bool { + that, ok := thatIface.(*SFixed32Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *SFixed32Rules_Gt) EqualVT(thatIface isSFixed32Rules_GreaterThan) bool { + that, ok := thatIface.(*SFixed32Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *SFixed32Rules_Gte) EqualVT(thatIface isSFixed32Rules_GreaterThan) bool { + that, ok := thatIface.(*SFixed32Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *SFixed64Rules) EqualVT(that *SFixed64Rules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isSFixed64Rules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isSFixed64Rules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *SFixed64Rules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*SFixed64Rules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *SFixed64Rules_Lt) EqualVT(thatIface isSFixed64Rules_LessThan) bool { + that, ok := thatIface.(*SFixed64Rules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lt != that.Lt { + return false + } + return true +} + +func (this *SFixed64Rules_Lte) EqualVT(thatIface isSFixed64Rules_LessThan) bool { + that, ok := thatIface.(*SFixed64Rules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Lte != that.Lte { + return false + } + return true +} + +func (this *SFixed64Rules_Gt) EqualVT(thatIface isSFixed64Rules_GreaterThan) bool { + that, ok := thatIface.(*SFixed64Rules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gt != that.Gt { + return false + } + return true +} + +func (this *SFixed64Rules_Gte) EqualVT(thatIface isSFixed64Rules_GreaterThan) bool { + that, ok := thatIface.(*SFixed64Rules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Gte != that.Gte { + return false + } + return true +} + +func (this *BoolRules) EqualVT(that *BoolRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *BoolRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BoolRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *StringRules) EqualVT(that *StringRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.WellKnown == nil && that.WellKnown != nil { + return false + } else if this.WellKnown != nil { + if that.WellKnown == nil { + return false + } + if !this.WellKnown.(interface { + EqualVT(isStringRules_WellKnown) bool + }).EqualVT(that.WellKnown) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.MinLen, that.MinLen; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.MaxLen, that.MaxLen; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.MinBytes, that.MinBytes; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.MaxBytes, that.MaxBytes; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Pattern, that.Pattern; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Prefix, that.Prefix; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Suffix, that.Suffix; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Contains, that.Contains; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if p, q := this.Len, that.Len; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.LenBytes, that.LenBytes; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.NotContains, that.NotContains; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Strict, that.Strict; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *StringRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*StringRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *StringRules_Email) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Email) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Email != that.Email { + return false + } + return true +} + +func (this *StringRules_Hostname) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Hostname) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Hostname != that.Hostname { + return false + } + return true +} + +func (this *StringRules_Ip) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Ip) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ip != that.Ip { + return false + } + return true +} + +func (this *StringRules_Ipv4) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Ipv4) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv4 != that.Ipv4 { + return false + } + return true +} + +func (this *StringRules_Ipv6) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Ipv6) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv6 != that.Ipv6 { + return false + } + return true +} + +func (this *StringRules_Uri) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Uri) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Uri != that.Uri { + return false + } + return true +} + +func (this *StringRules_UriRef) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_UriRef) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.UriRef != that.UriRef { + return false + } + return true +} + +func (this *StringRules_Address) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Address) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Address != that.Address { + return false + } + return true +} + +func (this *StringRules_Uuid) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Uuid) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Uuid != that.Uuid { + return false + } + return true +} + +func (this *StringRules_WellKnownRegex) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_WellKnownRegex) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.WellKnownRegex != that.WellKnownRegex { + return false + } + return true +} + +func (this *StringRules_IpWithPrefixlen) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_IpWithPrefixlen) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.IpWithPrefixlen != that.IpWithPrefixlen { + return false + } + return true +} + +func (this *StringRules_Ipv4WithPrefixlen) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Ipv4WithPrefixlen) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv4WithPrefixlen != that.Ipv4WithPrefixlen { + return false + } + return true +} + +func (this *StringRules_Ipv6WithPrefixlen) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Ipv6WithPrefixlen) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv6WithPrefixlen != that.Ipv6WithPrefixlen { + return false + } + return true +} + +func (this *StringRules_IpPrefix) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_IpPrefix) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.IpPrefix != that.IpPrefix { + return false + } + return true +} + +func (this *StringRules_Ipv4Prefix) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Ipv4Prefix) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv4Prefix != that.Ipv4Prefix { + return false + } + return true +} + +func (this *StringRules_Ipv6Prefix) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Ipv6Prefix) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv6Prefix != that.Ipv6Prefix { + return false + } + return true +} + +func (this *StringRules_HostAndPort) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_HostAndPort) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.HostAndPort != that.HostAndPort { + return false + } + return true +} + +func (this *StringRules_Tuuid) EqualVT(thatIface isStringRules_WellKnown) bool { + that, ok := thatIface.(*StringRules_Tuuid) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Tuuid != that.Tuuid { + return false + } + return true +} + +func (this *BytesRules) EqualVT(that *BytesRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.WellKnown == nil && that.WellKnown != nil { + return false + } else if this.WellKnown != nil { + if that.WellKnown == nil { + return false + } + if !this.WellKnown.(interface { + EqualVT(isBytesRules_WellKnown) bool + }).EqualVT(that.WellKnown) { + return false + } + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && q == nil) || string(p) != string(q) { + return false + } + if p, q := this.MinLen, that.MinLen; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.MaxLen, that.MaxLen; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Pattern, that.Pattern; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Prefix, that.Prefix; (p == nil && q != nil) || (p != nil && q == nil) || string(p) != string(q) { + return false + } + if p, q := this.Suffix, that.Suffix; (p == nil && q != nil) || (p != nil && q == nil) || string(p) != string(q) { + return false + } + if p, q := this.Contains, that.Contains; (p == nil && q != nil) || (p != nil && q == nil) || string(p) != string(q) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if string(vx) != string(vy) { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if string(vx) != string(vy) { + return false + } + } + if p, q := this.Len, that.Len; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if string(vx) != string(vy) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *BytesRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BytesRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *BytesRules_Ip) EqualVT(thatIface isBytesRules_WellKnown) bool { + that, ok := thatIface.(*BytesRules_Ip) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ip != that.Ip { + return false + } + return true +} + +func (this *BytesRules_Ipv4) EqualVT(thatIface isBytesRules_WellKnown) bool { + that, ok := thatIface.(*BytesRules_Ipv4) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv4 != that.Ipv4 { + return false + } + return true +} + +func (this *BytesRules_Ipv6) EqualVT(thatIface isBytesRules_WellKnown) bool { + that, ok := thatIface.(*BytesRules_Ipv6) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Ipv6 != that.Ipv6 { + return false + } + return true +} + +func (this *EnumRules) EqualVT(that *EnumRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if p, q := this.Const, that.Const; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.DefinedOnly, that.DefinedOnly; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *EnumRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*EnumRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *RepeatedRules) EqualVT(that *RepeatedRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if p, q := this.MinItems, that.MinItems; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.MaxItems, that.MaxItems; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Unique, that.Unique; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if !this.Items.EqualVT(that.Items) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RepeatedRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RepeatedRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *MapRules) EqualVT(that *MapRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if p, q := this.MinPairs, that.MinPairs; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.MaxPairs, that.MaxPairs; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if !this.Keys.EqualVT(that.Keys) { + return false + } + if !this.Values.EqualVT(that.Values) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *MapRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*MapRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *AnyRules) EqualVT(that *AnyRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if vx != vy { + return false + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *AnyRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*AnyRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *DurationRules) EqualVT(that *DurationRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isDurationRules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isDurationRules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if !(*durationpb1.Duration)(this.Const).EqualVT((*durationpb1.Duration)(that.Const)) { + return false + } + if len(this.In) != len(that.In) { + return false + } + for i, vx := range this.In { + vy := that.In[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &durationpb.Duration{} + } + if q == nil { + q = &durationpb.Duration{} + } + if !(*durationpb1.Duration)(p).EqualVT((*durationpb1.Duration)(q)) { + return false + } + } + } + if len(this.NotIn) != len(that.NotIn) { + return false + } + for i, vx := range this.NotIn { + vy := that.NotIn[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &durationpb.Duration{} + } + if q == nil { + q = &durationpb.Duration{} + } + if !(*durationpb1.Duration)(p).EqualVT((*durationpb1.Duration)(q)) { + return false + } + } + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &durationpb.Duration{} + } + if q == nil { + q = &durationpb.Duration{} + } + if !(*durationpb1.Duration)(p).EqualVT((*durationpb1.Duration)(q)) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *DurationRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*DurationRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *DurationRules_Lt) EqualVT(thatIface isDurationRules_LessThan) bool { + that, ok := thatIface.(*DurationRules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Lt, that.Lt; p != q { + if p == nil { + p = &durationpb.Duration{} + } + if q == nil { + q = &durationpb.Duration{} + } + if !(*durationpb1.Duration)(p).EqualVT((*durationpb1.Duration)(q)) { + return false + } + } + return true +} + +func (this *DurationRules_Lte) EqualVT(thatIface isDurationRules_LessThan) bool { + that, ok := thatIface.(*DurationRules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Lte, that.Lte; p != q { + if p == nil { + p = &durationpb.Duration{} + } + if q == nil { + q = &durationpb.Duration{} + } + if !(*durationpb1.Duration)(p).EqualVT((*durationpb1.Duration)(q)) { + return false + } + } + return true +} + +func (this *DurationRules_Gt) EqualVT(thatIface isDurationRules_GreaterThan) bool { + that, ok := thatIface.(*DurationRules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Gt, that.Gt; p != q { + if p == nil { + p = &durationpb.Duration{} + } + if q == nil { + q = &durationpb.Duration{} + } + if !(*durationpb1.Duration)(p).EqualVT((*durationpb1.Duration)(q)) { + return false + } + } + return true +} + +func (this *DurationRules_Gte) EqualVT(thatIface isDurationRules_GreaterThan) bool { + that, ok := thatIface.(*DurationRules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Gte, that.Gte; p != q { + if p == nil { + p = &durationpb.Duration{} + } + if q == nil { + q = &durationpb.Duration{} + } + if !(*durationpb1.Duration)(p).EqualVT((*durationpb1.Duration)(q)) { + return false + } + } + return true +} + +func (this *TimestampRules) EqualVT(that *TimestampRules) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.LessThan == nil && that.LessThan != nil { + return false + } else if this.LessThan != nil { + if that.LessThan == nil { + return false + } + if !this.LessThan.(interface { + EqualVT(isTimestampRules_LessThan) bool + }).EqualVT(that.LessThan) { + return false + } + } + if this.GreaterThan == nil && that.GreaterThan != nil { + return false + } else if this.GreaterThan != nil { + if that.GreaterThan == nil { + return false + } + if !this.GreaterThan.(interface { + EqualVT(isTimestampRules_GreaterThan) bool + }).EqualVT(that.GreaterThan) { + return false + } + } + if !(*timestamppb1.Timestamp)(this.Const).EqualVT((*timestamppb1.Timestamp)(that.Const)) { + return false + } + if !(*durationpb1.Duration)(this.Within).EqualVT((*durationpb1.Duration)(that.Within)) { + return false + } + if len(this.Example) != len(that.Example) { + return false + } + for i, vx := range this.Example { + vy := that.Example[i] + if p, q := vx, vy; p != q { + if p == nil { + p = ×tamppb.Timestamp{} + } + if q == nil { + q = ×tamppb.Timestamp{} + } + if !(*timestamppb1.Timestamp)(p).EqualVT((*timestamppb1.Timestamp)(q)) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *TimestampRules) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*TimestampRules) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *TimestampRules_Lt) EqualVT(thatIface isTimestampRules_LessThan) bool { + that, ok := thatIface.(*TimestampRules_Lt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Lt, that.Lt; p != q { + if p == nil { + p = ×tamppb.Timestamp{} + } + if q == nil { + q = ×tamppb.Timestamp{} + } + if !(*timestamppb1.Timestamp)(p).EqualVT((*timestamppb1.Timestamp)(q)) { + return false + } + } + return true +} + +func (this *TimestampRules_Lte) EqualVT(thatIface isTimestampRules_LessThan) bool { + that, ok := thatIface.(*TimestampRules_Lte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Lte, that.Lte; p != q { + if p == nil { + p = ×tamppb.Timestamp{} + } + if q == nil { + q = ×tamppb.Timestamp{} + } + if !(*timestamppb1.Timestamp)(p).EqualVT((*timestamppb1.Timestamp)(q)) { + return false + } + } + return true +} + +func (this *TimestampRules_Gt) EqualVT(thatIface isTimestampRules_GreaterThan) bool { + that, ok := thatIface.(*TimestampRules_Gt) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Gt, that.Gt; p != q { + if p == nil { + p = ×tamppb.Timestamp{} + } + if q == nil { + q = ×tamppb.Timestamp{} + } + if !(*timestamppb1.Timestamp)(p).EqualVT((*timestamppb1.Timestamp)(q)) { + return false + } + } + return true +} + +func (this *TimestampRules_Gte) EqualVT(thatIface isTimestampRules_GreaterThan) bool { + that, ok := thatIface.(*TimestampRules_Gte) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Gte, that.Gte; p != q { + if p == nil { + p = ×tamppb.Timestamp{} + } + if q == nil { + q = ×tamppb.Timestamp{} + } + if !(*timestamppb1.Timestamp)(p).EqualVT((*timestamppb1.Timestamp)(q)) { + return false + } + } + return true +} + +func (this *TimestampRules_LtNow) EqualVT(thatIface isTimestampRules_LessThan) bool { + that, ok := thatIface.(*TimestampRules_LtNow) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.LtNow != that.LtNow { + return false + } + return true +} + +func (this *TimestampRules_GtNow) EqualVT(thatIface isTimestampRules_GreaterThan) bool { + that, ok := thatIface.(*TimestampRules_GtNow) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.GtNow != that.GtNow { + return false + } + return true +} + +func (this *Violations) EqualVT(that *Violations) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Violations) != len(that.Violations) { + return false + } + for i, vx := range this.Violations { + vy := that.Violations[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Violation{} + } + if q == nil { + q = &Violation{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Violations) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Violations) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Violation) EqualVT(that *Violation) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if p, q := this.RuleId, that.RuleId; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.Message, that.Message; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.ForKey, that.ForKey; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if !this.Field.EqualVT(that.Field) { + return false + } + if !this.Rule.EqualVT(that.Rule) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Violation) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Violation) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FieldPath) EqualVT(that *FieldPath) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Elements) != len(that.Elements) { + return false + } + for i, vx := range this.Elements { + vy := that.Elements[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FieldPathElement{} + } + if q == nil { + q = &FieldPathElement{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FieldPath) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FieldPath) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FieldPathElement) EqualVT(that *FieldPathElement) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Subscript == nil && that.Subscript != nil { + return false + } else if this.Subscript != nil { + if that.Subscript == nil { + return false + } + if !this.Subscript.(interface { + EqualVT(isFieldPathElement_Subscript) bool + }).EqualVT(that.Subscript) { + return false + } + } + if p, q := this.FieldNumber, that.FieldNumber; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.FieldName, that.FieldName; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.FieldType, that.FieldType; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.KeyType, that.KeyType; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.ValueType, that.ValueType; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FieldPathElement) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FieldPathElement) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FieldPathElement_Index) EqualVT(thatIface isFieldPathElement_Subscript) bool { + that, ok := thatIface.(*FieldPathElement_Index) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Index != that.Index { + return false + } + return true +} + +func (this *FieldPathElement_BoolKey) EqualVT(thatIface isFieldPathElement_Subscript) bool { + that, ok := thatIface.(*FieldPathElement_BoolKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.BoolKey != that.BoolKey { + return false + } + return true +} + +func (this *FieldPathElement_IntKey) EqualVT(thatIface isFieldPathElement_Subscript) bool { + that, ok := thatIface.(*FieldPathElement_IntKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.IntKey != that.IntKey { + return false + } + return true +} + +func (this *FieldPathElement_UintKey) EqualVT(thatIface isFieldPathElement_Subscript) bool { + that, ok := thatIface.(*FieldPathElement_UintKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.UintKey != that.UintKey { + return false + } + return true +} + +func (this *FieldPathElement_StringKey) EqualVT(thatIface isFieldPathElement_Subscript) bool { + that, ok := thatIface.(*FieldPathElement_StringKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.StringKey != that.StringKey { + return false + } + return true +} + +func (m *Rule) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Rule) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Rule) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Expression != nil { + i -= len(*m.Expression) + copy(dAtA[i:], *m.Expression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Expression))) + i-- + dAtA[i] = 0x1a + } + if m.Message != nil { + i -= len(*m.Message) + copy(dAtA[i:], *m.Message) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Message))) + i-- + dAtA[i] = 0x12 + } + if m.Id != nil { + i -= len(*m.Id) + copy(dAtA[i:], *m.Id) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Id))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MessageRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MessageRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *MessageRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Oneof) > 0 { + for iNdEx := len(m.Oneof) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Oneof[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Cel) > 0 { + for iNdEx := len(m.Cel) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Cel[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + return len(dAtA) - i, nil +} + +func (m *MessageOneofRule) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MessageOneofRule) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *MessageOneofRule) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Required != nil { + i-- + if *m.Required { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if len(m.Fields) > 0 { + for iNdEx := len(m.Fields) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Fields[iNdEx]) + copy(dAtA[i:], m.Fields[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Fields[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *OneofRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *OneofRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Required != nil { + i-- + if *m.Required { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *FieldRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Type.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Ignore != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Ignore)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd8 + } + if m.Required != nil { + i-- + if *m.Required { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc8 + } + if len(m.Cel) > 0 { + for iNdEx := len(m.Cel) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Cel[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + } + return len(dAtA) - i, nil +} + +func (m *FieldRules_Float) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Float) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Float != nil { + size, err := m.Float.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Double) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Double) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Double != nil { + size, err := m.Double.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Int32) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Int32) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Int32 != nil { + size, err := m.Int32.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Int64) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Int64) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Int64 != nil { + size, err := m.Int64.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Uint32) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Uint32) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Uint32 != nil { + size, err := m.Uint32.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Uint64) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Uint64) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Uint64 != nil { + size, err := m.Uint64.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sint32) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Sint32) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sint32 != nil { + size, err := m.Sint32.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sint64) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Sint64) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sint64 != nil { + size, err := m.Sint64.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Fixed32) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Fixed32) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Fixed32 != nil { + size, err := m.Fixed32.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Fixed64) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Fixed64) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Fixed64 != nil { + size, err := m.Fixed64.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sfixed32) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Sfixed32) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sfixed32 != nil { + size, err := m.Sfixed32.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sfixed64) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Sfixed64) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sfixed64 != nil { + size, err := m.Sfixed64.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Bool) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Bool) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Bool != nil { + size, err := m.Bool.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x6a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_String_) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_String_) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.String_ != nil { + size, err := m.String_.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Bytes) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Bytes) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Bytes != nil { + size, err := m.Bytes.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Enum) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Enum) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Enum != nil { + size, err := m.Enum.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Repeated) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Repeated) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Repeated != nil { + size, err := m.Repeated.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Map) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Map) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Map != nil { + size, err := m.Map.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Any) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Any) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Any != nil { + size, err := m.Any.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Duration) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Duration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Duration != nil { + size, err := m.Duration.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Timestamp) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldRules_Timestamp) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + size, err := m.Timestamp.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + return len(dAtA) - i, nil +} +func (m *PredefinedRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PredefinedRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *PredefinedRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Cel) > 0 { + for iNdEx := len(m.Cel) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Cel[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FloatRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FloatRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FloatRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float32bits(float32(m.Example[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f1)) + i-- + dAtA[i] = 0x4d + } + } + if m.Finite != nil { + i-- + if *m.Finite { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + f2 := math.Float32bits(float32(m.NotIn[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f2)) + i-- + dAtA[i] = 0x3d + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + f3 := math.Float32bits(float32(m.In[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f3)) + i-- + dAtA[i] = 0x35 + } + } + if m.Const != nil { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Const)))) + i-- + dAtA[i] = 0xd + } + return len(dAtA) - i, nil +} + +func (m *FloatRules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FloatRules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Lt)))) + i-- + dAtA[i] = 0x15 + return len(dAtA) - i, nil +} +func (m *FloatRules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FloatRules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Lte)))) + i-- + dAtA[i] = 0x1d + return len(dAtA) - i, nil +} +func (m *FloatRules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FloatRules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Gt)))) + i-- + dAtA[i] = 0x25 + return len(dAtA) - i, nil +} +func (m *FloatRules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FloatRules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Gte)))) + i-- + dAtA[i] = 0x2d + return len(dAtA) - i, nil +} +func (m *DoubleRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DoubleRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DoubleRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float64bits(float64(m.Example[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + i-- + dAtA[i] = 0x49 + } + } + if m.Finite != nil { + i-- + if *m.Finite { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + f2 := math.Float64bits(float64(m.NotIn[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f2)) + i-- + dAtA[i] = 0x39 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + f3 := math.Float64bits(float64(m.In[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f3)) + i-- + dAtA[i] = 0x31 + } + } + if m.Const != nil { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Const)))) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *DoubleRules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DoubleRules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Lt)))) + i-- + dAtA[i] = 0x11 + return len(dAtA) - i, nil +} +func (m *DoubleRules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DoubleRules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Lte)))) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *DoubleRules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DoubleRules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Gt)))) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *DoubleRules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DoubleRules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Gte)))) + i-- + dAtA[i] = 0x29 + return len(dAtA) - i, nil +} +func (m *Int32Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Int32Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int32Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Int32Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int32Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *Int32Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int32Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *Int32Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int32Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *Int32Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int32Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *Int64Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Int64Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int64Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x48 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Int64Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int64Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *Int64Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int64Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *Int64Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int64Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *Int64Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Int64Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *UInt32Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UInt32Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt32Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *UInt32Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt32Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *UInt32Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt32Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *UInt32Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt32Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *UInt32Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt32Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *UInt64Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UInt64Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt64Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *UInt64Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt64Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *UInt64Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt64Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *UInt64Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt64Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *UInt64Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UInt64Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *SInt32Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SInt32Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt32Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + x1 := (uint32(m.Example[iNdEx]) << 1) ^ uint32((m.Example[iNdEx] >> 31)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x1)) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + x2 := (uint32(m.NotIn[iNdEx]) << 1) ^ uint32((m.NotIn[iNdEx] >> 31)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x2)) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + x3 := (uint32(m.In[iNdEx]) << 1) ^ uint32((m.In[iNdEx] >> 31)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x3)) + i-- + dAtA[i] = 0x30 + } + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(*m.Const)<<1)^uint32((*m.Const>>31)))) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *SInt32Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt32Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Lt)<<1)^uint32((m.Lt>>31)))) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *SInt32Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt32Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Lte)<<1)^uint32((m.Lte>>31)))) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *SInt32Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt32Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Gt)<<1)^uint32((m.Gt>>31)))) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *SInt32Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt32Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Gte)<<1)^uint32((m.Gte>>31)))) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *SInt64Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SInt64Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt64Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + x1 := (uint64(m.Example[iNdEx]) << 1) ^ uint64((m.Example[iNdEx] >> 63)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x1)) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + x2 := (uint64(m.NotIn[iNdEx]) << 1) ^ uint64((m.NotIn[iNdEx] >> 63)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x2)) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + x3 := (uint64(m.In[iNdEx]) << 1) ^ uint64((m.In[iNdEx] >> 63)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x3)) + i-- + dAtA[i] = 0x30 + } + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(*m.Const)<<1)^uint64((*m.Const>>63)))) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *SInt64Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt64Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Lt)<<1)^uint64((m.Lt>>63)))) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *SInt64Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt64Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Lte)<<1)^uint64((m.Lte>>63)))) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *SInt64Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt64Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Gt)<<1)^uint64((m.Gt>>63)))) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *SInt64Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SInt64Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Gte)<<1)^uint64((m.Gte>>63)))) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *Fixed32Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Fixed32Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed32Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Example[iNdEx])) + i-- + dAtA[i] = 0x45 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x3d + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.In[iNdEx])) + i-- + dAtA[i] = 0x35 + } + } + if m.Const != nil { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Const)) + i-- + dAtA[i] = 0xd + } + return len(dAtA) - i, nil +} + +func (m *Fixed32Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed32Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lt)) + i-- + dAtA[i] = 0x15 + return len(dAtA) - i, nil +} +func (m *Fixed32Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed32Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lte)) + i-- + dAtA[i] = 0x1d + return len(dAtA) - i, nil +} +func (m *Fixed32Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed32Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gt)) + i-- + dAtA[i] = 0x25 + return len(dAtA) - i, nil +} +func (m *Fixed32Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed32Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gte)) + i-- + dAtA[i] = 0x2d + return len(dAtA) - i, nil +} +func (m *Fixed64Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Fixed64Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed64Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x41 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x39 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x31 + } + } + if m.Const != nil { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Const)) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *Fixed64Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed64Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lt)) + i-- + dAtA[i] = 0x11 + return len(dAtA) - i, nil +} +func (m *Fixed64Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed64Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lte)) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *Fixed64Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed64Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gt)) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *Fixed64Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Fixed64Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gte)) + i-- + dAtA[i] = 0x29 + return len(dAtA) - i, nil +} +func (m *SFixed32Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SFixed32Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed32Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Example[iNdEx])) + i-- + dAtA[i] = 0x45 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x3d + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.In[iNdEx])) + i-- + dAtA[i] = 0x35 + } + } + if m.Const != nil { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Const)) + i-- + dAtA[i] = 0xd + } + return len(dAtA) - i, nil +} + +func (m *SFixed32Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed32Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lt)) + i-- + dAtA[i] = 0x15 + return len(dAtA) - i, nil +} +func (m *SFixed32Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed32Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lte)) + i-- + dAtA[i] = 0x1d + return len(dAtA) - i, nil +} +func (m *SFixed32Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed32Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gt)) + i-- + dAtA[i] = 0x25 + return len(dAtA) - i, nil +} +func (m *SFixed32Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed32Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gte)) + i-- + dAtA[i] = 0x2d + return len(dAtA) - i, nil +} +func (m *SFixed64Rules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SFixed64Rules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed64Rules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x41 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x39 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x31 + } + } + if m.Const != nil { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Const)) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *SFixed64Rules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed64Rules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lt)) + i-- + dAtA[i] = 0x11 + return len(dAtA) - i, nil +} +func (m *SFixed64Rules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed64Rules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lte)) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *SFixed64Rules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed64Rules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gt)) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *SFixed64Rules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SFixed64Rules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gte)) + i-- + dAtA[i] = 0x29 + return len(dAtA) - i, nil +} +func (m *BoolRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BoolRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BoolRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i-- + if m.Example[iNdEx] { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + } + if m.Const != nil { + i-- + if *m.Const { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *StringRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StringRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.WellKnown.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Example[iNdEx]) + copy(dAtA[i:], m.Example[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Example[iNdEx]))) + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x92 + } + } + if m.Strict != nil { + i-- + if *m.Strict { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc8 + } + if m.NotContains != nil { + i -= len(*m.NotContains) + copy(dAtA[i:], *m.NotContains) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.NotContains))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + if m.LenBytes != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.LenBytes)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if m.Len != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Len)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.NotIn[iNdEx]) + copy(dAtA[i:], m.NotIn[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NotIn[iNdEx]))) + i-- + dAtA[i] = 0x5a + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.In[iNdEx]) + copy(dAtA[i:], m.In[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.In[iNdEx]))) + i-- + dAtA[i] = 0x52 + } + } + if m.Contains != nil { + i -= len(*m.Contains) + copy(dAtA[i:], *m.Contains) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Contains))) + i-- + dAtA[i] = 0x4a + } + if m.Suffix != nil { + i -= len(*m.Suffix) + copy(dAtA[i:], *m.Suffix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Suffix))) + i-- + dAtA[i] = 0x42 + } + if m.Prefix != nil { + i -= len(*m.Prefix) + copy(dAtA[i:], *m.Prefix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Prefix))) + i-- + dAtA[i] = 0x3a + } + if m.Pattern != nil { + i -= len(*m.Pattern) + copy(dAtA[i:], *m.Pattern) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Pattern))) + i-- + dAtA[i] = 0x32 + } + if m.MaxBytes != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxBytes)) + i-- + dAtA[i] = 0x28 + } + if m.MinBytes != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinBytes)) + i-- + dAtA[i] = 0x20 + } + if m.MaxLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxLen)) + i-- + dAtA[i] = 0x18 + } + if m.MinLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinLen)) + i-- + dAtA[i] = 0x10 + } + if m.Const != nil { + i -= len(*m.Const) + copy(dAtA[i:], *m.Const) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Const))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StringRules_Email) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Email) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Email { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + return len(dAtA) - i, nil +} +func (m *StringRules_Hostname) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Hostname) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Hostname { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x68 + return len(dAtA) - i, nil +} +func (m *StringRules_Ip) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Ip) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ip { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x70 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv4) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Ipv4) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x78 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv6) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Ipv6) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x80 + return len(dAtA) - i, nil +} +func (m *StringRules_Uri) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Uri) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Uri { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + return len(dAtA) - i, nil +} +func (m *StringRules_UriRef) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_UriRef) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.UriRef { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x90 + return len(dAtA) - i, nil +} +func (m *StringRules_Address) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Address) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Address { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + return len(dAtA) - i, nil +} +func (m *StringRules_Uuid) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Uuid) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Uuid { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb0 + return len(dAtA) - i, nil +} +func (m *StringRules_WellKnownRegex) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_WellKnownRegex) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.WellKnownRegex)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc0 + return len(dAtA) - i, nil +} +func (m *StringRules_IpWithPrefixlen) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_IpWithPrefixlen) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.IpWithPrefixlen { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd0 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv4WithPrefixlen) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Ipv4WithPrefixlen) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4WithPrefixlen { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd8 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv6WithPrefixlen) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Ipv6WithPrefixlen) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6WithPrefixlen { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe0 + return len(dAtA) - i, nil +} +func (m *StringRules_IpPrefix) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_IpPrefix) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.IpPrefix { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe8 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv4Prefix) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Ipv4Prefix) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4Prefix { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf0 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv6Prefix) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Ipv6Prefix) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6Prefix { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf8 + return len(dAtA) - i, nil +} +func (m *StringRules_HostAndPort) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_HostAndPort) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.HostAndPort { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x80 + return len(dAtA) - i, nil +} +func (m *StringRules_Tuuid) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StringRules_Tuuid) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Tuuid { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x88 + return len(dAtA) - i, nil +} +func (m *BytesRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BytesRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BytesRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.WellKnown.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Example[iNdEx]) + copy(dAtA[i:], m.Example[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Example[iNdEx]))) + i-- + dAtA[i] = 0x72 + } + } + if m.Len != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Len)) + i-- + dAtA[i] = 0x68 + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.NotIn[iNdEx]) + copy(dAtA[i:], m.NotIn[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NotIn[iNdEx]))) + i-- + dAtA[i] = 0x4a + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.In[iNdEx]) + copy(dAtA[i:], m.In[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.In[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if m.Contains != nil { + i -= len(m.Contains) + copy(dAtA[i:], m.Contains) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Contains))) + i-- + dAtA[i] = 0x3a + } + if m.Suffix != nil { + i -= len(m.Suffix) + copy(dAtA[i:], m.Suffix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Suffix))) + i-- + dAtA[i] = 0x32 + } + if m.Prefix != nil { + i -= len(m.Prefix) + copy(dAtA[i:], m.Prefix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Prefix))) + i-- + dAtA[i] = 0x2a + } + if m.Pattern != nil { + i -= len(*m.Pattern) + copy(dAtA[i:], *m.Pattern) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Pattern))) + i-- + dAtA[i] = 0x22 + } + if m.MaxLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxLen)) + i-- + dAtA[i] = 0x18 + } + if m.MinLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinLen)) + i-- + dAtA[i] = 0x10 + } + if m.Const != nil { + i -= len(m.Const) + copy(dAtA[i:], m.Const) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Const))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BytesRules_Ip) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BytesRules_Ip) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ip { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + return len(dAtA) - i, nil +} +func (m *BytesRules_Ipv4) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BytesRules_Ipv4) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x58 + return len(dAtA) - i, nil +} +func (m *BytesRules_Ipv6) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BytesRules_Ipv6) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + return len(dAtA) - i, nil +} +func (m *EnumRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EnumRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EnumRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x28 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x20 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x18 + } + } + if m.DefinedOnly != nil { + i-- + if *m.DefinedOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RepeatedRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepeatedRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RepeatedRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Items != nil { + size, err := m.Items.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.Unique != nil { + i-- + if *m.Unique { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.MaxItems != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxItems)) + i-- + dAtA[i] = 0x10 + } + if m.MinItems != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinItems)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MapRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *MapRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Values != nil { + size, err := m.Values.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.Keys != nil { + size, err := m.Keys.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.MaxPairs != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxPairs)) + i-- + dAtA[i] = 0x10 + } + if m.MinPairs != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinPairs)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *AnyRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnyRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *AnyRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.NotIn[iNdEx]) + copy(dAtA[i:], m.NotIn[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NotIn[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.In[iNdEx]) + copy(dAtA[i:], m.In[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.In[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + return len(dAtA) - i, nil +} + +func (m *DurationRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DurationRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DurationRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*durationpb1.Duration)(m.Example[iNdEx]).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*durationpb1.Duration)(m.NotIn[iNdEx]).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*durationpb1.Duration)(m.In[iNdEx]).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + } + if m.Const != nil { + size, err := (*durationpb1.Duration)(m.Const).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *DurationRules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DurationRules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lt != nil { + size, err := (*durationpb1.Duration)(m.Lt).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *DurationRules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DurationRules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lte != nil { + size, err := (*durationpb1.Duration)(m.Lte).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *DurationRules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DurationRules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gt != nil { + size, err := (*durationpb1.Duration)(m.Gt).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *DurationRules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DurationRules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gte != nil { + size, err := (*durationpb1.Duration)(m.Gte).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *TimestampRules) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TimestampRules) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampRules) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.GreaterThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if vtmsg, ok := m.LessThan.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*timestamppb1.Timestamp)(m.Example[iNdEx]).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + } + if m.Within != nil { + size, err := (*durationpb1.Duration)(m.Within).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.Const != nil { + size, err := (*timestamppb1.Timestamp)(m.Const).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *TimestampRules_Lt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampRules_Lt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lt != nil { + size, err := (*timestamppb1.Timestamp)(m.Lt).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_Lte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampRules_Lte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lte != nil { + size, err := (*timestamppb1.Timestamp)(m.Lte).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_Gt) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampRules_Gt) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gt != nil { + size, err := (*timestamppb1.Timestamp)(m.Gt).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_Gte) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampRules_Gte) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gte != nil { + size, err := (*timestamppb1.Timestamp)(m.Gte).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_LtNow) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampRules_LtNow) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.LtNow { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + return len(dAtA) - i, nil +} +func (m *TimestampRules_GtNow) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampRules_GtNow) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.GtNow { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + return len(dAtA) - i, nil +} +func (m *Violations) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Violations) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Violations) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Violations) > 0 { + for iNdEx := len(m.Violations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Violations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Violation) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Violation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Violation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Rule != nil { + size, err := m.Rule.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.Field != nil { + size, err := m.Field.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.ForKey != nil { + i-- + if *m.ForKey { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.Message != nil { + i -= len(*m.Message) + copy(dAtA[i:], *m.Message) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Message))) + i-- + dAtA[i] = 0x1a + } + if m.RuleId != nil { + i -= len(*m.RuleId) + copy(dAtA[i:], *m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleId))) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *FieldPath) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldPath) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldPath) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Elements) > 0 { + for iNdEx := len(m.Elements) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Elements[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FieldPathElement) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldPathElement) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldPathElement) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Subscript.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.ValueType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.ValueType)) + i-- + dAtA[i] = 0x28 + } + if m.KeyType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.KeyType)) + i-- + dAtA[i] = 0x20 + } + if m.FieldType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.FieldType)) + i-- + dAtA[i] = 0x18 + } + if m.FieldName != nil { + i -= len(*m.FieldName) + copy(dAtA[i:], *m.FieldName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.FieldName))) + i-- + dAtA[i] = 0x12 + } + if m.FieldNumber != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.FieldNumber)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *FieldPathElement_Index) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldPathElement_Index) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x30 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_BoolKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldPathElement_BoolKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.BoolKey { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_IntKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldPathElement_IntKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.IntKey)) + i-- + dAtA[i] = 0x40 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_UintKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldPathElement_UintKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.UintKey)) + i-- + dAtA[i] = 0x48 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_StringKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FieldPathElement_StringKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.StringKey) + copy(dAtA[i:], m.StringKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.StringKey))) + i-- + dAtA[i] = 0x52 + return len(dAtA) - i, nil +} +func (m *Rule) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Rule) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Rule) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Expression != nil { + i -= len(*m.Expression) + copy(dAtA[i:], *m.Expression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Expression))) + i-- + dAtA[i] = 0x1a + } + if m.Message != nil { + i -= len(*m.Message) + copy(dAtA[i:], *m.Message) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Message))) + i-- + dAtA[i] = 0x12 + } + if m.Id != nil { + i -= len(*m.Id) + copy(dAtA[i:], *m.Id) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Id))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MessageRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MessageRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *MessageRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Oneof) > 0 { + for iNdEx := len(m.Oneof) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Oneof[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Cel) > 0 { + for iNdEx := len(m.Cel) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Cel[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + return len(dAtA) - i, nil +} + +func (m *MessageOneofRule) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MessageOneofRule) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *MessageOneofRule) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Required != nil { + i-- + if *m.Required { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if len(m.Fields) > 0 { + for iNdEx := len(m.Fields) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Fields[iNdEx]) + copy(dAtA[i:], m.Fields[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Fields[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *OneofRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *OneofRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Required != nil { + i-- + if *m.Required { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *FieldRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Ignore != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Ignore)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd8 + } + if m.Required != nil { + i-- + if *m.Required { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc8 + } + if len(m.Cel) > 0 { + for iNdEx := len(m.Cel) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Cel[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + } + if msg, ok := m.Type.(*FieldRules_Timestamp); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Duration); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Any); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Map); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Repeated); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Enum); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Bytes); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_String_); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Bool); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Sfixed64); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Sfixed32); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Fixed64); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Fixed32); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Sint64); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Sint32); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Uint64); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Uint32); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Int64); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Int32); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Double); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*FieldRules_Float); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *FieldRules_Float) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Float) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Float != nil { + size, err := m.Float.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Double) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Double) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Double != nil { + size, err := m.Double.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Int32) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Int32) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Int32 != nil { + size, err := m.Int32.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Int64) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Int64) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Int64 != nil { + size, err := m.Int64.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Uint32) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Uint32) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Uint32 != nil { + size, err := m.Uint32.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Uint64) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Uint64) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Uint64 != nil { + size, err := m.Uint64.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sint32) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Sint32) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sint32 != nil { + size, err := m.Sint32.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sint64) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Sint64) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sint64 != nil { + size, err := m.Sint64.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Fixed32) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Fixed32) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Fixed32 != nil { + size, err := m.Fixed32.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Fixed64) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Fixed64) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Fixed64 != nil { + size, err := m.Fixed64.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sfixed32) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Sfixed32) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sfixed32 != nil { + size, err := m.Sfixed32.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Sfixed64) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Sfixed64) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sfixed64 != nil { + size, err := m.Sfixed64.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Bool) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Bool) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Bool != nil { + size, err := m.Bool.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x6a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_String_) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_String_) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.String_ != nil { + size, err := m.String_.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Bytes) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Bytes) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Bytes != nil { + size, err := m.Bytes.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Enum) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Enum) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Enum != nil { + size, err := m.Enum.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Repeated) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Repeated) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Repeated != nil { + size, err := m.Repeated.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Map) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Map) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Map != nil { + size, err := m.Map.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Any) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Any) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Any != nil { + size, err := m.Any.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Duration) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Duration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Duration != nil { + size, err := m.Duration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + return len(dAtA) - i, nil +} +func (m *FieldRules_Timestamp) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldRules_Timestamp) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + size, err := m.Timestamp.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + return len(dAtA) - i, nil +} +func (m *PredefinedRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PredefinedRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *PredefinedRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Cel) > 0 { + for iNdEx := len(m.Cel) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Cel[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FloatRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FloatRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FloatRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float32bits(float32(m.Example[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f1)) + i-- + dAtA[i] = 0x4d + } + } + if m.Finite != nil { + i-- + if *m.Finite { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + f2 := math.Float32bits(float32(m.NotIn[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f2)) + i-- + dAtA[i] = 0x3d + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + f3 := math.Float32bits(float32(m.In[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f3)) + i-- + dAtA[i] = 0x35 + } + } + if msg, ok := m.GreaterThan.(*FloatRules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*FloatRules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*FloatRules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*FloatRules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Const)))) + i-- + dAtA[i] = 0xd + } + return len(dAtA) - i, nil +} + +func (m *FloatRules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FloatRules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Lt)))) + i-- + dAtA[i] = 0x15 + return len(dAtA) - i, nil +} +func (m *FloatRules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FloatRules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Lte)))) + i-- + dAtA[i] = 0x1d + return len(dAtA) - i, nil +} +func (m *FloatRules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FloatRules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Gt)))) + i-- + dAtA[i] = 0x25 + return len(dAtA) - i, nil +} +func (m *FloatRules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FloatRules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Gte)))) + i-- + dAtA[i] = 0x2d + return len(dAtA) - i, nil +} +func (m *DoubleRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DoubleRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DoubleRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float64bits(float64(m.Example[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + i-- + dAtA[i] = 0x49 + } + } + if m.Finite != nil { + i-- + if *m.Finite { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + f2 := math.Float64bits(float64(m.NotIn[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f2)) + i-- + dAtA[i] = 0x39 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + f3 := math.Float64bits(float64(m.In[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f3)) + i-- + dAtA[i] = 0x31 + } + } + if msg, ok := m.GreaterThan.(*DoubleRules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*DoubleRules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*DoubleRules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*DoubleRules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Const)))) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *DoubleRules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DoubleRules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Lt)))) + i-- + dAtA[i] = 0x11 + return len(dAtA) - i, nil +} +func (m *DoubleRules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DoubleRules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Lte)))) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *DoubleRules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DoubleRules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Gt)))) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *DoubleRules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DoubleRules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Gte)))) + i-- + dAtA[i] = 0x29 + return len(dAtA) - i, nil +} +func (m *Int32Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Int32Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int32Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if msg, ok := m.GreaterThan.(*Int32Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*Int32Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Int32Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Int32Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Int32Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int32Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *Int32Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int32Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *Int32Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int32Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *Int32Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int32Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *Int64Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Int64Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int64Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x48 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if msg, ok := m.GreaterThan.(*Int64Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*Int64Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Int64Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Int64Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Int64Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int64Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *Int64Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int64Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *Int64Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int64Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *Int64Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Int64Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *UInt32Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UInt32Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt32Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if msg, ok := m.GreaterThan.(*UInt32Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*UInt32Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*UInt32Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*UInt32Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *UInt32Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt32Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *UInt32Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt32Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *UInt32Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt32Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *UInt32Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt32Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *UInt64Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UInt64Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt64Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x30 + } + } + if msg, ok := m.GreaterThan.(*UInt64Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*UInt64Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*UInt64Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*UInt64Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *UInt64Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt64Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lt)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *UInt64Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt64Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Lte)) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *UInt64Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt64Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gt)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *UInt64Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UInt64Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Gte)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *SInt32Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SInt32Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt32Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + x1 := (uint32(m.Example[iNdEx]) << 1) ^ uint32((m.Example[iNdEx] >> 31)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x1)) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + x2 := (uint32(m.NotIn[iNdEx]) << 1) ^ uint32((m.NotIn[iNdEx] >> 31)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x2)) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + x3 := (uint32(m.In[iNdEx]) << 1) ^ uint32((m.In[iNdEx] >> 31)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x3)) + i-- + dAtA[i] = 0x30 + } + } + if msg, ok := m.GreaterThan.(*SInt32Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*SInt32Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SInt32Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SInt32Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(*m.Const)<<1)^uint32((*m.Const>>31)))) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *SInt32Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt32Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Lt)<<1)^uint32((m.Lt>>31)))) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *SInt32Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt32Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Lte)<<1)^uint32((m.Lte>>31)))) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *SInt32Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt32Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Gt)<<1)^uint32((m.Gt>>31)))) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *SInt32Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt32Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.Gte)<<1)^uint32((m.Gte>>31)))) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *SInt64Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SInt64Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt64Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + x1 := (uint64(m.Example[iNdEx]) << 1) ^ uint64((m.Example[iNdEx] >> 63)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x1)) + i-- + dAtA[i] = 0x40 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + x2 := (uint64(m.NotIn[iNdEx]) << 1) ^ uint64((m.NotIn[iNdEx] >> 63)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x2)) + i-- + dAtA[i] = 0x38 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + x3 := (uint64(m.In[iNdEx]) << 1) ^ uint64((m.In[iNdEx] >> 63)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(x3)) + i-- + dAtA[i] = 0x30 + } + } + if msg, ok := m.GreaterThan.(*SInt64Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*SInt64Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SInt64Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SInt64Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(*m.Const)<<1)^uint64((*m.Const>>63)))) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *SInt64Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt64Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Lt)<<1)^uint64((m.Lt>>63)))) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *SInt64Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt64Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Lte)<<1)^uint64((m.Lte>>63)))) + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *SInt64Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt64Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Gt)<<1)^uint64((m.Gt>>63)))) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *SInt64Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SInt64Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64((uint64(m.Gte)<<1)^uint64((m.Gte>>63)))) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *Fixed32Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Fixed32Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed32Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Example[iNdEx])) + i-- + dAtA[i] = 0x45 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x3d + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.In[iNdEx])) + i-- + dAtA[i] = 0x35 + } + } + if msg, ok := m.GreaterThan.(*Fixed32Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*Fixed32Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Fixed32Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Fixed32Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Const)) + i-- + dAtA[i] = 0xd + } + return len(dAtA) - i, nil +} + +func (m *Fixed32Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed32Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lt)) + i-- + dAtA[i] = 0x15 + return len(dAtA) - i, nil +} +func (m *Fixed32Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed32Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lte)) + i-- + dAtA[i] = 0x1d + return len(dAtA) - i, nil +} +func (m *Fixed32Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed32Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gt)) + i-- + dAtA[i] = 0x25 + return len(dAtA) - i, nil +} +func (m *Fixed32Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed32Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gte)) + i-- + dAtA[i] = 0x2d + return len(dAtA) - i, nil +} +func (m *Fixed64Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Fixed64Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed64Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x41 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x39 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x31 + } + } + if msg, ok := m.GreaterThan.(*Fixed64Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*Fixed64Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Fixed64Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*Fixed64Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Const)) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *Fixed64Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed64Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lt)) + i-- + dAtA[i] = 0x11 + return len(dAtA) - i, nil +} +func (m *Fixed64Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed64Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lte)) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *Fixed64Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed64Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gt)) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *Fixed64Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Fixed64Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gte)) + i-- + dAtA[i] = 0x29 + return len(dAtA) - i, nil +} +func (m *SFixed32Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SFixed32Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed32Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Example[iNdEx])) + i-- + dAtA[i] = 0x45 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x3d + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.In[iNdEx])) + i-- + dAtA[i] = 0x35 + } + } + if msg, ok := m.GreaterThan.(*SFixed32Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*SFixed32Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SFixed32Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SFixed32Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Const)) + i-- + dAtA[i] = 0xd + } + return len(dAtA) - i, nil +} + +func (m *SFixed32Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed32Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lt)) + i-- + dAtA[i] = 0x15 + return len(dAtA) - i, nil +} +func (m *SFixed32Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed32Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Lte)) + i-- + dAtA[i] = 0x1d + return len(dAtA) - i, nil +} +func (m *SFixed32Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed32Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gt)) + i-- + dAtA[i] = 0x25 + return len(dAtA) - i, nil +} +func (m *SFixed32Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed32Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gte)) + i-- + dAtA[i] = 0x2d + return len(dAtA) - i, nil +} +func (m *SFixed64Rules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SFixed64Rules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed64Rules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x41 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x39 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x31 + } + } + if msg, ok := m.GreaterThan.(*SFixed64Rules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*SFixed64Rules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SFixed64Rules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*SFixed64Rules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Const)) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *SFixed64Rules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed64Rules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lt)) + i-- + dAtA[i] = 0x11 + return len(dAtA) - i, nil +} +func (m *SFixed64Rules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed64Rules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Lte)) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *SFixed64Rules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed64Rules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gt)) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *SFixed64Rules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SFixed64Rules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Gte)) + i-- + dAtA[i] = 0x29 + return len(dAtA) - i, nil +} +func (m *BoolRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BoolRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BoolRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i-- + if m.Example[iNdEx] { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + } + if m.Const != nil { + i-- + if *m.Const { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *StringRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StringRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Example[iNdEx]) + copy(dAtA[i:], m.Example[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Example[iNdEx]))) + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x92 + } + } + if msg, ok := m.WellKnown.(*StringRules_Tuuid); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_HostAndPort); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Ipv6Prefix); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Ipv4Prefix); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_IpPrefix); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Ipv6WithPrefixlen); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Ipv4WithPrefixlen); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_IpWithPrefixlen); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Strict != nil { + i-- + if *m.Strict { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc8 + } + if msg, ok := m.WellKnown.(*StringRules_WellKnownRegex); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.NotContains != nil { + i -= len(*m.NotContains) + copy(dAtA[i:], *m.NotContains) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.NotContains))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + if msg, ok := m.WellKnown.(*StringRules_Uuid); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Address); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.LenBytes != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.LenBytes)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if m.Len != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Len)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } + if msg, ok := m.WellKnown.(*StringRules_UriRef); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Uri); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Ipv6); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Ipv4); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Ip); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Hostname); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*StringRules_Email); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.NotIn[iNdEx]) + copy(dAtA[i:], m.NotIn[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NotIn[iNdEx]))) + i-- + dAtA[i] = 0x5a + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.In[iNdEx]) + copy(dAtA[i:], m.In[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.In[iNdEx]))) + i-- + dAtA[i] = 0x52 + } + } + if m.Contains != nil { + i -= len(*m.Contains) + copy(dAtA[i:], *m.Contains) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Contains))) + i-- + dAtA[i] = 0x4a + } + if m.Suffix != nil { + i -= len(*m.Suffix) + copy(dAtA[i:], *m.Suffix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Suffix))) + i-- + dAtA[i] = 0x42 + } + if m.Prefix != nil { + i -= len(*m.Prefix) + copy(dAtA[i:], *m.Prefix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Prefix))) + i-- + dAtA[i] = 0x3a + } + if m.Pattern != nil { + i -= len(*m.Pattern) + copy(dAtA[i:], *m.Pattern) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Pattern))) + i-- + dAtA[i] = 0x32 + } + if m.MaxBytes != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxBytes)) + i-- + dAtA[i] = 0x28 + } + if m.MinBytes != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinBytes)) + i-- + dAtA[i] = 0x20 + } + if m.MaxLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxLen)) + i-- + dAtA[i] = 0x18 + } + if m.MinLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinLen)) + i-- + dAtA[i] = 0x10 + } + if m.Const != nil { + i -= len(*m.Const) + copy(dAtA[i:], *m.Const) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Const))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StringRules_Email) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Email) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Email { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + return len(dAtA) - i, nil +} +func (m *StringRules_Hostname) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Hostname) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Hostname { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x68 + return len(dAtA) - i, nil +} +func (m *StringRules_Ip) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Ip) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ip { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x70 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv4) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Ipv4) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x78 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv6) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Ipv6) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x80 + return len(dAtA) - i, nil +} +func (m *StringRules_Uri) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Uri) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Uri { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + return len(dAtA) - i, nil +} +func (m *StringRules_UriRef) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_UriRef) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.UriRef { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x90 + return len(dAtA) - i, nil +} +func (m *StringRules_Address) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Address) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Address { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + return len(dAtA) - i, nil +} +func (m *StringRules_Uuid) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Uuid) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Uuid { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb0 + return len(dAtA) - i, nil +} +func (m *StringRules_WellKnownRegex) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_WellKnownRegex) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.WellKnownRegex)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc0 + return len(dAtA) - i, nil +} +func (m *StringRules_IpWithPrefixlen) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_IpWithPrefixlen) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.IpWithPrefixlen { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd0 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv4WithPrefixlen) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Ipv4WithPrefixlen) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4WithPrefixlen { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd8 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv6WithPrefixlen) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Ipv6WithPrefixlen) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6WithPrefixlen { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe0 + return len(dAtA) - i, nil +} +func (m *StringRules_IpPrefix) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_IpPrefix) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.IpPrefix { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe8 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv4Prefix) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Ipv4Prefix) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4Prefix { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf0 + return len(dAtA) - i, nil +} +func (m *StringRules_Ipv6Prefix) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Ipv6Prefix) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6Prefix { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf8 + return len(dAtA) - i, nil +} +func (m *StringRules_HostAndPort) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_HostAndPort) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.HostAndPort { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x80 + return len(dAtA) - i, nil +} +func (m *StringRules_Tuuid) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *StringRules_Tuuid) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Tuuid { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x88 + return len(dAtA) - i, nil +} +func (m *BytesRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BytesRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BytesRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Example[iNdEx]) + copy(dAtA[i:], m.Example[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Example[iNdEx]))) + i-- + dAtA[i] = 0x72 + } + } + if m.Len != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Len)) + i-- + dAtA[i] = 0x68 + } + if msg, ok := m.WellKnown.(*BytesRules_Ipv6); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*BytesRules_Ipv4); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.WellKnown.(*BytesRules_Ip); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.NotIn[iNdEx]) + copy(dAtA[i:], m.NotIn[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NotIn[iNdEx]))) + i-- + dAtA[i] = 0x4a + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.In[iNdEx]) + copy(dAtA[i:], m.In[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.In[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if m.Contains != nil { + i -= len(m.Contains) + copy(dAtA[i:], m.Contains) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Contains))) + i-- + dAtA[i] = 0x3a + } + if m.Suffix != nil { + i -= len(m.Suffix) + copy(dAtA[i:], m.Suffix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Suffix))) + i-- + dAtA[i] = 0x32 + } + if m.Prefix != nil { + i -= len(m.Prefix) + copy(dAtA[i:], m.Prefix) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Prefix))) + i-- + dAtA[i] = 0x2a + } + if m.Pattern != nil { + i -= len(*m.Pattern) + copy(dAtA[i:], *m.Pattern) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Pattern))) + i-- + dAtA[i] = 0x22 + } + if m.MaxLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxLen)) + i-- + dAtA[i] = 0x18 + } + if m.MinLen != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinLen)) + i-- + dAtA[i] = 0x10 + } + if m.Const != nil { + i -= len(m.Const) + copy(dAtA[i:], m.Const) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Const))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BytesRules_Ip) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BytesRules_Ip) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ip { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + return len(dAtA) - i, nil +} +func (m *BytesRules_Ipv4) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BytesRules_Ipv4) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv4 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x58 + return len(dAtA) - i, nil +} +func (m *BytesRules_Ipv6) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BytesRules_Ipv6) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Ipv6 { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + return len(dAtA) - i, nil +} +func (m *EnumRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EnumRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *EnumRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Example[iNdEx])) + i-- + dAtA[i] = 0x28 + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NotIn[iNdEx])) + i-- + dAtA[i] = 0x20 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.In[iNdEx])) + i-- + dAtA[i] = 0x18 + } + } + if m.DefinedOnly != nil { + i-- + if *m.DefinedOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Const != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Const)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RepeatedRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepeatedRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RepeatedRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Items != nil { + size, err := m.Items.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.Unique != nil { + i-- + if *m.Unique { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.MaxItems != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxItems)) + i-- + dAtA[i] = 0x10 + } + if m.MinItems != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinItems)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MapRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *MapRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Values != nil { + size, err := m.Values.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.Keys != nil { + size, err := m.Keys.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.MaxPairs != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MaxPairs)) + i-- + dAtA[i] = 0x10 + } + if m.MinPairs != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.MinPairs)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *AnyRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnyRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *AnyRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.NotIn[iNdEx]) + copy(dAtA[i:], m.NotIn[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NotIn[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.In[iNdEx]) + copy(dAtA[i:], m.In[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.In[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + return len(dAtA) - i, nil +} + +func (m *DurationRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DurationRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DurationRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*durationpb1.Duration)(m.Example[iNdEx]).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + } + if len(m.NotIn) > 0 { + for iNdEx := len(m.NotIn) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*durationpb1.Duration)(m.NotIn[iNdEx]).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + } + if len(m.In) > 0 { + for iNdEx := len(m.In) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*durationpb1.Duration)(m.In[iNdEx]).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + } + if msg, ok := m.GreaterThan.(*DurationRules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*DurationRules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*DurationRules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*DurationRules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + size, err := (*durationpb1.Duration)(m.Const).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *DurationRules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DurationRules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lt != nil { + size, err := (*durationpb1.Duration)(m.Lt).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *DurationRules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DurationRules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lte != nil { + size, err := (*durationpb1.Duration)(m.Lte).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *DurationRules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DurationRules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gt != nil { + size, err := (*durationpb1.Duration)(m.Gt).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *DurationRules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DurationRules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gte != nil { + size, err := (*durationpb1.Duration)(m.Gte).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *TimestampRules) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TimestampRules) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampRules) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Example) > 0 { + for iNdEx := len(m.Example) - 1; iNdEx >= 0; iNdEx-- { + size, err := (*timestamppb1.Timestamp)(m.Example[iNdEx]).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + } + if m.Within != nil { + size, err := (*durationpb1.Duration)(m.Within).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if msg, ok := m.GreaterThan.(*TimestampRules_GtNow); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*TimestampRules_LtNow); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*TimestampRules_Gte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.GreaterThan.(*TimestampRules_Gt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*TimestampRules_Lte); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.LessThan.(*TimestampRules_Lt); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Const != nil { + size, err := (*timestamppb1.Timestamp)(m.Const).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *TimestampRules_Lt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampRules_Lt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lt != nil { + size, err := (*timestamppb1.Timestamp)(m.Lt).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_Lte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampRules_Lte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lte != nil { + size, err := (*timestamppb1.Timestamp)(m.Lte).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_Gt) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampRules_Gt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gt != nil { + size, err := (*timestamppb1.Timestamp)(m.Gt).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_Gte) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampRules_Gte) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Gte != nil { + size, err := (*timestamppb1.Timestamp)(m.Gte).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *TimestampRules_LtNow) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampRules_LtNow) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.LtNow { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + return len(dAtA) - i, nil +} +func (m *TimestampRules_GtNow) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampRules_GtNow) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.GtNow { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + return len(dAtA) - i, nil +} +func (m *Violations) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Violations) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Violations) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Violations) > 0 { + for iNdEx := len(m.Violations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Violations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Violation) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Violation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Violation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Rule != nil { + size, err := m.Rule.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.Field != nil { + size, err := m.Field.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.ForKey != nil { + i-- + if *m.ForKey { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.Message != nil { + i -= len(*m.Message) + copy(dAtA[i:], *m.Message) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Message))) + i-- + dAtA[i] = 0x1a + } + if m.RuleId != nil { + i -= len(*m.RuleId) + copy(dAtA[i:], *m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleId))) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *FieldPath) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldPath) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldPath) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Elements) > 0 { + for iNdEx := len(m.Elements) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Elements[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FieldPathElement) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldPathElement) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldPathElement) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Subscript.(*FieldPathElement_StringKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Subscript.(*FieldPathElement_UintKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Subscript.(*FieldPathElement_IntKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Subscript.(*FieldPathElement_BoolKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Subscript.(*FieldPathElement_Index); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.ValueType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.ValueType)) + i-- + dAtA[i] = 0x28 + } + if m.KeyType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.KeyType)) + i-- + dAtA[i] = 0x20 + } + if m.FieldType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.FieldType)) + i-- + dAtA[i] = 0x18 + } + if m.FieldName != nil { + i -= len(*m.FieldName) + copy(dAtA[i:], *m.FieldName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.FieldName))) + i-- + dAtA[i] = 0x12 + } + if m.FieldNumber != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.FieldNumber)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *FieldPathElement_Index) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldPathElement_Index) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x30 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_BoolKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldPathElement_BoolKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.BoolKey { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_IntKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldPathElement_IntKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.IntKey)) + i-- + dAtA[i] = 0x40 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_UintKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldPathElement_UintKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.UintKey)) + i-- + dAtA[i] = 0x48 + return len(dAtA) - i, nil +} +func (m *FieldPathElement_StringKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FieldPathElement_StringKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.StringKey) + copy(dAtA[i:], m.StringKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.StringKey))) + i-- + dAtA[i] = 0x52 + return len(dAtA) - i, nil +} +func (m *Rule) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != nil { + l = len(*m.Id) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Message != nil { + l = len(*m.Message) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Expression != nil { + l = len(*m.Expression) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *MessageRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Cel) > 0 { + for _, e := range m.Cel { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.Oneof) > 0 { + for _, e := range m.Oneof { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *MessageOneofRule) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Fields) > 0 { + for _, s := range m.Fields { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.Required != nil { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *OneofRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Required != nil { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *FieldRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Type.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.Cel) > 0 { + for _, e := range m.Cel { + l = e.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.Required != nil { + n += 3 + } + if m.Ignore != nil { + n += 2 + protohelpers.SizeOfVarint(uint64(*m.Ignore)) + } + n += len(m.unknownFields) + return n +} + +func (m *FieldRules_Float) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Float != nil { + l = m.Float.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Double) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Double != nil { + l = m.Double.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Int32) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Int32 != nil { + l = m.Int32.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Int64) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Int64 != nil { + l = m.Int64.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Uint32) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Uint32 != nil { + l = m.Uint32.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Uint64) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Uint64 != nil { + l = m.Uint64.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Sint32) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Sint32 != nil { + l = m.Sint32.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Sint64) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Sint64 != nil { + l = m.Sint64.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Fixed32) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Fixed32 != nil { + l = m.Fixed32.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Fixed64) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Fixed64 != nil { + l = m.Fixed64.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Sfixed32) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Sfixed32 != nil { + l = m.Sfixed32.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Sfixed64) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Sfixed64 != nil { + l = m.Sfixed64.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Bool) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Bool != nil { + l = m.Bool.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_String_) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.String_ != nil { + l = m.String_.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Bytes) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Bytes != nil { + l = m.Bytes.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Enum) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Enum != nil { + l = m.Enum.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Repeated) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Repeated != nil { + l = m.Repeated.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Map) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Map != nil { + l = m.Map.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Any) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Any != nil { + l = m.Any.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Duration) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Duration != nil { + l = m.Duration.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FieldRules_Timestamp) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *PredefinedRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Cel) > 0 { + for _, e := range m.Cel { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *FloatRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 5 + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + n += 5 * len(m.In) + } + if len(m.NotIn) > 0 { + n += 5 * len(m.NotIn) + } + if m.Finite != nil { + n += 2 + } + if len(m.Example) > 0 { + n += 5 * len(m.Example) + } + n += len(m.unknownFields) + return n +} + +func (m *FloatRules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *FloatRules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *FloatRules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *FloatRules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *DoubleRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 9 + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + n += 9 * len(m.In) + } + if len(m.NotIn) > 0 { + n += 9 * len(m.NotIn) + } + if m.Finite != nil { + n += 2 + } + if len(m.Example) > 0 { + n += 9 * len(m.Example) + } + n += len(m.unknownFields) + return n +} + +func (m *DoubleRules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *DoubleRules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *DoubleRules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *DoubleRules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *Int32Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Const)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + for _, e := range m.In { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *Int32Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lt)) + return n +} +func (m *Int32Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lte)) + return n +} +func (m *Int32Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gt)) + return n +} +func (m *Int32Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gte)) + return n +} +func (m *Int64Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Const)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + for _, e := range m.In { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *Int64Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lt)) + return n +} +func (m *Int64Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lte)) + return n +} +func (m *Int64Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gt)) + return n +} +func (m *Int64Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gte)) + return n +} +func (m *UInt32Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Const)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + for _, e := range m.In { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *UInt32Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lt)) + return n +} +func (m *UInt32Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lte)) + return n +} +func (m *UInt32Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gt)) + return n +} +func (m *UInt32Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gte)) + return n +} +func (m *UInt64Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Const)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + for _, e := range m.In { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *UInt64Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lt)) + return n +} +func (m *UInt64Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Lte)) + return n +} +func (m *UInt64Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gt)) + return n +} +func (m *UInt64Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Gte)) + return n +} +func (m *SInt32Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 1 + protohelpers.SizeOfZigzag(uint64(*m.Const)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + for _, e := range m.In { + n += 1 + protohelpers.SizeOfZigzag(uint64(e)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + n += 1 + protohelpers.SizeOfZigzag(uint64(e)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + n += 1 + protohelpers.SizeOfZigzag(uint64(e)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *SInt32Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Lt)) + return n +} +func (m *SInt32Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Lte)) + return n +} +func (m *SInt32Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Gt)) + return n +} +func (m *SInt32Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Gte)) + return n +} +func (m *SInt64Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 1 + protohelpers.SizeOfZigzag(uint64(*m.Const)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + for _, e := range m.In { + n += 1 + protohelpers.SizeOfZigzag(uint64(e)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + n += 1 + protohelpers.SizeOfZigzag(uint64(e)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + n += 1 + protohelpers.SizeOfZigzag(uint64(e)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *SInt64Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Lt)) + return n +} +func (m *SInt64Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Lte)) + return n +} +func (m *SInt64Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Gt)) + return n +} +func (m *SInt64Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfZigzag(uint64(m.Gte)) + return n +} +func (m *Fixed32Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 5 + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + n += 5 * len(m.In) + } + if len(m.NotIn) > 0 { + n += 5 * len(m.NotIn) + } + if len(m.Example) > 0 { + n += 5 * len(m.Example) + } + n += len(m.unknownFields) + return n +} + +func (m *Fixed32Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *Fixed32Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *Fixed32Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *Fixed32Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *Fixed64Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 9 + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + n += 9 * len(m.In) + } + if len(m.NotIn) > 0 { + n += 9 * len(m.NotIn) + } + if len(m.Example) > 0 { + n += 9 * len(m.Example) + } + n += len(m.unknownFields) + return n +} + +func (m *Fixed64Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *Fixed64Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *Fixed64Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *Fixed64Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *SFixed32Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 5 + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + n += 5 * len(m.In) + } + if len(m.NotIn) > 0 { + n += 5 * len(m.NotIn) + } + if len(m.Example) > 0 { + n += 5 * len(m.Example) + } + n += len(m.unknownFields) + return n +} + +func (m *SFixed32Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *SFixed32Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *SFixed32Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *SFixed32Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 5 + return n +} +func (m *SFixed64Rules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 9 + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + n += 9 * len(m.In) + } + if len(m.NotIn) > 0 { + n += 9 * len(m.NotIn) + } + if len(m.Example) > 0 { + n += 9 * len(m.Example) + } + n += len(m.unknownFields) + return n +} + +func (m *SFixed64Rules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *SFixed64Rules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *SFixed64Rules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *SFixed64Rules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *BoolRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 2 + } + if len(m.Example) > 0 { + n += 2 * len(m.Example) + } + n += len(m.unknownFields) + return n +} + +func (m *StringRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + l = len(*m.Const) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.MinLen != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MinLen)) + } + if m.MaxLen != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MaxLen)) + } + if m.MinBytes != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MinBytes)) + } + if m.MaxBytes != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MaxBytes)) + } + if m.Pattern != nil { + l = len(*m.Pattern) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Prefix != nil { + l = len(*m.Prefix) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Suffix != nil { + l = len(*m.Suffix) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Contains != nil { + l = len(*m.Contains) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.In) > 0 { + for _, s := range m.In { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.NotIn) > 0 { + for _, s := range m.NotIn { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if vtmsg, ok := m.WellKnown.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if m.Len != nil { + n += 2 + protohelpers.SizeOfVarint(uint64(*m.Len)) + } + if m.LenBytes != nil { + n += 2 + protohelpers.SizeOfVarint(uint64(*m.LenBytes)) + } + if m.NotContains != nil { + l = len(*m.NotContains) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Strict != nil { + n += 3 + } + if len(m.Example) > 0 { + for _, s := range m.Example { + l = len(s) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *StringRules_Email) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *StringRules_Hostname) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *StringRules_Ip) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *StringRules_Ipv4) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *StringRules_Ipv6) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Uri) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_UriRef) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Address) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Uuid) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_WellKnownRegex) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + protohelpers.SizeOfVarint(uint64(m.WellKnownRegex)) + return n +} +func (m *StringRules_IpWithPrefixlen) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Ipv4WithPrefixlen) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Ipv6WithPrefixlen) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_IpPrefix) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Ipv4Prefix) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Ipv6Prefix) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_HostAndPort) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *StringRules_Tuuid) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 3 + return n +} +func (m *BytesRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + l = len(m.Const) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.MinLen != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MinLen)) + } + if m.MaxLen != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MaxLen)) + } + if m.Pattern != nil { + l = len(*m.Pattern) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Prefix != nil { + l = len(m.Prefix) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Suffix != nil { + l = len(m.Suffix) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Contains != nil { + l = len(m.Contains) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.In) > 0 { + for _, b := range m.In { + l = len(b) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.NotIn) > 0 { + for _, b := range m.NotIn { + l = len(b) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if vtmsg, ok := m.WellKnown.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if m.Len != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Len)) + } + if len(m.Example) > 0 { + for _, b := range m.Example { + l = len(b) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *BytesRules_Ip) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *BytesRules_Ipv4) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *BytesRules_Ipv6) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *EnumRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Const)) + } + if m.DefinedOnly != nil { + n += 2 + } + if len(m.In) > 0 { + for _, e := range m.In { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + n += 1 + protohelpers.SizeOfVarint(uint64(e)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *RepeatedRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MinItems != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MinItems)) + } + if m.MaxItems != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MaxItems)) + } + if m.Unique != nil { + n += 2 + } + if m.Items != nil { + l = m.Items.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *MapRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MinPairs != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MinPairs)) + } + if m.MaxPairs != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.MaxPairs)) + } + if m.Keys != nil { + l = m.Keys.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Values != nil { + l = m.Values.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *AnyRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.In) > 0 { + for _, s := range m.In { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.NotIn) > 0 { + for _, s := range m.NotIn { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *DurationRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + l = (*durationpb1.Duration)(m.Const).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.In) > 0 { + for _, e := range m.In { + l = (*durationpb1.Duration)(e).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.NotIn) > 0 { + for _, e := range m.NotIn { + l = (*durationpb1.Duration)(e).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.Example) > 0 { + for _, e := range m.Example { + l = (*durationpb1.Duration)(e).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *DurationRules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Lt != nil { + l = (*durationpb1.Duration)(m.Lt).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *DurationRules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Lte != nil { + l = (*durationpb1.Duration)(m.Lte).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *DurationRules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Gt != nil { + l = (*durationpb1.Duration)(m.Gt).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *DurationRules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Gte != nil { + l = (*durationpb1.Duration)(m.Gte).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *TimestampRules) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Const != nil { + l = (*timestamppb1.Timestamp)(m.Const).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.LessThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if vtmsg, ok := m.GreaterThan.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if m.Within != nil { + l = (*durationpb1.Duration)(m.Within).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.Example) > 0 { + for _, e := range m.Example { + l = (*timestamppb1.Timestamp)(e).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *TimestampRules_Lt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Lt != nil { + l = (*timestamppb1.Timestamp)(m.Lt).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *TimestampRules_Lte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Lte != nil { + l = (*timestamppb1.Timestamp)(m.Lte).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *TimestampRules_Gt) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Gt != nil { + l = (*timestamppb1.Timestamp)(m.Gt).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *TimestampRules_Gte) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Gte != nil { + l = (*timestamppb1.Timestamp)(m.Gte).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *TimestampRules_LtNow) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *TimestampRules_GtNow) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *Violations) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Violations) > 0 { + for _, e := range m.Violations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *Violation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RuleId != nil { + l = len(*m.RuleId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Message != nil { + l = len(*m.Message) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ForKey != nil { + n += 2 + } + if m.Field != nil { + l = m.Field.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Rule != nil { + l = m.Rule.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FieldPath) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Elements) > 0 { + for _, e := range m.Elements { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *FieldPathElement) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FieldNumber != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.FieldNumber)) + } + if m.FieldName != nil { + l = len(*m.FieldName) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.FieldType != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.FieldType)) + } + if m.KeyType != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.KeyType)) + } + if m.ValueType != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.ValueType)) + } + if vtmsg, ok := m.Subscript.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *FieldPathElement_Index) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.Index)) + return n +} +func (m *FieldPathElement_BoolKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *FieldPathElement_IntKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.IntKey)) + return n +} +func (m *FieldPathElement_UintKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + protohelpers.SizeOfVarint(uint64(m.UintKey)) + return n +} +func (m *FieldPathElement_StringKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.StringKey) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *Rule) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Rule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Id = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Message = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Expression = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MessageRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MessageRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MessageRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cel = append(m.Cel, &Rule{}) + if err := m.Cel[len(m.Cel)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Oneof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Oneof = append(m.Oneof, &MessageOneofRule{}) + if err := m.Oneof[len(m.Oneof)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MessageOneofRule) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MessageOneofRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MessageOneofRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fields", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Fields = append(m.Fields, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Required = &b + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Required = &b + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FieldRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Float", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Float); ok { + if err := oneof.Float.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &FloatRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Float{Float: v} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Double", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Double); ok { + if err := oneof.Double.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DoubleRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Double{Double: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Int32); ok { + if err := oneof.Int32.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Int32Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Int32{Int32: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Int64); ok { + if err := oneof.Int64.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Int64Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Int64{Int64: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uint32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Uint32); ok { + if err := oneof.Uint32.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &UInt32Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Uint32{Uint32: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uint64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Uint64); ok { + if err := oneof.Uint64.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &UInt64Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Uint64{Uint64: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sint32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sint32); ok { + if err := oneof.Sint32.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SInt32Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sint32{Sint32: v} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sint64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sint64); ok { + if err := oneof.Sint64.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SInt64Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sint64{Sint64: v} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fixed32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Fixed32); ok { + if err := oneof.Fixed32.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Fixed32Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Fixed32{Fixed32: v} + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fixed64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Fixed64); ok { + if err := oneof.Fixed64.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Fixed64Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Fixed64{Fixed64: v} + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sfixed32); ok { + if err := oneof.Sfixed32.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SFixed32Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sfixed32{Sfixed32: v} + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sfixed64); ok { + if err := oneof.Sfixed64.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SFixed64Rules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sfixed64{Sfixed64: v} + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Bool); ok { + if err := oneof.Bool.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &BoolRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Bool{Bool: v} + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_String_); ok { + if err := oneof.String_.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &StringRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_String_{String_: v} + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Bytes); ok { + if err := oneof.Bytes.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &BytesRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Bytes{Bytes: v} + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Enum", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Enum); ok { + if err := oneof.Enum.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EnumRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Enum{Enum: v} + } + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Repeated", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Repeated); ok { + if err := oneof.Repeated.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RepeatedRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Repeated{Repeated: v} + } + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Map); ok { + if err := oneof.Map.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &MapRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Map{Map: v} + } + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Any", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Any); ok { + if err := oneof.Any.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnyRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Any{Any: v} + } + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Duration); ok { + if err := oneof.Duration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DurationRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Duration{Duration: v} + } + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Timestamp); ok { + if err := oneof.Timestamp.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &TimestampRules{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Timestamp{Timestamp: v} + } + iNdEx = postIndex + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cel = append(m.Cel, &Rule{}) + if err := m.Cel[len(m.Cel)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 25: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Required = &b + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ignore", wireType) + } + var v Ignore + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= Ignore(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Ignore = &v + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PredefinedRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PredefinedRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PredefinedRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cel = append(m.Cel, &Rule{}) + if err := m.Cel[len(m.Cel)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FloatRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FloatRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FloatRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.Const = &v2 + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &FloatRules_Lt{Lt: float32(math.Float32frombits(v))} + case 3: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &FloatRules_Lte{Lte: float32(math.Float32frombits(v))} + case 4: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &FloatRules_Gt{Gt: float32(math.Float32frombits(v))} + case 5: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &FloatRules_Gte{Gte: float32(math.Float32frombits(v))} + case 6: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.In = append(m.In, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]float32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.In = append(m.In, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.NotIn = append(m.NotIn, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]float32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.NotIn = append(m.NotIn, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Finite", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Finite = &b + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.Example = append(m.Example, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]float32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.Example = append(m.Example, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DoubleRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DoubleRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DoubleRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Const = &v2 + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &DoubleRules_Lt{Lt: float64(math.Float64frombits(v))} + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &DoubleRules_Lte{Lte: float64(math.Float64frombits(v))} + case 4: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &DoubleRules_Gt{Gt: float64(math.Float64frombits(v))} + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &DoubleRules_Gte{Gte: float64(math.Float64frombits(v))} + case 6: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.In = append(m.In, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.In = append(m.In, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.NotIn = append(m.NotIn, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.NotIn = append(m.NotIn, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Finite", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Finite = &b + case 9: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Example = append(m.Example, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Example = append(m.Example, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Int32Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Int32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Int32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int32Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int32Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int32Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int32Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Int64Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Int64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Int64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int64Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int64Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int64Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int64Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 9: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UInt32Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UInt32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UInt32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt32Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt32Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt32Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt32Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UInt64Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UInt64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UInt64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt64Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt64Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt64Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt64Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SInt32Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SInt32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SInt32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.LessThan = &SInt32Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.LessThan = &SInt32Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.GreaterThan = &SInt32Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.GreaterThan = &SInt32Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SInt64Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SInt64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SInt64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + v2 := int64(v) + m.Const = &v2 + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.LessThan = &SInt64Rules_Lt{Lt: int64(v)} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.LessThan = &SInt64Rules_Lte{Lte: int64(v)} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.GreaterThan = &SInt64Rules_Gt{Gt: int64(v)} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.GreaterThan = &SInt64Rules_Gte{Gte: int64(v)} + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.In = append(m.In, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.In = append(m.In, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.NotIn = append(m.NotIn, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.NotIn = append(m.NotIn, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Example = append(m.Example, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Example = append(m.Example, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Fixed32Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Fixed32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Fixed32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Const = &v + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &Fixed32Rules_Lt{Lt: v} + case 3: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &Fixed32Rules_Lte{Lte: v} + case 4: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &Fixed32Rules_Gt{Gt: v} + case 5: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &Fixed32Rules_Gte{Gte: v} + case 6: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Fixed64Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Fixed64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Fixed64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Const = &v + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &Fixed64Rules_Lt{Lt: v} + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &Fixed64Rules_Lte{Lte: v} + case 4: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &Fixed64Rules_Gt{Gt: v} + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &Fixed64Rules_Gte{Gte: v} + case 6: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SFixed32Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SFixed32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SFixed32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Const = &v + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &SFixed32Rules_Lt{Lt: v} + case 3: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &SFixed32Rules_Lte{Lte: v} + case 4: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &SFixed32Rules_Gt{Gt: v} + case 5: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &SFixed32Rules_Gte{Gte: v} + case 6: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SFixed64Rules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SFixed64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SFixed64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Const = &v + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &SFixed64Rules_Lt{Lt: v} + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &SFixed64Rules_Lte{Lte: v} + case 4: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &SFixed64Rules_Gt{Gt: v} + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &SFixed64Rules_Gte{Gte: v} + case 6: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BoolRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BoolRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BoolRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Const = &b + case 2: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]bool, 0, elementCount) + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StringRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StringRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StringRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Const = &s + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinLen = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxLen = &v + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinBytes", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinBytes = &v + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxBytes", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxBytes = &v + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pattern", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Pattern = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Prefix = &s + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Suffix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Suffix = &s + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Contains", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Contains = &s + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.In = append(m.In, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NotIn = append(m.NotIn, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Email", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Email{Email: b} + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Hostname", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Hostname{Hostname: b} + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ip{Ip: b} + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv4{Ipv4: b} + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv6{Ipv6: b} + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Uri", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Uri{Uri: b} + case 18: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UriRef", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_UriRef{UriRef: b} + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Len", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Len = &v + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LenBytes", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LenBytes = &v + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Address{Address: b} + case 22: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Uuid", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Uuid{Uuid: b} + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotContains", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.NotContains = &s + iNdEx = postIndex + case 24: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field WellKnownRegex", wireType) + } + var v KnownRegex + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= KnownRegex(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.WellKnown = &StringRules_WellKnownRegex{WellKnownRegex: v} + case 25: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Strict", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Strict = &b + case 26: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IpWithPrefixlen", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_IpWithPrefixlen{IpWithPrefixlen: b} + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4WithPrefixlen", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv4WithPrefixlen{Ipv4WithPrefixlen: b} + case 28: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6WithPrefixlen", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv6WithPrefixlen{Ipv6WithPrefixlen: b} + case 29: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IpPrefix", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_IpPrefix{IpPrefix: b} + case 30: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4Prefix", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv4Prefix{Ipv4Prefix: b} + case 31: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6Prefix", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv6Prefix{Ipv6Prefix: b} + case 32: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HostAndPort", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_HostAndPort{HostAndPort: b} + case 33: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Tuuid", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Tuuid{Tuuid: b} + case 34: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Example = append(m.Example, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BytesRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BytesRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BytesRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Const = append(m.Const[:0], dAtA[iNdEx:postIndex]...) + if m.Const == nil { + m.Const = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinLen = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxLen = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pattern", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Pattern = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Prefix = append(m.Prefix[:0], dAtA[iNdEx:postIndex]...) + if m.Prefix == nil { + m.Prefix = []byte{} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Suffix", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Suffix = append(m.Suffix[:0], dAtA[iNdEx:postIndex]...) + if m.Suffix == nil { + m.Suffix = []byte{} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Contains", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Contains = append(m.Contains[:0], dAtA[iNdEx:postIndex]...) + if m.Contains == nil { + m.Contains = []byte{} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.In = append(m.In, make([]byte, postIndex-iNdEx)) + copy(m.In[len(m.In)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NotIn = append(m.NotIn, make([]byte, postIndex-iNdEx)) + copy(m.NotIn[len(m.NotIn)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &BytesRules_Ip{Ip: b} + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &BytesRules_Ipv4{Ipv4: b} + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &BytesRules_Ipv6{Ipv6: b} + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Len", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Len = &v + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Example = append(m.Example, make([]byte, postIndex-iNdEx)) + copy(m.Example[len(m.Example)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EnumRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EnumRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EnumRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DefinedOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.DefinedOnly = &b + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 4: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 5: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepeatedRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepeatedRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepeatedRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinItems", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinItems = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxItems", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxItems = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Unique", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Unique = &b + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Items == nil { + m.Items = &FieldRules{} + } + if err := m.Items.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinPairs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinPairs = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxPairs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxPairs = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Keys == nil { + m.Keys = &FieldRules{} + } + if err := m.Keys.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Values == nil { + m.Values = &FieldRules{} + } + if err := m.Values.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnyRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnyRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnyRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.In = append(m.In, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NotIn = append(m.NotIn, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DurationRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DurationRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DurationRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Const == nil { + m.Const = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Const).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*DurationRules_Lt); ok { + if err := (*durationpb1.Duration)(oneof.Lt).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &DurationRules_Lt{Lt: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*DurationRules_Lte); ok { + if err := (*durationpb1.Duration)(oneof.Lte).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &DurationRules_Lte{Lte: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*DurationRules_Gt); ok { + if err := (*durationpb1.Duration)(oneof.Gt).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &DurationRules_Gt{Gt: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*DurationRules_Gte); ok { + if err := (*durationpb1.Duration)(oneof.Gte).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &DurationRules_Gte{Gte: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.In = append(m.In, &durationpb.Duration{}) + if err := (*durationpb1.Duration)(m.In[len(m.In)-1]).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NotIn = append(m.NotIn, &durationpb.Duration{}) + if err := (*durationpb1.Duration)(m.NotIn[len(m.NotIn)-1]).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Example = append(m.Example, &durationpb.Duration{}) + if err := (*durationpb1.Duration)(m.Example[len(m.Example)-1]).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TimestampRules) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TimestampRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TimestampRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Const == nil { + m.Const = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.Const).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*TimestampRules_Lt); ok { + if err := (*timestamppb1.Timestamp)(oneof.Lt).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &TimestampRules_Lt{Lt: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*TimestampRules_Lte); ok { + if err := (*timestamppb1.Timestamp)(oneof.Lte).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &TimestampRules_Lte{Lte: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*TimestampRules_Gt); ok { + if err := (*timestamppb1.Timestamp)(oneof.Gt).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &TimestampRules_Gt{Gt: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*TimestampRules_Gte); ok { + if err := (*timestamppb1.Timestamp)(oneof.Gte).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &TimestampRules_Gte{Gte: v} + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LtNow", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.LessThan = &TimestampRules_LtNow{LtNow: b} + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GtNow", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.GreaterThan = &TimestampRules_GtNow{GtNow: b} + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Within", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Within == nil { + m.Within = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Within).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Example = append(m.Example, ×tamppb.Timestamp{}) + if err := (*timestamppb1.Timestamp)(m.Example[len(m.Example)-1]).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Violations) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Violations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Violations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Violations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Violations = append(m.Violations, &Violation{}) + if err := m.Violations[len(m.Violations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Violation) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Violation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Violation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.RuleId = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Message = &s + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ForKey", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.ForKey = &b + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Field == nil { + m.Field = &FieldPath{} + } + if err := m.Field.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Rule == nil { + m.Rule = &FieldPath{} + } + if err := m.Rule.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FieldPath) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldPath: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldPath: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Elements", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Elements = append(m.Elements, &FieldPathElement{}) + if err := m.Elements[len(m.Elements)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FieldPathElement) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldPathElement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldPathElement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldNumber", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldNumber = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.FieldName = &s + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldType", wireType) + } + var v descriptorpb.FieldDescriptorProto_Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= descriptorpb.FieldDescriptorProto_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldType = &v + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyType", wireType) + } + var v descriptorpb.FieldDescriptorProto_Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= descriptorpb.FieldDescriptorProto_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.KeyType = &v + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueType", wireType) + } + var v descriptorpb.FieldDescriptorProto_Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= descriptorpb.FieldDescriptorProto_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ValueType = &v + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Subscript = &FieldPathElement_Index{Index: v} + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BoolKey", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Subscript = &FieldPathElement_BoolKey{BoolKey: b} + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IntKey", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Subscript = &FieldPathElement_IntKey{IntKey: v} + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UintKey", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Subscript = &FieldPathElement_UintKey{UintKey: v} + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Subscript = &FieldPathElement_StringKey{StringKey: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Rule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Id = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Message = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Expression = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MessageRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MessageRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MessageRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cel = append(m.Cel, &Rule{}) + if err := m.Cel[len(m.Cel)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Oneof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Oneof = append(m.Oneof, &MessageOneofRule{}) + if err := m.Oneof[len(m.Oneof)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MessageOneofRule) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MessageOneofRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MessageOneofRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fields", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Fields = append(m.Fields, stringValue) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Required = &b + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Required = &b + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FieldRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Float", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Float); ok { + if err := oneof.Float.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &FloatRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Float{Float: v} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Double", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Double); ok { + if err := oneof.Double.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DoubleRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Double{Double: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Int32); ok { + if err := oneof.Int32.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Int32Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Int32{Int32: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Int64); ok { + if err := oneof.Int64.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Int64Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Int64{Int64: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uint32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Uint32); ok { + if err := oneof.Uint32.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &UInt32Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Uint32{Uint32: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uint64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Uint64); ok { + if err := oneof.Uint64.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &UInt64Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Uint64{Uint64: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sint32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sint32); ok { + if err := oneof.Sint32.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SInt32Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sint32{Sint32: v} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sint64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sint64); ok { + if err := oneof.Sint64.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SInt64Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sint64{Sint64: v} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fixed32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Fixed32); ok { + if err := oneof.Fixed32.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Fixed32Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Fixed32{Fixed32: v} + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fixed64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Fixed64); ok { + if err := oneof.Fixed64.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Fixed64Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Fixed64{Fixed64: v} + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sfixed32); ok { + if err := oneof.Sfixed32.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SFixed32Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sfixed32{Sfixed32: v} + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Sfixed64); ok { + if err := oneof.Sfixed64.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SFixed64Rules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Sfixed64{Sfixed64: v} + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Bool); ok { + if err := oneof.Bool.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &BoolRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Bool{Bool: v} + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_String_); ok { + if err := oneof.String_.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &StringRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_String_{String_: v} + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Bytes); ok { + if err := oneof.Bytes.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &BytesRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Bytes{Bytes: v} + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Enum", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Enum); ok { + if err := oneof.Enum.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EnumRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Enum{Enum: v} + } + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Repeated", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Repeated); ok { + if err := oneof.Repeated.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RepeatedRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Repeated{Repeated: v} + } + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Map); ok { + if err := oneof.Map.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &MapRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Map{Map: v} + } + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Any", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Any); ok { + if err := oneof.Any.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnyRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Any{Any: v} + } + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Duration); ok { + if err := oneof.Duration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DurationRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Duration{Duration: v} + } + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Type.(*FieldRules_Timestamp); ok { + if err := oneof.Timestamp.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &TimestampRules{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &FieldRules_Timestamp{Timestamp: v} + } + iNdEx = postIndex + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cel = append(m.Cel, &Rule{}) + if err := m.Cel[len(m.Cel)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 25: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Required = &b + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ignore", wireType) + } + var v Ignore + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= Ignore(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Ignore = &v + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PredefinedRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PredefinedRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PredefinedRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cel = append(m.Cel, &Rule{}) + if err := m.Cel[len(m.Cel)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FloatRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FloatRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FloatRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.Const = &v2 + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &FloatRules_Lt{Lt: float32(math.Float32frombits(v))} + case 3: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &FloatRules_Lte{Lte: float32(math.Float32frombits(v))} + case 4: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &FloatRules_Gt{Gt: float32(math.Float32frombits(v))} + case 5: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &FloatRules_Gte{Gte: float32(math.Float32frombits(v))} + case 6: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.In = append(m.In, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]float32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.In = append(m.In, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.NotIn = append(m.NotIn, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]float32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.NotIn = append(m.NotIn, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Finite", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Finite = &b + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.Example = append(m.Example, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]float32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + v2 := float32(math.Float32frombits(v)) + m.Example = append(m.Example, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DoubleRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DoubleRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DoubleRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Const = &v2 + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &DoubleRules_Lt{Lt: float64(math.Float64frombits(v))} + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &DoubleRules_Lte{Lte: float64(math.Float64frombits(v))} + case 4: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &DoubleRules_Gt{Gt: float64(math.Float64frombits(v))} + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &DoubleRules_Gte{Gte: float64(math.Float64frombits(v))} + case 6: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.In = append(m.In, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.In = append(m.In, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.NotIn = append(m.NotIn, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.NotIn = append(m.NotIn, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Finite", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Finite = &b + case 9: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Example = append(m.Example, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Example = append(m.Example, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Int32Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Int32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Int32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int32Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int32Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int32Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int32Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Int64Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Int64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Int64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int64Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &Int64Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int64Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &Int64Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 9: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UInt32Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UInt32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UInt32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt32Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt32Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt32Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt32Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UInt64Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UInt64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UInt64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt64Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LessThan = &UInt64Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt64Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.GreaterThan = &UInt64Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SInt32Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SInt32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SInt32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.LessThan = &SInt32Rules_Lt{Lt: v} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.LessThan = &SInt32Rules_Lte{Lte: v} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.GreaterThan = &SInt32Rules_Gt{Gt: v} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.GreaterThan = &SInt32Rules_Gte{Gte: v} + case 6: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SInt64Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SInt64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SInt64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + v2 := int64(v) + m.Const = &v2 + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.LessThan = &SInt64Rules_Lt{Lt: int64(v)} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.LessThan = &SInt64Rules_Lte{Lte: int64(v)} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.GreaterThan = &SInt64Rules_Gt{Gt: int64(v)} + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.GreaterThan = &SInt64Rules_Gte{Gte: int64(v)} + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.In = append(m.In, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.In = append(m.In, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.NotIn = append(m.NotIn, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.NotIn = append(m.NotIn, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Example = append(m.Example, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Example = append(m.Example, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Fixed32Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Fixed32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Fixed32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Const = &v + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &Fixed32Rules_Lt{Lt: v} + case 3: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &Fixed32Rules_Lte{Lte: v} + case 4: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &Fixed32Rules_Gt{Gt: v} + case 5: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &Fixed32Rules_Gte{Gte: v} + case 6: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Fixed64Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Fixed64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Fixed64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Const = &v + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &Fixed64Rules_Lt{Lt: v} + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &Fixed64Rules_Lte{Lte: v} + case 4: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &Fixed64Rules_Gt{Gt: v} + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &Fixed64Rules_Gte{Gte: v} + case 6: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SFixed32Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SFixed32Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SFixed32Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Const = &v + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &SFixed32Rules_Lt{Lt: v} + case 3: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.LessThan = &SFixed32Rules_Lte{Lte: v} + case 4: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &SFixed32Rules_Gt{Gt: v} + case 5: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.GreaterThan = &SFixed32Rules_Gte{Gte: v} + case 6: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 4 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SFixed64Rules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SFixed64Rules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SFixed64Rules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Const = &v + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &SFixed64Rules_Lt{Lt: v} + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.LessThan = &SFixed64Rules_Lte{Lte: v} + case 4: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &SFixed64Rules_Gt{Gt: v} + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.GreaterThan = &SFixed64Rules_Gte{Gte: v} + case 6: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 7: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 8: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BoolRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BoolRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BoolRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Const = &b + case 2: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]bool, 0, elementCount) + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StringRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StringRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StringRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Const = &s + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinLen = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxLen = &v + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinBytes", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinBytes = &v + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxBytes", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxBytes = &v + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pattern", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Pattern = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Prefix = &s + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Suffix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Suffix = &s + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Contains", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Contains = &s + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.In = append(m.In, stringValue) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NotIn = append(m.NotIn, stringValue) + iNdEx = postIndex + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Email", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Email{Email: b} + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Hostname", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Hostname{Hostname: b} + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ip{Ip: b} + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv4{Ipv4: b} + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv6{Ipv6: b} + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Uri", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Uri{Uri: b} + case 18: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UriRef", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_UriRef{UriRef: b} + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Len", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Len = &v + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LenBytes", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.LenBytes = &v + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Address{Address: b} + case 22: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Uuid", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Uuid{Uuid: b} + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotContains", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.NotContains = &s + iNdEx = postIndex + case 24: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field WellKnownRegex", wireType) + } + var v KnownRegex + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= KnownRegex(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.WellKnown = &StringRules_WellKnownRegex{WellKnownRegex: v} + case 25: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Strict", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Strict = &b + case 26: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IpWithPrefixlen", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_IpWithPrefixlen{IpWithPrefixlen: b} + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4WithPrefixlen", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv4WithPrefixlen{Ipv4WithPrefixlen: b} + case 28: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6WithPrefixlen", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv6WithPrefixlen{Ipv6WithPrefixlen: b} + case 29: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IpPrefix", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_IpPrefix{IpPrefix: b} + case 30: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4Prefix", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv4Prefix{Ipv4Prefix: b} + case 31: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6Prefix", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Ipv6Prefix{Ipv6Prefix: b} + case 32: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HostAndPort", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_HostAndPort{HostAndPort: b} + case 33: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Tuuid", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &StringRules_Tuuid{Tuuid: b} + case 34: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Example = append(m.Example, stringValue) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BytesRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BytesRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BytesRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Const = dAtA[iNdEx:postIndex] + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinLen = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxLen", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxLen = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pattern", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Pattern = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Prefix = dAtA[iNdEx:postIndex] + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Suffix", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Suffix = dAtA[iNdEx:postIndex] + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Contains", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Contains = dAtA[iNdEx:postIndex] + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.In = append(m.In, dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NotIn = append(m.NotIn, dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &BytesRules_Ip{Ip: b} + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv4", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &BytesRules_Ipv4{Ipv4: b} + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ipv6", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.WellKnown = &BytesRules_Ipv6{Ipv6: b} + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Len", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Len = &v + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Example = append(m.Example, dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EnumRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EnumRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EnumRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Const = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DefinedOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.DefinedOnly = &b + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.In) == 0 { + m.In = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.In = append(m.In, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + case 4: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.NotIn) == 0 { + m.NotIn = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NotIn = append(m.NotIn, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + case 5: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Example) == 0 { + m.Example = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Example = append(m.Example, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepeatedRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepeatedRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepeatedRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinItems", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinItems = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxItems", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxItems = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Unique", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Unique = &b + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Items == nil { + m.Items = &FieldRules{} + } + if err := m.Items.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinPairs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinPairs = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxPairs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxPairs = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Keys == nil { + m.Keys = &FieldRules{} + } + if err := m.Keys.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Values == nil { + m.Values = &FieldRules{} + } + if err := m.Values.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnyRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnyRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnyRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.In = append(m.In, stringValue) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NotIn = append(m.NotIn, stringValue) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DurationRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DurationRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DurationRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Const == nil { + m.Const = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Const).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*DurationRules_Lt); ok { + if err := (*durationpb1.Duration)(oneof.Lt).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &DurationRules_Lt{Lt: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*DurationRules_Lte); ok { + if err := (*durationpb1.Duration)(oneof.Lte).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &DurationRules_Lte{Lte: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*DurationRules_Gt); ok { + if err := (*durationpb1.Duration)(oneof.Gt).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &DurationRules_Gt{Gt: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*DurationRules_Gte); ok { + if err := (*durationpb1.Duration)(oneof.Gte).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &durationpb.Duration{} + if err := (*durationpb1.Duration)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &DurationRules_Gte{Gte: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field In", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.In = append(m.In, &durationpb.Duration{}) + if err := (*durationpb1.Duration)(m.In[len(m.In)-1]).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotIn", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NotIn = append(m.NotIn, &durationpb.Duration{}) + if err := (*durationpb1.Duration)(m.NotIn[len(m.NotIn)-1]).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Example = append(m.Example, &durationpb.Duration{}) + if err := (*durationpb1.Duration)(m.Example[len(m.Example)-1]).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TimestampRules) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TimestampRules: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TimestampRules: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Const", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Const == nil { + m.Const = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.Const).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*TimestampRules_Lt); ok { + if err := (*timestamppb1.Timestamp)(oneof.Lt).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &TimestampRules_Lt{Lt: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.LessThan.(*TimestampRules_Lte); ok { + if err := (*timestamppb1.Timestamp)(oneof.Lte).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.LessThan = &TimestampRules_Lte{Lte: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*TimestampRules_Gt); ok { + if err := (*timestamppb1.Timestamp)(oneof.Gt).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &TimestampRules_Gt{Gt: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gte", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.GreaterThan.(*TimestampRules_Gte); ok { + if err := (*timestamppb1.Timestamp)(oneof.Gte).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := ×tamppb.Timestamp{} + if err := (*timestamppb1.Timestamp)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.GreaterThan = &TimestampRules_Gte{Gte: v} + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LtNow", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.LessThan = &TimestampRules_LtNow{LtNow: b} + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GtNow", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.GreaterThan = &TimestampRules_GtNow{GtNow: b} + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Within", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Within == nil { + m.Within = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Within).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Example", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Example = append(m.Example, ×tamppb.Timestamp{}) + if err := (*timestamppb1.Timestamp)(m.Example[len(m.Example)-1]).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + if (fieldNum >= 1000) && (fieldNum < 536870912) { + err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(dAtA[iNdEx:iNdEx+skippy], m) + if err != nil { + return err + } + iNdEx += skippy + } else { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Violations) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Violations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Violations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Violations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Violations = append(m.Violations, &Violation{}) + if err := m.Violations[len(m.Violations)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Violation) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Violation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Violation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.RuleId = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Message = &s + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ForKey", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.ForKey = &b + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Field == nil { + m.Field = &FieldPath{} + } + if err := m.Field.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Rule == nil { + m.Rule = &FieldPath{} + } + if err := m.Rule.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FieldPath) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldPath: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldPath: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Elements", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Elements = append(m.Elements, &FieldPathElement{}) + if err := m.Elements[len(m.Elements)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FieldPathElement) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldPathElement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldPathElement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldNumber", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldNumber = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.FieldName = &s + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldType", wireType) + } + var v descriptorpb.FieldDescriptorProto_Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= descriptorpb.FieldDescriptorProto_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldType = &v + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyType", wireType) + } + var v descriptorpb.FieldDescriptorProto_Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= descriptorpb.FieldDescriptorProto_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.KeyType = &v + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueType", wireType) + } + var v descriptorpb.FieldDescriptorProto_Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= descriptorpb.FieldDescriptorProto_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ValueType = &v + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Subscript = &FieldPathElement_Index{Index: v} + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BoolKey", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Subscript = &FieldPathElement_BoolKey{BoolKey: b} + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IntKey", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Subscript = &FieldPathElement_IntKey{IntKey: v} + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UintKey", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Subscript = &FieldPathElement_UintKey{UintKey: v} + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Subscript = &FieldPathElement_StringKey{StringKey: stringValue} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/go/gen/sift/annotation_logs/v1/annotation_logs.pb.go b/go/gen/sift/annotation_logs/v1/annotation_logs.pb.go index e7466d0e0..50f6fd415 100644 --- a/go/gen/sift/annotation_logs/v1/annotation_logs.pb.go +++ b/go/gen/sift/annotation_logs/v1/annotation_logs.pb.go @@ -363,7 +363,7 @@ type ListAnnotationLogsRequest struct { PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `annotation_log_id`, `annotation_id`, `created_by_user_id`, - // `created_date`, `modified_date`, and `kind`. + // `annotation_id`, `created_date`, `modified_date`, and `kind`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/annotation_logs#annotationlogsearchresult). Optional. Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` @@ -1054,7 +1054,7 @@ var file_sift_annotation_logs_v1_annotation_logs_proto_rawDesc = []byte{ 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, @@ -1204,7 +1204,7 @@ var file_sift_annotation_logs_v1_annotation_logs_proto_rawDesc = []byte{ 0x0a, 0x31, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x4f, 0x44, 0x59, 0x5f, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x4e, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x32, 0xe1, 0x07, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x32, 0xfd, 0x07, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xfa, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, @@ -1221,7 +1221,7 @@ var file_sift_annotation_logs_v1_annotation_logs_proto_rawDesc = []byte{ 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0xfb, 0x01, 0x0a, 0x12, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x97, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, @@ -1229,60 +1229,62 @@ var file_sift_annotation_logs_v1_annotation_logs_proto_rawDesc = []byte{ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x92, 0x41, 0x49, - 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x6f, 0x67, 0x73, 0x1a, 0x33, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, - 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0xfa, 0x01, 0x0a, 0x13, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, - 0x67, 0x12, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x92, 0x41, - 0x31, 0x12, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x1a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, - 0x67, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x6f, - 0x67, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, - 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x1a, 0xd0, 0x01, 0x92, 0x41, 0xcc, 0x01, 0x12, 0x52, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, - 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, 0x73, - 0x73, 0x61, 0x72, 0x79, 0x23, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, - 0x2e, 0x1a, 0x76, 0x0a, 0x1c, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x62, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, - 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, - 0x32, 0x36, 0x35, 0x34, 0x38, 0x36, 0x36, 0x38, 0x35, 0x42, 0xf9, 0x01, 0x0a, 0x1b, 0x63, 0x6f, - 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, - 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, - 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x53, 0x41, 0x58, 0xaa, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x53, - 0x69, 0x66, 0x74, 0x5c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, - 0x67, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x53, 0x69, 0x66, - 0x74, 0x3a, 0x3a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, - 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x01, 0x92, 0x41, + 0x49, 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x1a, 0x33, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x67, 0x73, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, + 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x28, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0xfa, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x33, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x92, 0x41, 0x31, 0x12, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x6f, 0x67, 0x1a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x67, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, + 0x64, 0x7d, 0x1a, 0xd0, 0x01, 0x92, 0x41, 0xcc, 0x01, 0x12, 0x52, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, 0x79, + 0x23, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x2e, 0x1a, 0x76, 0x0a, + 0x1c, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x12, 0x56, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, + 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, + 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, + 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, + 0x38, 0x36, 0x36, 0x38, 0x35, 0x42, 0xf9, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, + 0x67, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4b, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, + 0x73, 0x69, 0x66, 0x74, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x41, 0x58, 0xaa, + 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x5c, 0x56, + 0x31, 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/annotation_logs/v1/annotation_logs.pb.gw.go b/go/gen/sift/annotation_logs/v1/annotation_logs.pb.gw.go index f0e43b999..a98c5eb21 100644 --- a/go/gen/sift/annotation_logs/v1/annotation_logs.pb.gw.go +++ b/go/gen/sift/annotation_logs/v1/annotation_logs.pb.gw.go @@ -169,6 +169,42 @@ func local_request_AnnotationLogService_ListAnnotationLogs_0(ctx context.Context } +var ( + filter_AnnotationLogService_ListAnnotationLogs_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AnnotationLogService_ListAnnotationLogs_1(ctx context.Context, marshaler runtime.Marshaler, client AnnotationLogServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListAnnotationLogsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AnnotationLogService_ListAnnotationLogs_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListAnnotationLogs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AnnotationLogService_ListAnnotationLogs_1(ctx context.Context, marshaler runtime.Marshaler, server AnnotationLogServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListAnnotationLogsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AnnotationLogService_ListAnnotationLogs_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListAnnotationLogs(ctx, &protoReq) + return msg, metadata, err + +} + func request_AnnotationLogService_DeleteAnnotationLog_0(ctx context.Context, marshaler runtime.Marshaler, client AnnotationLogServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq DeleteAnnotationLogRequest var metadata runtime.ServerMetadata @@ -297,6 +333,31 @@ func RegisterAnnotationLogServiceHandlerServer(ctx context.Context, mux *runtime }) + mux.Handle("GET", pattern_AnnotationLogService_ListAnnotationLogs_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.annotation_logs.v1.AnnotationLogService/ListAnnotationLogs", runtime.WithHTTPPathPattern("/api/v1/annotation-logs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AnnotationLogService_ListAnnotationLogs_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationLogService_ListAnnotationLogs_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("DELETE", pattern_AnnotationLogService_DeleteAnnotationLog_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -407,6 +468,28 @@ func RegisterAnnotationLogServiceHandlerClient(ctx context.Context, mux *runtime }) + mux.Handle("GET", pattern_AnnotationLogService_ListAnnotationLogs_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.annotation_logs.v1.AnnotationLogService/ListAnnotationLogs", runtime.WithHTTPPathPattern("/api/v1/annotation-logs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AnnotationLogService_ListAnnotationLogs_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationLogService_ListAnnotationLogs_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("DELETE", pattern_AnnotationLogService_DeleteAnnotationLog_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -437,6 +520,8 @@ var ( pattern_AnnotationLogService_ListAnnotationLogs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "annotations", "annotation_id", "logs"}, "")) + pattern_AnnotationLogService_ListAnnotationLogs_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "annotation-logs"}, "")) + pattern_AnnotationLogService_DeleteAnnotationLog_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "annotations", "annotation_id", "logs", "annotation_log_id"}, "")) ) @@ -445,5 +530,7 @@ var ( forward_AnnotationLogService_ListAnnotationLogs_0 = runtime.ForwardResponseMessage + forward_AnnotationLogService_ListAnnotationLogs_1 = runtime.ForwardResponseMessage + forward_AnnotationLogService_DeleteAnnotationLog_0 = runtime.ForwardResponseMessage ) diff --git a/go/gen/sift/annotations/v1/annotations.pb.go b/go/gen/sift/annotations/v1/annotations.pb.go index 625273034..224a1d485 100644 --- a/go/gen/sift/annotations/v1/annotations.pb.go +++ b/go/gen/sift/annotations/v1/annotations.pb.go @@ -153,12 +153,16 @@ type Annotation struct { ReportRuleVersionId *string `protobuf:"bytes,19,opt,name=report_rule_version_id,json=reportRuleVersionId,proto3,oneof" json:"report_rule_version_id,omitempty"` // An annotation is pending if it is part of an ongoing violation of a rule condition. // The `end_time` of a pending annotation might be set, but is not yet finalized. - Pending bool `protobuf:"varint,20,opt,name=pending,proto3" json:"pending,omitempty"` - AssignedToUser *v1.User `protobuf:"bytes,21,opt,name=assigned_to_user,json=assignedToUser,proto3" json:"assigned_to_user,omitempty"` + Pending bool `protobuf:"varint,20,opt,name=pending,proto3" json:"pending,omitempty"` + AssignedToUser *v1.User `protobuf:"bytes,21,opt,name=assigned_to_user,json=assignedToUser,proto3" json:"assigned_to_user,omitempty"` + // Deprecated: Do not use. DeletedDate *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=deleted_date,json=deletedDate,proto3" json:"deleted_date,omitempty"` LinkedChannels []*AnnotationLinkedChannel `protobuf:"bytes,23,rep,name=linked_channels,json=linkedChannels,proto3" json:"linked_channels,omitempty"` AssetIds []string `protobuf:"bytes,24,rep,name=asset_ids,json=assetIds,proto3" json:"asset_ids,omitempty"` Metadata []*v11.MetadataValue `protobuf:"bytes,25,rep,name=metadata,proto3" json:"metadata,omitempty"` + ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,26,opt,name=archived_date,json=archivedDate,proto3" json:"archived_date,omitempty"` + // is_archived is a inferred from when archived_date is not null + IsArchived bool `protobuf:"varint,27,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *Annotation) Reset() { @@ -340,6 +344,7 @@ func (x *Annotation) GetAssignedToUser() *v1.User { return nil } +// Deprecated: Do not use. func (x *Annotation) GetDeletedDate() *timestamppb.Timestamp { if x != nil { return x.DeletedDate @@ -368,6 +373,20 @@ func (x *Annotation) GetMetadata() []*v11.MetadataValue { return nil } +func (x *Annotation) GetArchivedDate() *timestamppb.Timestamp { + if x != nil { + return x.ArchivedDate + } + return nil +} + +func (x *Annotation) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type AnnotationLinkedChannelsChannel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1073,7 +1092,7 @@ type ListAnnotationsRequest struct { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `annotation_id`, `start_time`, `end_time`, // `created_date`, `modified_date`, `run_id`, `name`, `description`, `state`, `created_by_user_id`, `created_by_rule_condition_version_id`, - // `annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, `campaign_reports`, and `metadata`. + // `annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, `campaign_reports`, `metadata`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/annotations#annotation). Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -1320,6 +1339,392 @@ func (x *UpdateAnnotationResponse) GetAnnotation() *Annotation { return nil } +// The request for a call to `AnnotationService_ArchiveAnnotation`. +type ArchiveAnnotationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AnnotationId string `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId,proto3" json:"annotation_id,omitempty"` +} + +func (x *ArchiveAnnotationRequest) Reset() { + *x = ArchiveAnnotationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArchiveAnnotationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArchiveAnnotationRequest) ProtoMessage() {} + +func (x *ArchiveAnnotationRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArchiveAnnotationRequest.ProtoReflect.Descriptor instead. +func (*ArchiveAnnotationRequest) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{16} +} + +func (x *ArchiveAnnotationRequest) GetAnnotationId() string { + if x != nil { + return x.AnnotationId + } + return "" +} + +// The response of a call to `AnnotationService_ArchiveAnnotation`. +type ArchiveAnnotationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Annotation *Annotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"` +} + +func (x *ArchiveAnnotationResponse) Reset() { + *x = ArchiveAnnotationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArchiveAnnotationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArchiveAnnotationResponse) ProtoMessage() {} + +func (x *ArchiveAnnotationResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArchiveAnnotationResponse.ProtoReflect.Descriptor instead. +func (*ArchiveAnnotationResponse) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{17} +} + +func (x *ArchiveAnnotationResponse) GetAnnotation() *Annotation { + if x != nil { + return x.Annotation + } + return nil +} + +// The request for a call to `AnnotationService_UnarchiveAnnotation`. +type UnarchiveAnnotationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AnnotationId string `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId,proto3" json:"annotation_id,omitempty"` +} + +func (x *UnarchiveAnnotationRequest) Reset() { + *x = UnarchiveAnnotationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnarchiveAnnotationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnarchiveAnnotationRequest) ProtoMessage() {} + +func (x *UnarchiveAnnotationRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnarchiveAnnotationRequest.ProtoReflect.Descriptor instead. +func (*UnarchiveAnnotationRequest) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{18} +} + +func (x *UnarchiveAnnotationRequest) GetAnnotationId() string { + if x != nil { + return x.AnnotationId + } + return "" +} + +// The response of a call to `AnnotationService_UnarchiveAnnotation`. +type UnarchiveAnnotationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Annotation *Annotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"` +} + +func (x *UnarchiveAnnotationResponse) Reset() { + *x = UnarchiveAnnotationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnarchiveAnnotationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnarchiveAnnotationResponse) ProtoMessage() {} + +func (x *UnarchiveAnnotationResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnarchiveAnnotationResponse.ProtoReflect.Descriptor instead. +func (*UnarchiveAnnotationResponse) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{19} +} + +func (x *UnarchiveAnnotationResponse) GetAnnotation() *Annotation { + if x != nil { + return x.Annotation + } + return nil +} + +// The request for a call to `AnnotationService_BatchArchiveAnnotations`. +type BatchArchiveAnnotationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Limit of 1000 annotations per batch + AnnotationIds []string `protobuf:"bytes,1,rep,name=annotation_ids,json=annotationIds,proto3" json:"annotation_ids,omitempty"` +} + +func (x *BatchArchiveAnnotationsRequest) Reset() { + *x = BatchArchiveAnnotationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchArchiveAnnotationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchArchiveAnnotationsRequest) ProtoMessage() {} + +func (x *BatchArchiveAnnotationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchArchiveAnnotationsRequest.ProtoReflect.Descriptor instead. +func (*BatchArchiveAnnotationsRequest) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{20} +} + +func (x *BatchArchiveAnnotationsRequest) GetAnnotationIds() []string { + if x != nil { + return x.AnnotationIds + } + return nil +} + +// The response of a call to `AnnotationService_BatchArchiveAnnotations`. +type BatchArchiveAnnotationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Annotations []*Annotation `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *BatchArchiveAnnotationsResponse) Reset() { + *x = BatchArchiveAnnotationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchArchiveAnnotationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchArchiveAnnotationsResponse) ProtoMessage() {} + +func (x *BatchArchiveAnnotationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchArchiveAnnotationsResponse.ProtoReflect.Descriptor instead. +func (*BatchArchiveAnnotationsResponse) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{21} +} + +func (x *BatchArchiveAnnotationsResponse) GetAnnotations() []*Annotation { + if x != nil { + return x.Annotations + } + return nil +} + +// The request for a call to `AnnotationService_BatchUnarchiveAnnotations`. +type BatchUnarchiveAnnotationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Limit of 1000 annotations per batch + AnnotationIds []string `protobuf:"bytes,1,rep,name=annotation_ids,json=annotationIds,proto3" json:"annotation_ids,omitempty"` +} + +func (x *BatchUnarchiveAnnotationsRequest) Reset() { + *x = BatchUnarchiveAnnotationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchUnarchiveAnnotationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUnarchiveAnnotationsRequest) ProtoMessage() {} + +func (x *BatchUnarchiveAnnotationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchUnarchiveAnnotationsRequest.ProtoReflect.Descriptor instead. +func (*BatchUnarchiveAnnotationsRequest) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{22} +} + +func (x *BatchUnarchiveAnnotationsRequest) GetAnnotationIds() []string { + if x != nil { + return x.AnnotationIds + } + return nil +} + +// The response of a call to `AnnotationService_BatchUnarchiveAnnotations`. +type BatchUnarchiveAnnotationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Annotations []*Annotation `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *BatchUnarchiveAnnotationsResponse) Reset() { + *x = BatchUnarchiveAnnotationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchUnarchiveAnnotationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUnarchiveAnnotationsResponse) ProtoMessage() {} + +func (x *BatchUnarchiveAnnotationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_annotations_v1_annotations_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchUnarchiveAnnotationsResponse.ProtoReflect.Descriptor instead. +func (*BatchUnarchiveAnnotationsResponse) Descriptor() ([]byte, []int) { + return file_sift_annotations_v1_annotations_proto_rawDescGZIP(), []int{23} +} + +func (x *BatchUnarchiveAnnotationsResponse) GetAnnotations() []*Annotation { + if x != nil { + return x.Annotations + } + return nil +} + var File_sift_annotations_v1_annotations_proto protoreflect.FileDescriptor var file_sift_annotations_v1_annotations_proto_rawDesc = []byte{ @@ -1342,7 +1747,7 @@ var file_sift_annotations_v1_annotations_proto_rawDesc = []byte{ 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x93, 0x0c, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, + 0x81, 0x0d, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, @@ -1414,315 +1819,425 @@ var file_sift_annotations_v1_annotations_proto_rawDesc = []byte{ 0x75, 0x73, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, + 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x16, 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, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x5a, - 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x05, 0x18, 0x01, + 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x5a, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6c, 0x69, + 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x09, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x40, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x44, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x1a, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x62, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x42, + 0x27, 0x0a, 0x25, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x22, 0x45, 0x0a, 0x1f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x27, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, - 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x45, 0x0a, 0x1f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x62, 0x69, 0x74, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x17, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x27, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x62, - 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x17, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x12, 0x50, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x6a, 0x0a, 0x11, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x42, 0x69, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x62, + 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x06, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x91, 0x08, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 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, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x0f, 0x6c, + 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x12, 0x50, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x1f, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x6a, 0x0a, 0x11, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x42, 0x69, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x0f, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x91, 0x08, 0x0a, 0x17, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x5a, 0x0a, - 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x6f, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, + 0x17, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x0d, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x65, + 0x67, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, + 0x24, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x05, 0x52, 0x1f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x52, 0x75, 0x6c, + 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x75, 0x6e, + 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, + 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x62, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, + 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x60, 0x0a, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x17, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, + 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, + 0x0a, 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5d, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc9, 0x01, + 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x84, 0x01, 0x0a, 0x17, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0xa1, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0a, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5b, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3f, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x44, 0x0a, 0x18, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, + 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x19, 0x41, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x1a, 0x55, 0x6e, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x22, 0x63, 0x0a, 0x1b, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x3f, 0x0a, 0x17, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, 0x0c, - 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x57, 0x0a, 0x24, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x05, 0x52, 0x1f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x52, - 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, - 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x62, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x60, 0x0a, 0x18, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, - 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x4b, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x20, 0x0a, 0x1e, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x22, 0x5d, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x69, 0x0a, 0x1f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0xc9, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, - 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x84, 0x01, 0x0a, 0x17, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0xa1, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, - 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5b, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2a, 0x8b, 0x01, 0x0a, 0x0f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x4e, 0x4e, 0x4f, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4e, 0x4e, - 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, - 0x45, 0x4e, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x47, 0x45, 0x44, - 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, 0x10, - 0x03, 0x2a, 0x6d, 0x0a, 0x0e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x56, - 0x49, 0x45, 0x57, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x10, 0x02, - 0x32, 0xcf, 0x0b, 0x0a, 0x11, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x92, 0x41, 0x2a, 0x12, 0x10, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, - 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xc9, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x4e, 0x0a, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, + 0x22, 0x6b, 0x0a, 0x21, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x92, 0x41, 0x2a, 0x12, 0x10, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x61, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x8b, 0x01, + 0x0a, 0x0f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, + 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x6d, 0x0a, 0x0e, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, + 0x1b, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, + 0x0a, 0x1b, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x10, 0x01, 0x12, + 0x19, 0x0a, 0x15, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x10, 0x02, 0x32, 0x81, 0x13, 0x0a, 0x11, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0xbc, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x4b, 0x92, 0x41, 0x2a, 0x12, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0xcd, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5c, 0x88, 0x02, 0x01, 0x92, 0x41, 0x2b, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x17, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, + 0xd9, 0x01, 0x0a, 0x11, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x92, 0x41, 0x2c, 0x12, 0x11, 0x41, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x17, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xe5, 0x01, 0x0a, 0x13, + 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x30, 0x12, 0x13, 0x55, 0x6e, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x19, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x12, 0xe7, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x88, 0x02, 0x01, 0x92, 0x41, 0x34, 0x12, + 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0xe3, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x92, 0x41, 0x33, 0x12, 0x15, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x1a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xcd, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x92, 0x41, 0x41, 0x12, 0x0e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2f, 0x52, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xea, 0x01, + 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x56, 0x92, 0x41, 0x28, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x02, 0x0a, 0x10, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x92, 0x41, 0x6d, - 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x59, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, - 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x32, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb4, 0x01, 0x92, 0x41, - 0xb0, 0x01, 0x12, 0x36, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, - 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x1a, 0x76, 0x0a, 0x1c, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, - 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x38, 0x36, 0x36, - 0x38, 0x35, 0x42, 0xf7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x10, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, - 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, - 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x41, 0x58, 0xaa, 0x02, 0x13, - 0x53, 0x69, 0x66, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x53, 0x69, 0x66, 0x74, - 0x5c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x53, 0x69, - 0x66, 0x74, 0x3a, 0x3a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, - 0x3a, 0x56, 0x31, 0x92, 0x41, 0x16, 0x12, 0x14, 0x0a, 0x12, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x92, 0x41, 0x36, 0x12, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xf6, 0x01, 0x0a, 0x19, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6a, 0x92, 0x41, 0x3a, 0x12, 0x19, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, + 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x12, 0xcd, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x5f, 0x92, 0x41, 0x41, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, + 0x28, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, + 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x02, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x92, 0x41, 0x6d, 0x12, 0x10, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x59, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, + 0x01, 0x2a, 0x32, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb4, 0x01, 0x92, 0x41, 0xb0, 0x01, 0x12, 0x36, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x1a, 0x76, 0x0a, 0x1c, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x38, 0x36, 0x36, 0x38, 0x35, 0x42, 0xf7, + 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, + 0x41, 0x16, 0x12, 0x14, 0x0a, 0x12, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1738,7 +2253,7 @@ func file_sift_annotations_v1_annotations_proto_rawDescGZIP() []byte { } var file_sift_annotations_v1_annotations_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_sift_annotations_v1_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_sift_annotations_v1_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_sift_annotations_v1_annotations_proto_goTypes = []interface{}{ (AnnotationState)(0), // 0: sift.annotations.v1.AnnotationState (AnnotationType)(0), // 1: sift.annotations.v1.AnnotationType @@ -1758,53 +2273,74 @@ var file_sift_annotations_v1_annotations_proto_goTypes = []interface{}{ (*ListAnnotationsResponse)(nil), // 15: sift.annotations.v1.ListAnnotationsResponse (*UpdateAnnotationRequest)(nil), // 16: sift.annotations.v1.UpdateAnnotationRequest (*UpdateAnnotationResponse)(nil), // 17: sift.annotations.v1.UpdateAnnotationResponse - (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp - (*v1.User)(nil), // 19: sift.common.type.v1.User - (*v11.MetadataValue)(nil), // 20: sift.metadata.v1.MetadataValue - (*fieldmaskpb.FieldMask)(nil), // 21: google.protobuf.FieldMask + (*ArchiveAnnotationRequest)(nil), // 18: sift.annotations.v1.ArchiveAnnotationRequest + (*ArchiveAnnotationResponse)(nil), // 19: sift.annotations.v1.ArchiveAnnotationResponse + (*UnarchiveAnnotationRequest)(nil), // 20: sift.annotations.v1.UnarchiveAnnotationRequest + (*UnarchiveAnnotationResponse)(nil), // 21: sift.annotations.v1.UnarchiveAnnotationResponse + (*BatchArchiveAnnotationsRequest)(nil), // 22: sift.annotations.v1.BatchArchiveAnnotationsRequest + (*BatchArchiveAnnotationsResponse)(nil), // 23: sift.annotations.v1.BatchArchiveAnnotationsResponse + (*BatchUnarchiveAnnotationsRequest)(nil), // 24: sift.annotations.v1.BatchUnarchiveAnnotationsRequest + (*BatchUnarchiveAnnotationsResponse)(nil), // 25: sift.annotations.v1.BatchUnarchiveAnnotationsResponse + (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp + (*v1.User)(nil), // 27: sift.common.type.v1.User + (*v11.MetadataValue)(nil), // 28: sift.metadata.v1.MetadataValue + (*fieldmaskpb.FieldMask)(nil), // 29: google.protobuf.FieldMask } var file_sift_annotations_v1_annotations_proto_depIdxs = []int32{ - 18, // 0: sift.annotations.v1.Annotation.start_time:type_name -> google.protobuf.Timestamp - 18, // 1: sift.annotations.v1.Annotation.end_time:type_name -> google.protobuf.Timestamp - 18, // 2: sift.annotations.v1.Annotation.created_date:type_name -> google.protobuf.Timestamp - 18, // 3: sift.annotations.v1.Annotation.modified_date:type_name -> google.protobuf.Timestamp + 26, // 0: sift.annotations.v1.Annotation.start_time:type_name -> google.protobuf.Timestamp + 26, // 1: sift.annotations.v1.Annotation.end_time:type_name -> google.protobuf.Timestamp + 26, // 2: sift.annotations.v1.Annotation.created_date:type_name -> google.protobuf.Timestamp + 26, // 3: sift.annotations.v1.Annotation.modified_date:type_name -> google.protobuf.Timestamp 0, // 4: sift.annotations.v1.Annotation.state:type_name -> sift.annotations.v1.AnnotationState 1, // 5: sift.annotations.v1.Annotation.annotation_type:type_name -> sift.annotations.v1.AnnotationType - 19, // 6: sift.annotations.v1.Annotation.assigned_to_user:type_name -> sift.common.type.v1.User - 18, // 7: sift.annotations.v1.Annotation.deleted_date:type_name -> google.protobuf.Timestamp + 27, // 6: sift.annotations.v1.Annotation.assigned_to_user:type_name -> sift.common.type.v1.User + 26, // 7: sift.annotations.v1.Annotation.deleted_date:type_name -> google.protobuf.Timestamp 5, // 8: sift.annotations.v1.Annotation.linked_channels:type_name -> sift.annotations.v1.AnnotationLinkedChannel - 20, // 9: sift.annotations.v1.Annotation.metadata:type_name -> sift.metadata.v1.MetadataValue - 3, // 10: sift.annotations.v1.AnnotationLinkedChannel.channel:type_name -> sift.annotations.v1.AnnotationLinkedChannelsChannel - 4, // 11: sift.annotations.v1.AnnotationLinkedChannel.bit_field_element:type_name -> sift.annotations.v1.AnnotationLinkedChannelsBitFieldElement - 18, // 12: sift.annotations.v1.CreateAnnotationRequest.start_time:type_name -> google.protobuf.Timestamp - 18, // 13: sift.annotations.v1.CreateAnnotationRequest.end_time:type_name -> google.protobuf.Timestamp - 5, // 14: sift.annotations.v1.CreateAnnotationRequest.linked_channels:type_name -> sift.annotations.v1.AnnotationLinkedChannel - 0, // 15: sift.annotations.v1.CreateAnnotationRequest.state:type_name -> sift.annotations.v1.AnnotationState - 1, // 16: sift.annotations.v1.CreateAnnotationRequest.annotation_type:type_name -> sift.annotations.v1.AnnotationType - 20, // 17: sift.annotations.v1.CreateAnnotationRequest.metadata:type_name -> sift.metadata.v1.MetadataValue - 2, // 18: sift.annotations.v1.CreateAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation - 2, // 19: sift.annotations.v1.GetAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation - 2, // 20: sift.annotations.v1.ListAnnotationsResponse.annotations:type_name -> sift.annotations.v1.Annotation - 2, // 21: sift.annotations.v1.UpdateAnnotationRequest.annotation:type_name -> sift.annotations.v1.Annotation - 21, // 22: sift.annotations.v1.UpdateAnnotationRequest.update_mask:type_name -> google.protobuf.FieldMask - 2, // 23: sift.annotations.v1.UpdateAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation - 6, // 24: sift.annotations.v1.AnnotationService.CreateAnnotation:input_type -> sift.annotations.v1.CreateAnnotationRequest - 8, // 25: sift.annotations.v1.AnnotationService.DeleteAnnotation:input_type -> sift.annotations.v1.DeleteAnnotationRequest - 10, // 26: sift.annotations.v1.AnnotationService.BatchDeleteAnnotations:input_type -> sift.annotations.v1.BatchDeleteAnnotationsRequest - 14, // 27: sift.annotations.v1.AnnotationService.ListAnnotations:input_type -> sift.annotations.v1.ListAnnotationsRequest - 12, // 28: sift.annotations.v1.AnnotationService.GetAnnotation:input_type -> sift.annotations.v1.GetAnnotationRequest - 16, // 29: sift.annotations.v1.AnnotationService.UpdateAnnotation:input_type -> sift.annotations.v1.UpdateAnnotationRequest - 7, // 30: sift.annotations.v1.AnnotationService.CreateAnnotation:output_type -> sift.annotations.v1.CreateAnnotationResponse - 9, // 31: sift.annotations.v1.AnnotationService.DeleteAnnotation:output_type -> sift.annotations.v1.DeleteAnnotationResponse - 11, // 32: sift.annotations.v1.AnnotationService.BatchDeleteAnnotations:output_type -> sift.annotations.v1.BatchDeleteAnnotationsResponse - 15, // 33: sift.annotations.v1.AnnotationService.ListAnnotations:output_type -> sift.annotations.v1.ListAnnotationsResponse - 13, // 34: sift.annotations.v1.AnnotationService.GetAnnotation:output_type -> sift.annotations.v1.GetAnnotationResponse - 17, // 35: sift.annotations.v1.AnnotationService.UpdateAnnotation:output_type -> sift.annotations.v1.UpdateAnnotationResponse - 30, // [30:36] is the sub-list for method output_type - 24, // [24:30] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name + 28, // 9: sift.annotations.v1.Annotation.metadata:type_name -> sift.metadata.v1.MetadataValue + 26, // 10: sift.annotations.v1.Annotation.archived_date:type_name -> google.protobuf.Timestamp + 3, // 11: sift.annotations.v1.AnnotationLinkedChannel.channel:type_name -> sift.annotations.v1.AnnotationLinkedChannelsChannel + 4, // 12: sift.annotations.v1.AnnotationLinkedChannel.bit_field_element:type_name -> sift.annotations.v1.AnnotationLinkedChannelsBitFieldElement + 26, // 13: sift.annotations.v1.CreateAnnotationRequest.start_time:type_name -> google.protobuf.Timestamp + 26, // 14: sift.annotations.v1.CreateAnnotationRequest.end_time:type_name -> google.protobuf.Timestamp + 5, // 15: sift.annotations.v1.CreateAnnotationRequest.linked_channels:type_name -> sift.annotations.v1.AnnotationLinkedChannel + 0, // 16: sift.annotations.v1.CreateAnnotationRequest.state:type_name -> sift.annotations.v1.AnnotationState + 1, // 17: sift.annotations.v1.CreateAnnotationRequest.annotation_type:type_name -> sift.annotations.v1.AnnotationType + 28, // 18: sift.annotations.v1.CreateAnnotationRequest.metadata:type_name -> sift.metadata.v1.MetadataValue + 2, // 19: sift.annotations.v1.CreateAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation + 2, // 20: sift.annotations.v1.GetAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation + 2, // 21: sift.annotations.v1.ListAnnotationsResponse.annotations:type_name -> sift.annotations.v1.Annotation + 2, // 22: sift.annotations.v1.UpdateAnnotationRequest.annotation:type_name -> sift.annotations.v1.Annotation + 29, // 23: sift.annotations.v1.UpdateAnnotationRequest.update_mask:type_name -> google.protobuf.FieldMask + 2, // 24: sift.annotations.v1.UpdateAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation + 2, // 25: sift.annotations.v1.ArchiveAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation + 2, // 26: sift.annotations.v1.UnarchiveAnnotationResponse.annotation:type_name -> sift.annotations.v1.Annotation + 2, // 27: sift.annotations.v1.BatchArchiveAnnotationsResponse.annotations:type_name -> sift.annotations.v1.Annotation + 2, // 28: sift.annotations.v1.BatchUnarchiveAnnotationsResponse.annotations:type_name -> sift.annotations.v1.Annotation + 6, // 29: sift.annotations.v1.AnnotationService.CreateAnnotation:input_type -> sift.annotations.v1.CreateAnnotationRequest + 8, // 30: sift.annotations.v1.AnnotationService.DeleteAnnotation:input_type -> sift.annotations.v1.DeleteAnnotationRequest + 18, // 31: sift.annotations.v1.AnnotationService.ArchiveAnnotation:input_type -> sift.annotations.v1.ArchiveAnnotationRequest + 20, // 32: sift.annotations.v1.AnnotationService.UnarchiveAnnotation:input_type -> sift.annotations.v1.UnarchiveAnnotationRequest + 10, // 33: sift.annotations.v1.AnnotationService.BatchDeleteAnnotations:input_type -> sift.annotations.v1.BatchDeleteAnnotationsRequest + 22, // 34: sift.annotations.v1.AnnotationService.BatchArchiveAnnotations:input_type -> sift.annotations.v1.BatchArchiveAnnotationsRequest + 24, // 35: sift.annotations.v1.AnnotationService.BatchUnarchiveAnnotations:input_type -> sift.annotations.v1.BatchUnarchiveAnnotationsRequest + 14, // 36: sift.annotations.v1.AnnotationService.ListAnnotations:input_type -> sift.annotations.v1.ListAnnotationsRequest + 12, // 37: sift.annotations.v1.AnnotationService.GetAnnotation:input_type -> sift.annotations.v1.GetAnnotationRequest + 16, // 38: sift.annotations.v1.AnnotationService.UpdateAnnotation:input_type -> sift.annotations.v1.UpdateAnnotationRequest + 7, // 39: sift.annotations.v1.AnnotationService.CreateAnnotation:output_type -> sift.annotations.v1.CreateAnnotationResponse + 9, // 40: sift.annotations.v1.AnnotationService.DeleteAnnotation:output_type -> sift.annotations.v1.DeleteAnnotationResponse + 19, // 41: sift.annotations.v1.AnnotationService.ArchiveAnnotation:output_type -> sift.annotations.v1.ArchiveAnnotationResponse + 21, // 42: sift.annotations.v1.AnnotationService.UnarchiveAnnotation:output_type -> sift.annotations.v1.UnarchiveAnnotationResponse + 11, // 43: sift.annotations.v1.AnnotationService.BatchDeleteAnnotations:output_type -> sift.annotations.v1.BatchDeleteAnnotationsResponse + 23, // 44: sift.annotations.v1.AnnotationService.BatchArchiveAnnotations:output_type -> sift.annotations.v1.BatchArchiveAnnotationsResponse + 25, // 45: sift.annotations.v1.AnnotationService.BatchUnarchiveAnnotations:output_type -> sift.annotations.v1.BatchUnarchiveAnnotationsResponse + 15, // 46: sift.annotations.v1.AnnotationService.ListAnnotations:output_type -> sift.annotations.v1.ListAnnotationsResponse + 13, // 47: sift.annotations.v1.AnnotationService.GetAnnotation:output_type -> sift.annotations.v1.GetAnnotationResponse + 17, // 48: sift.annotations.v1.AnnotationService.UpdateAnnotation:output_type -> sift.annotations.v1.UpdateAnnotationResponse + 39, // [39:49] is the sub-list for method output_type + 29, // [29:39] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_sift_annotations_v1_annotations_proto_init() } @@ -2005,6 +2541,102 @@ func file_sift_annotations_v1_annotations_proto_init() { return nil } } + file_sift_annotations_v1_annotations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArchiveAnnotationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_annotations_v1_annotations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArchiveAnnotationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_annotations_v1_annotations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnarchiveAnnotationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_annotations_v1_annotations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnarchiveAnnotationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_annotations_v1_annotations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchArchiveAnnotationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_annotations_v1_annotations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchArchiveAnnotationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_annotations_v1_annotations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchUnarchiveAnnotationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_annotations_v1_annotations_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchUnarchiveAnnotationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_sift_annotations_v1_annotations_proto_msgTypes[0].OneofWrappers = []interface{}{} file_sift_annotations_v1_annotations_proto_msgTypes[3].OneofWrappers = []interface{}{ @@ -2018,7 +2650,7 @@ func file_sift_annotations_v1_annotations_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_annotations_v1_annotations_proto_rawDesc, NumEnums: 2, - NumMessages: 16, + NumMessages: 24, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/annotations/v1/annotations.pb.gw.go b/go/gen/sift/annotations/v1/annotations.pb.gw.go index 045dbf5b7..5c543e844 100644 --- a/go/gen/sift/annotations/v1/annotations.pb.gw.go +++ b/go/gen/sift/annotations/v1/annotations.pb.gw.go @@ -117,6 +117,142 @@ func local_request_AnnotationService_DeleteAnnotation_0(ctx context.Context, mar } +func request_AnnotationService_ArchiveAnnotation_0(ctx context.Context, marshaler runtime.Marshaler, client AnnotationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ArchiveAnnotationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["annotation_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "annotation_id") + } + + protoReq.AnnotationId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "annotation_id", err) + } + + msg, err := client.ArchiveAnnotation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AnnotationService_ArchiveAnnotation_0(ctx context.Context, marshaler runtime.Marshaler, server AnnotationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ArchiveAnnotationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["annotation_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "annotation_id") + } + + protoReq.AnnotationId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "annotation_id", err) + } + + msg, err := server.ArchiveAnnotation(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AnnotationService_UnarchiveAnnotation_0(ctx context.Context, marshaler runtime.Marshaler, client AnnotationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UnarchiveAnnotationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["annotation_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "annotation_id") + } + + protoReq.AnnotationId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "annotation_id", err) + } + + msg, err := client.UnarchiveAnnotation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AnnotationService_UnarchiveAnnotation_0(ctx context.Context, marshaler runtime.Marshaler, server AnnotationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UnarchiveAnnotationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["annotation_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "annotation_id") + } + + protoReq.AnnotationId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "annotation_id", err) + } + + msg, err := server.UnarchiveAnnotation(ctx, &protoReq) + return msg, metadata, err + +} + func request_AnnotationService_BatchDeleteAnnotations_0(ctx context.Context, marshaler runtime.Marshaler, client AnnotationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq BatchDeleteAnnotationsRequest var metadata runtime.ServerMetadata @@ -151,6 +287,74 @@ func local_request_AnnotationService_BatchDeleteAnnotations_0(ctx context.Contex } +func request_AnnotationService_BatchArchiveAnnotations_0(ctx context.Context, marshaler runtime.Marshaler, client AnnotationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchArchiveAnnotationsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.BatchArchiveAnnotations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AnnotationService_BatchArchiveAnnotations_0(ctx context.Context, marshaler runtime.Marshaler, server AnnotationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchArchiveAnnotationsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.BatchArchiveAnnotations(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AnnotationService_BatchUnarchiveAnnotations_0(ctx context.Context, marshaler runtime.Marshaler, client AnnotationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchUnarchiveAnnotationsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.BatchUnarchiveAnnotations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AnnotationService_BatchUnarchiveAnnotations_0(ctx context.Context, marshaler runtime.Marshaler, server AnnotationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchUnarchiveAnnotationsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.BatchUnarchiveAnnotations(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_AnnotationService_ListAnnotations_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -329,6 +533,56 @@ func RegisterAnnotationServiceHandlerServer(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_AnnotationService_ArchiveAnnotation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/ArchiveAnnotation", runtime.WithHTTPPathPattern("/api/v1/annotations/{annotation_id}:archive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AnnotationService_ArchiveAnnotation_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_ArchiveAnnotation_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AnnotationService_UnarchiveAnnotation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/UnarchiveAnnotation", runtime.WithHTTPPathPattern("/api/v1/annotations/{annotation_id}:unarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AnnotationService_UnarchiveAnnotation_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_UnarchiveAnnotation_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AnnotationService_BatchDeleteAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -354,6 +608,56 @@ func RegisterAnnotationServiceHandlerServer(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_AnnotationService_BatchArchiveAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations", runtime.WithHTTPPathPattern("/api/v1/annotations:batchArchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AnnotationService_BatchArchiveAnnotations_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_BatchArchiveAnnotations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AnnotationService_BatchUnarchiveAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations", runtime.WithHTTPPathPattern("/api/v1/annotations:batchUnarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AnnotationService_BatchUnarchiveAnnotations_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_BatchUnarchiveAnnotations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AnnotationService_ListAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -514,6 +818,50 @@ func RegisterAnnotationServiceHandlerClient(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_AnnotationService_ArchiveAnnotation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/ArchiveAnnotation", runtime.WithHTTPPathPattern("/api/v1/annotations/{annotation_id}:archive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AnnotationService_ArchiveAnnotation_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_ArchiveAnnotation_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AnnotationService_UnarchiveAnnotation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/UnarchiveAnnotation", runtime.WithHTTPPathPattern("/api/v1/annotations/{annotation_id}:unarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AnnotationService_UnarchiveAnnotation_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_UnarchiveAnnotation_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AnnotationService_BatchDeleteAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -536,6 +884,50 @@ func RegisterAnnotationServiceHandlerClient(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_AnnotationService_BatchArchiveAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations", runtime.WithHTTPPathPattern("/api/v1/annotations:batchArchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AnnotationService_BatchArchiveAnnotations_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_BatchArchiveAnnotations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AnnotationService_BatchUnarchiveAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations", runtime.WithHTTPPathPattern("/api/v1/annotations:batchUnarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AnnotationService_BatchUnarchiveAnnotations_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AnnotationService_BatchUnarchiveAnnotations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AnnotationService_ListAnnotations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -610,8 +1002,16 @@ var ( pattern_AnnotationService_DeleteAnnotation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "annotations", "annotation_id"}, "")) + pattern_AnnotationService_ArchiveAnnotation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "annotations", "annotation_id"}, "archive")) + + pattern_AnnotationService_UnarchiveAnnotation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "annotations", "annotation_id"}, "unarchive")) + pattern_AnnotationService_BatchDeleteAnnotations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "annotations"}, "batchDelete")) + pattern_AnnotationService_BatchArchiveAnnotations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "annotations"}, "batchArchive")) + + pattern_AnnotationService_BatchUnarchiveAnnotations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "annotations"}, "batchUnarchive")) + pattern_AnnotationService_ListAnnotations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "annotations"}, "")) pattern_AnnotationService_GetAnnotation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "annotations", "annotation_id"}, "")) @@ -624,8 +1024,16 @@ var ( forward_AnnotationService_DeleteAnnotation_0 = runtime.ForwardResponseMessage + forward_AnnotationService_ArchiveAnnotation_0 = runtime.ForwardResponseMessage + + forward_AnnotationService_UnarchiveAnnotation_0 = runtime.ForwardResponseMessage + forward_AnnotationService_BatchDeleteAnnotations_0 = runtime.ForwardResponseMessage + forward_AnnotationService_BatchArchiveAnnotations_0 = runtime.ForwardResponseMessage + + forward_AnnotationService_BatchUnarchiveAnnotations_0 = runtime.ForwardResponseMessage + forward_AnnotationService_ListAnnotations_0 = runtime.ForwardResponseMessage forward_AnnotationService_GetAnnotation_0 = runtime.ForwardResponseMessage diff --git a/go/gen/sift/annotations/v1/annotations_vtproto.pb.go b/go/gen/sift/annotations/v1/annotations_vtproto.pb.go index 29d1db149..f3ae0e888 100644 --- a/go/gen/sift/annotations/v1/annotations_vtproto.pb.go +++ b/go/gen/sift/annotations/v1/annotations_vtproto.pb.go @@ -49,6 +49,8 @@ func (m *Annotation) CloneVT() *Annotation { r.AnnotationType = m.AnnotationType r.Pending = m.Pending r.DeletedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.DeletedDate).CloneVT()) + r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.IsArchived = m.IsArchived if rhs := m.RunId; rhs != nil { tmpVal := *rhs r.RunId = &tmpVal @@ -468,6 +470,162 @@ func (m *UpdateAnnotationResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *ArchiveAnnotationRequest) CloneVT() *ArchiveAnnotationRequest { + if m == nil { + return (*ArchiveAnnotationRequest)(nil) + } + r := new(ArchiveAnnotationRequest) + r.AnnotationId = m.AnnotationId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ArchiveAnnotationRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ArchiveAnnotationResponse) CloneVT() *ArchiveAnnotationResponse { + if m == nil { + return (*ArchiveAnnotationResponse)(nil) + } + r := new(ArchiveAnnotationResponse) + r.Annotation = m.Annotation.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ArchiveAnnotationResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UnarchiveAnnotationRequest) CloneVT() *UnarchiveAnnotationRequest { + if m == nil { + return (*UnarchiveAnnotationRequest)(nil) + } + r := new(UnarchiveAnnotationRequest) + r.AnnotationId = m.AnnotationId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UnarchiveAnnotationRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UnarchiveAnnotationResponse) CloneVT() *UnarchiveAnnotationResponse { + if m == nil { + return (*UnarchiveAnnotationResponse)(nil) + } + r := new(UnarchiveAnnotationResponse) + r.Annotation = m.Annotation.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UnarchiveAnnotationResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchArchiveAnnotationsRequest) CloneVT() *BatchArchiveAnnotationsRequest { + if m == nil { + return (*BatchArchiveAnnotationsRequest)(nil) + } + r := new(BatchArchiveAnnotationsRequest) + if rhs := m.AnnotationIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.AnnotationIds = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchArchiveAnnotationsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchArchiveAnnotationsResponse) CloneVT() *BatchArchiveAnnotationsResponse { + if m == nil { + return (*BatchArchiveAnnotationsResponse)(nil) + } + r := new(BatchArchiveAnnotationsResponse) + if rhs := m.Annotations; rhs != nil { + tmpContainer := make([]*Annotation, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Annotations = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchArchiveAnnotationsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchUnarchiveAnnotationsRequest) CloneVT() *BatchUnarchiveAnnotationsRequest { + if m == nil { + return (*BatchUnarchiveAnnotationsRequest)(nil) + } + r := new(BatchUnarchiveAnnotationsRequest) + if rhs := m.AnnotationIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.AnnotationIds = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchUnarchiveAnnotationsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchUnarchiveAnnotationsResponse) CloneVT() *BatchUnarchiveAnnotationsResponse { + if m == nil { + return (*BatchUnarchiveAnnotationsResponse)(nil) + } + r := new(BatchUnarchiveAnnotationsResponse) + if rhs := m.Annotations; rhs != nil { + tmpContainer := make([]*Annotation, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Annotations = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchUnarchiveAnnotationsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (this *Annotation) EqualVT(that *Annotation) bool { if this == that { return true @@ -597,6 +755,12 @@ func (this *Annotation) EqualVT(that *Annotation) bool { } } } + if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { + return false + } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1075,108 +1239,364 @@ func (this *UpdateAnnotationResponse) EqualMessageVT(thatMsg proto.Message) bool } return this.EqualVT(that) } - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -// AnnotationServiceClient is the client API for AnnotationService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type AnnotationServiceClient interface { - // Creates an annotation. - CreateAnnotation(ctx context.Context, in *CreateAnnotationRequest, opts ...grpc.CallOption) (*CreateAnnotationResponse, error) - // Delete Annotation is deprecated. Calling this will archive the annotation, which should be done using the - // UpdateAnnotation method with the delete date set to a non-null value. Restoring an annotation can be done - // by calling UpdateAnnotation with the delete date set to a null value. - DeleteAnnotation(ctx context.Context, in *DeleteAnnotationRequest, opts ...grpc.CallOption) (*DeleteAnnotationResponse, error) - // BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored - // by calling UpdateAnnotation with the delete date set to a null value. - BatchDeleteAnnotations(ctx context.Context, in *BatchDeleteAnnotationsRequest, opts ...grpc.CallOption) (*BatchDeleteAnnotationsResponse, error) - // Retrieves annotations using an optional filter. - ListAnnotations(ctx context.Context, in *ListAnnotationsRequest, opts ...grpc.CallOption) (*ListAnnotationsResponse, error) - // Retrieves an annotation - GetAnnotation(ctx context.Context, in *GetAnnotationRequest, opts ...grpc.CallOption) (*GetAnnotationResponse, error) - // Updates an existing annotation using using the list of fields specified in `update_mask`. - UpdateAnnotation(ctx context.Context, in *UpdateAnnotationRequest, opts ...grpc.CallOption) (*UpdateAnnotationResponse, error) +func (this *ArchiveAnnotationRequest) EqualVT(that *ArchiveAnnotationRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AnnotationId != that.AnnotationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -type annotationServiceClient struct { - cc grpc.ClientConnInterface +func (this *ArchiveAnnotationRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ArchiveAnnotationRequest) + if !ok { + return false + } + return this.EqualVT(that) } - -func NewAnnotationServiceClient(cc grpc.ClientConnInterface) AnnotationServiceClient { - return &annotationServiceClient{cc} +func (this *ArchiveAnnotationResponse) EqualVT(that *ArchiveAnnotationResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Annotation.EqualVT(that.Annotation) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (c *annotationServiceClient) CreateAnnotation(ctx context.Context, in *CreateAnnotationRequest, opts ...grpc.CallOption) (*CreateAnnotationResponse, error) { - out := new(CreateAnnotationResponse) - err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/CreateAnnotation", in, out, opts...) - if err != nil { - return nil, err +func (this *ArchiveAnnotationResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ArchiveAnnotationResponse) + if !ok { + return false } - return out, nil + return this.EqualVT(that) } - -func (c *annotationServiceClient) DeleteAnnotation(ctx context.Context, in *DeleteAnnotationRequest, opts ...grpc.CallOption) (*DeleteAnnotationResponse, error) { - out := new(DeleteAnnotationResponse) - err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/DeleteAnnotation", in, out, opts...) - if err != nil { - return nil, err +func (this *UnarchiveAnnotationRequest) EqualVT(that *UnarchiveAnnotationRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return out, nil + if this.AnnotationId != that.AnnotationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (c *annotationServiceClient) BatchDeleteAnnotations(ctx context.Context, in *BatchDeleteAnnotationsRequest, opts ...grpc.CallOption) (*BatchDeleteAnnotationsResponse, error) { - out := new(BatchDeleteAnnotationsResponse) - err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/BatchDeleteAnnotations", in, out, opts...) - if err != nil { - return nil, err +func (this *UnarchiveAnnotationRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UnarchiveAnnotationRequest) + if !ok { + return false } - return out, nil + return this.EqualVT(that) } - -func (c *annotationServiceClient) ListAnnotations(ctx context.Context, in *ListAnnotationsRequest, opts ...grpc.CallOption) (*ListAnnotationsResponse, error) { - out := new(ListAnnotationsResponse) - err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/ListAnnotations", in, out, opts...) - if err != nil { - return nil, err +func (this *UnarchiveAnnotationResponse) EqualVT(that *UnarchiveAnnotationResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return out, nil + if !this.Annotation.EqualVT(that.Annotation) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (c *annotationServiceClient) GetAnnotation(ctx context.Context, in *GetAnnotationRequest, opts ...grpc.CallOption) (*GetAnnotationResponse, error) { - out := new(GetAnnotationResponse) - err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/GetAnnotation", in, out, opts...) - if err != nil { - return nil, err +func (this *UnarchiveAnnotationResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UnarchiveAnnotationResponse) + if !ok { + return false } - return out, nil + return this.EqualVT(that) } - -func (c *annotationServiceClient) UpdateAnnotation(ctx context.Context, in *UpdateAnnotationRequest, opts ...grpc.CallOption) (*UpdateAnnotationResponse, error) { - out := new(UpdateAnnotationResponse) - err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/UpdateAnnotation", in, out, opts...) - if err != nil { - return nil, err +func (this *BatchArchiveAnnotationsRequest) EqualVT(that *BatchArchiveAnnotationsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return out, nil + if len(this.AnnotationIds) != len(that.AnnotationIds) { + return false + } + for i, vx := range this.AnnotationIds { + vy := that.AnnotationIds[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) } -// AnnotationServiceServer is the server API for AnnotationService service. -// All implementations must embed UnimplementedAnnotationServiceServer +func (this *BatchArchiveAnnotationsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchArchiveAnnotationsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *BatchArchiveAnnotationsResponse) EqualVT(that *BatchArchiveAnnotationsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Annotations) != len(that.Annotations) { + return false + } + for i, vx := range this.Annotations { + vy := that.Annotations[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Annotation{} + } + if q == nil { + q = &Annotation{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *BatchArchiveAnnotationsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchArchiveAnnotationsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *BatchUnarchiveAnnotationsRequest) EqualVT(that *BatchUnarchiveAnnotationsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.AnnotationIds) != len(that.AnnotationIds) { + return false + } + for i, vx := range this.AnnotationIds { + vy := that.AnnotationIds[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *BatchUnarchiveAnnotationsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchUnarchiveAnnotationsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *BatchUnarchiveAnnotationsResponse) EqualVT(that *BatchUnarchiveAnnotationsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Annotations) != len(that.Annotations) { + return false + } + for i, vx := range this.Annotations { + vy := that.Annotations[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Annotation{} + } + if q == nil { + q = &Annotation{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *BatchUnarchiveAnnotationsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchUnarchiveAnnotationsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// AnnotationServiceClient is the client API for AnnotationService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type AnnotationServiceClient interface { + // Creates an annotation. + CreateAnnotation(ctx context.Context, in *CreateAnnotationRequest, opts ...grpc.CallOption) (*CreateAnnotationResponse, error) + // Deprecated: Do not use. + // Delete Annotation is deprecated. Use ArchiveAnnotation instead. + // Calling this will archive the annotation, which should be done using the + // ArchiveAnnotation method or the UpdateAnnotation method with the delete date set to a non-null value. + // Restoring an annotation can be done using the UnarchiveAnnotation method or by calling + // UpdateAnnotation with the delete date set to a null value. + DeleteAnnotation(ctx context.Context, in *DeleteAnnotationRequest, opts ...grpc.CallOption) (*DeleteAnnotationResponse, error) + // Archives an annotation. + ArchiveAnnotation(ctx context.Context, in *ArchiveAnnotationRequest, opts ...grpc.CallOption) (*ArchiveAnnotationResponse, error) + // Unarchives an annotation. + UnarchiveAnnotation(ctx context.Context, in *UnarchiveAnnotationRequest, opts ...grpc.CallOption) (*UnarchiveAnnotationResponse, error) + // Deprecated: Do not use. + // BatchDeleteAnnotations is deprecated. Use BatchArchiveAnnotations instead. + // BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored + // by calling UnarchiveAnnotation or UpdateAnnotation with the delete date set to a null value. + BatchDeleteAnnotations(ctx context.Context, in *BatchDeleteAnnotationsRequest, opts ...grpc.CallOption) (*BatchDeleteAnnotationsResponse, error) + // Batch archives annotations. + BatchArchiveAnnotations(ctx context.Context, in *BatchArchiveAnnotationsRequest, opts ...grpc.CallOption) (*BatchArchiveAnnotationsResponse, error) + // Batch unarchives annotations. + BatchUnarchiveAnnotations(ctx context.Context, in *BatchUnarchiveAnnotationsRequest, opts ...grpc.CallOption) (*BatchUnarchiveAnnotationsResponse, error) + // Retrieves annotations using an optional filter. + ListAnnotations(ctx context.Context, in *ListAnnotationsRequest, opts ...grpc.CallOption) (*ListAnnotationsResponse, error) + // Retrieves an annotation + GetAnnotation(ctx context.Context, in *GetAnnotationRequest, opts ...grpc.CallOption) (*GetAnnotationResponse, error) + // Updates an existing annotation using using the list of fields specified in `update_mask`. + UpdateAnnotation(ctx context.Context, in *UpdateAnnotationRequest, opts ...grpc.CallOption) (*UpdateAnnotationResponse, error) +} + +type annotationServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewAnnotationServiceClient(cc grpc.ClientConnInterface) AnnotationServiceClient { + return &annotationServiceClient{cc} +} + +func (c *annotationServiceClient) CreateAnnotation(ctx context.Context, in *CreateAnnotationRequest, opts ...grpc.CallOption) (*CreateAnnotationResponse, error) { + out := new(CreateAnnotationResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/CreateAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Deprecated: Do not use. +func (c *annotationServiceClient) DeleteAnnotation(ctx context.Context, in *DeleteAnnotationRequest, opts ...grpc.CallOption) (*DeleteAnnotationResponse, error) { + out := new(DeleteAnnotationResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/DeleteAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *annotationServiceClient) ArchiveAnnotation(ctx context.Context, in *ArchiveAnnotationRequest, opts ...grpc.CallOption) (*ArchiveAnnotationResponse, error) { + out := new(ArchiveAnnotationResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/ArchiveAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *annotationServiceClient) UnarchiveAnnotation(ctx context.Context, in *UnarchiveAnnotationRequest, opts ...grpc.CallOption) (*UnarchiveAnnotationResponse, error) { + out := new(UnarchiveAnnotationResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/UnarchiveAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Deprecated: Do not use. +func (c *annotationServiceClient) BatchDeleteAnnotations(ctx context.Context, in *BatchDeleteAnnotationsRequest, opts ...grpc.CallOption) (*BatchDeleteAnnotationsResponse, error) { + out := new(BatchDeleteAnnotationsResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/BatchDeleteAnnotations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *annotationServiceClient) BatchArchiveAnnotations(ctx context.Context, in *BatchArchiveAnnotationsRequest, opts ...grpc.CallOption) (*BatchArchiveAnnotationsResponse, error) { + out := new(BatchArchiveAnnotationsResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *annotationServiceClient) BatchUnarchiveAnnotations(ctx context.Context, in *BatchUnarchiveAnnotationsRequest, opts ...grpc.CallOption) (*BatchUnarchiveAnnotationsResponse, error) { + out := new(BatchUnarchiveAnnotationsResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *annotationServiceClient) ListAnnotations(ctx context.Context, in *ListAnnotationsRequest, opts ...grpc.CallOption) (*ListAnnotationsResponse, error) { + out := new(ListAnnotationsResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/ListAnnotations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *annotationServiceClient) GetAnnotation(ctx context.Context, in *GetAnnotationRequest, opts ...grpc.CallOption) (*GetAnnotationResponse, error) { + out := new(GetAnnotationResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/GetAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *annotationServiceClient) UpdateAnnotation(ctx context.Context, in *UpdateAnnotationRequest, opts ...grpc.CallOption) (*UpdateAnnotationResponse, error) { + out := new(UpdateAnnotationResponse) + err := c.cc.Invoke(ctx, "/sift.annotations.v1.AnnotationService/UpdateAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AnnotationServiceServer is the server API for AnnotationService service. +// All implementations must embed UnimplementedAnnotationServiceServer // for forward compatibility type AnnotationServiceServer interface { // Creates an annotation. CreateAnnotation(context.Context, *CreateAnnotationRequest) (*CreateAnnotationResponse, error) - // Delete Annotation is deprecated. Calling this will archive the annotation, which should be done using the - // UpdateAnnotation method with the delete date set to a non-null value. Restoring an annotation can be done - // by calling UpdateAnnotation with the delete date set to a null value. + // Deprecated: Do not use. + // Delete Annotation is deprecated. Use ArchiveAnnotation instead. + // Calling this will archive the annotation, which should be done using the + // ArchiveAnnotation method or the UpdateAnnotation method with the delete date set to a non-null value. + // Restoring an annotation can be done using the UnarchiveAnnotation method or by calling + // UpdateAnnotation with the delete date set to a null value. DeleteAnnotation(context.Context, *DeleteAnnotationRequest) (*DeleteAnnotationResponse, error) + // Archives an annotation. + ArchiveAnnotation(context.Context, *ArchiveAnnotationRequest) (*ArchiveAnnotationResponse, error) + // Unarchives an annotation. + UnarchiveAnnotation(context.Context, *UnarchiveAnnotationRequest) (*UnarchiveAnnotationResponse, error) + // Deprecated: Do not use. + // BatchDeleteAnnotations is deprecated. Use BatchArchiveAnnotations instead. // BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored - // by calling UpdateAnnotation with the delete date set to a null value. + // by calling UnarchiveAnnotation or UpdateAnnotation with the delete date set to a null value. BatchDeleteAnnotations(context.Context, *BatchDeleteAnnotationsRequest) (*BatchDeleteAnnotationsResponse, error) + // Batch archives annotations. + BatchArchiveAnnotations(context.Context, *BatchArchiveAnnotationsRequest) (*BatchArchiveAnnotationsResponse, error) + // Batch unarchives annotations. + BatchUnarchiveAnnotations(context.Context, *BatchUnarchiveAnnotationsRequest) (*BatchUnarchiveAnnotationsResponse, error) // Retrieves annotations using an optional filter. ListAnnotations(context.Context, *ListAnnotationsRequest) (*ListAnnotationsResponse, error) // Retrieves an annotation @@ -1196,9 +1616,21 @@ func (UnimplementedAnnotationServiceServer) CreateAnnotation(context.Context, *C func (UnimplementedAnnotationServiceServer) DeleteAnnotation(context.Context, *DeleteAnnotationRequest) (*DeleteAnnotationResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteAnnotation not implemented") } +func (UnimplementedAnnotationServiceServer) ArchiveAnnotation(context.Context, *ArchiveAnnotationRequest) (*ArchiveAnnotationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArchiveAnnotation not implemented") +} +func (UnimplementedAnnotationServiceServer) UnarchiveAnnotation(context.Context, *UnarchiveAnnotationRequest) (*UnarchiveAnnotationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnarchiveAnnotation not implemented") +} func (UnimplementedAnnotationServiceServer) BatchDeleteAnnotations(context.Context, *BatchDeleteAnnotationsRequest) (*BatchDeleteAnnotationsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BatchDeleteAnnotations not implemented") } +func (UnimplementedAnnotationServiceServer) BatchArchiveAnnotations(context.Context, *BatchArchiveAnnotationsRequest) (*BatchArchiveAnnotationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchArchiveAnnotations not implemented") +} +func (UnimplementedAnnotationServiceServer) BatchUnarchiveAnnotations(context.Context, *BatchUnarchiveAnnotationsRequest) (*BatchUnarchiveAnnotationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchUnarchiveAnnotations not implemented") +} func (UnimplementedAnnotationServiceServer) ListAnnotations(context.Context, *ListAnnotationsRequest) (*ListAnnotationsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListAnnotations not implemented") } @@ -1257,6 +1689,42 @@ func _AnnotationService_DeleteAnnotation_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } +func _AnnotationService_ArchiveAnnotation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ArchiveAnnotationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnnotationServiceServer).ArchiveAnnotation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.annotations.v1.AnnotationService/ArchiveAnnotation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnnotationServiceServer).ArchiveAnnotation(ctx, req.(*ArchiveAnnotationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AnnotationService_UnarchiveAnnotation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UnarchiveAnnotationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnnotationServiceServer).UnarchiveAnnotation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.annotations.v1.AnnotationService/UnarchiveAnnotation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnnotationServiceServer).UnarchiveAnnotation(ctx, req.(*UnarchiveAnnotationRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AnnotationService_BatchDeleteAnnotations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(BatchDeleteAnnotationsRequest) if err := dec(in); err != nil { @@ -1275,6 +1743,42 @@ func _AnnotationService_BatchDeleteAnnotations_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _AnnotationService_BatchArchiveAnnotations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchArchiveAnnotationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnnotationServiceServer).BatchArchiveAnnotations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnnotationServiceServer).BatchArchiveAnnotations(ctx, req.(*BatchArchiveAnnotationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AnnotationService_BatchUnarchiveAnnotations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchUnarchiveAnnotationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnnotationServiceServer).BatchUnarchiveAnnotations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnnotationServiceServer).BatchUnarchiveAnnotations(ctx, req.(*BatchUnarchiveAnnotationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AnnotationService_ListAnnotations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListAnnotationsRequest) if err := dec(in); err != nil { @@ -1345,8 +1849,24 @@ var AnnotationService_ServiceDesc = grpc.ServiceDesc{ Handler: _AnnotationService_DeleteAnnotation_Handler, }, { - MethodName: "BatchDeleteAnnotations", - Handler: _AnnotationService_BatchDeleteAnnotations_Handler, + MethodName: "ArchiveAnnotation", + Handler: _AnnotationService_ArchiveAnnotation_Handler, + }, + { + MethodName: "UnarchiveAnnotation", + Handler: _AnnotationService_UnarchiveAnnotation_Handler, + }, + { + MethodName: "BatchDeleteAnnotations", + Handler: _AnnotationService_BatchDeleteAnnotations_Handler, + }, + { + MethodName: "BatchArchiveAnnotations", + Handler: _AnnotationService_BatchArchiveAnnotations_Handler, + }, + { + MethodName: "BatchUnarchiveAnnotations", + Handler: _AnnotationService_BatchUnarchiveAnnotations_Handler, }, { MethodName: "ListAnnotations", @@ -1395,6 +1915,30 @@ func (m *Annotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd8 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd2 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -2478,25 +3022,25 @@ func (m *UpdateAnnotationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, err return len(dAtA) - i, nil } -func (m *Annotation) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ArchiveAnnotationRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ArchiveAnnotationRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ArchiveAnnotationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2508,278 +3052,161 @@ func (m *Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Metadata) > 0 { - for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Metadata[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xca - } + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + i-- + dAtA[i] = 0xa } - if len(m.AssetIds) > 0 { - for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AssetIds[iNdEx]) - copy(dAtA[i:], m.AssetIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xc2 - } + return len(dAtA) - i, nil +} + +func (m *ArchiveAnnotationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if len(m.LinkedChannels) > 0 { - for iNdEx := len(m.LinkedChannels) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.LinkedChannels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xba - } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err } - if m.DeletedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + return dAtA[:n], nil +} + +func (m *ArchiveAnnotationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ArchiveAnnotationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xb2 + dAtA[i] = 0xa } - if m.AssignedToUser != nil { - if vtmsg, ok := interface{}(m.AssignedToUser).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.AssignedToUser) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xaa + return len(dAtA) - i, nil +} + +func (m *UnarchiveAnnotationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.Pending { - i-- - if m.Pending { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xa0 + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err } - if m.ReportRuleVersionId != nil { - i -= len(*m.ReportRuleVersionId) - copy(dAtA[i:], *m.ReportRuleVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ReportRuleVersionId))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x9a + return dAtA[:n], nil +} + +func (m *UnarchiveAnnotationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UnarchiveAnnotationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } - if m.CreatedByRuleConditionVersionId != nil { - i -= len(*m.CreatedByRuleConditionVersionId) - copy(dAtA[i:], *m.CreatedByRuleConditionVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CreatedByRuleConditionVersionId))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x92 + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.CreatedByConditionId != nil { - i -= len(*m.CreatedByConditionId) - copy(dAtA[i:], *m.CreatedByConditionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CreatedByConditionId))) - i-- - dAtA[i] = 0x1 + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) i-- - dAtA[i] = 0x8a + dAtA[i] = 0xa } - if m.LegendConfig != nil { - i -= len(*m.LegendConfig) - copy(dAtA[i:], *m.LegendConfig) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.LegendConfig))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x82 + return len(dAtA) - i, nil +} + +func (m *UnarchiveAnnotationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if len(m.Tags) > 0 { - for iNdEx := len(m.Tags) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Tags[iNdEx]) - copy(dAtA[i:], m.Tags[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Tags[iNdEx]))) - i-- - dAtA[i] = 0x7a - } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err } - if m.AnnotationType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AnnotationType)) - i-- - dAtA[i] = 0x70 + return dAtA[:n], nil +} + +func (m *UnarchiveAnnotationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UnarchiveAnnotationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } - if len(m.AssignedToUserId) > 0 { - i -= len(m.AssignedToUserId) - copy(dAtA[i:], m.AssignedToUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssignedToUserId))) - i-- - dAtA[i] = 0x6a - } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) - i-- - dAtA[i] = 0x62 - } - if m.State != nil { - i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.State)) - i-- - dAtA[i] = 0x58 - } - if m.RunId != nil { - i -= len(*m.RunId) - copy(dAtA[i:], *m.RunId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RunId))) - i-- - dAtA[i] = 0x52 - } - if m.ModifiedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x4a - } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x42 - } - if len(m.ModifiedByUserId) > 0 { - i -= len(m.ModifiedByUserId) - copy(dAtA[i:], m.ModifiedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) - i-- - dAtA[i] = 0x3a - } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) - i-- - dAtA[i] = 0x32 - } - if m.EndTime != nil { - size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x2a + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.StartTime != nil { - size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x22 - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x1a - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x12 - } - if len(m.AnnotationId) > 0 { - i -= len(m.AnnotationId) - copy(dAtA[i:], m.AnnotationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) - i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *AnnotationLinkedChannelsChannel) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchArchiveAnnotationsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *AnnotationLinkedChannelsChannel) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveAnnotationsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *AnnotationLinkedChannelsChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveAnnotationsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2791,35 +3218,37 @@ func (m *AnnotationLinkedChannelsChannel) MarshalToSizedBufferVTStrict(dAtA []by i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ChannelId) > 0 { - i -= len(m.ChannelId) - copy(dAtA[i:], m.ChannelId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) - i-- - dAtA[i] = 0xa + if len(m.AnnotationIds) > 0 { + for iNdEx := len(m.AnnotationIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AnnotationIds[iNdEx]) + copy(dAtA[i:], m.AnnotationIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *AnnotationLinkedChannelsBitFieldElement) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchArchiveAnnotationsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *AnnotationLinkedChannelsBitFieldElement) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveAnnotationsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *AnnotationLinkedChannelsBitFieldElement) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveAnnotationsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2831,42 +3260,40 @@ func (m *AnnotationLinkedChannelsBitFieldElement) MarshalToSizedBufferVTStrict(d i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.BitFieldName) > 0 { - i -= len(m.BitFieldName) - copy(dAtA[i:], m.BitFieldName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.BitFieldName))) - i-- - dAtA[i] = 0x12 - } - if len(m.ChannelId) > 0 { - i -= len(m.ChannelId) - copy(dAtA[i:], m.ChannelId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) - i-- - dAtA[i] = 0xa + if len(m.Annotations) > 0 { + for iNdEx := len(m.Annotations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Annotations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *AnnotationLinkedChannel) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchUnarchiveAnnotationsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *AnnotationLinkedChannel) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveAnnotationsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *AnnotationLinkedChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveAnnotationsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2878,62 +3305,64 @@ func (m *AnnotationLinkedChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if msg, ok := m.Type.(*AnnotationLinkedChannel_BitFieldElement); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - } - if msg, ok := m.Type.(*AnnotationLinkedChannel_Channel); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if len(m.AnnotationIds) > 0 { + for iNdEx := len(m.AnnotationIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AnnotationIds[iNdEx]) + copy(dAtA[i:], m.AnnotationIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationIds[iNdEx]))) + i-- + dAtA[i] = 0xa } - i -= size } return len(dAtA) - i, nil } -func (m *AnnotationLinkedChannel_Channel) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveAnnotationsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *AnnotationLinkedChannel_Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Channel != nil { - size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return dAtA[:n], nil } -func (m *AnnotationLinkedChannel_BitFieldElement) MarshalToVTStrict(dAtA []byte) (int, error) { + +func (m *BatchUnarchiveAnnotationsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *AnnotationLinkedChannel_BitFieldElement) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveAnnotationsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.BitFieldElement != nil { - size, err := m.BitFieldElement.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Annotations) > 0 { + for iNdEx := len(m.Annotations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Annotations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 } return len(dAtA) - i, nil } -func (m *CreateAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { + +func (m *Annotation) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2946,12 +3375,12 @@ func (m *CreateAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CreateAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *CreateAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2963,113 +3392,238 @@ func (m *CreateAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Metadata) > 0 { - for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Metadata[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd8 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd2 + } + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) copy(dAtA[i:], encoded) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0x82 + dAtA[i] = 0xca + } + } + if len(m.AssetIds) > 0 { + for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetIds[iNdEx]) + copy(dAtA[i:], m.AssetIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + } + if len(m.LinkedChannels) > 0 { + for iNdEx := len(m.LinkedChannels) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.LinkedChannels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + } + if m.DeletedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + if m.AssignedToUser != nil { + if vtmsg, ok := interface{}(m.AssignedToUser).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.AssignedToUser) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + if m.Pending { + i-- + if m.Pending { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if m.ReportRuleVersionId != nil { + i -= len(*m.ReportRuleVersionId) + copy(dAtA[i:], *m.ReportRuleVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ReportRuleVersionId))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a } if m.CreatedByRuleConditionVersionId != nil { i -= len(*m.CreatedByRuleConditionVersionId) copy(dAtA[i:], *m.CreatedByRuleConditionVersionId) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CreatedByRuleConditionVersionId))) i-- - dAtA[i] = 0x7a + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 } if m.CreatedByConditionId != nil { i -= len(*m.CreatedByConditionId) copy(dAtA[i:], *m.CreatedByConditionId) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CreatedByConditionId))) i-- - dAtA[i] = 0x72 + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a } if m.LegendConfig != nil { i -= len(*m.LegendConfig) copy(dAtA[i:], *m.LegendConfig) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.LegendConfig))) i-- - dAtA[i] = 0x6a + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + if len(m.Tags) > 0 { + for iNdEx := len(m.Tags) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Tags[iNdEx]) + copy(dAtA[i:], m.Tags[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Tags[iNdEx]))) + i-- + dAtA[i] = 0x7a + } } if m.AnnotationType != 0 { i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AnnotationType)) i-- - dAtA[i] = 0x60 + dAtA[i] = 0x70 } - if m.State != nil { - i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.State)) + if len(m.AssignedToUserId) > 0 { + i -= len(m.AssignedToUserId) + copy(dAtA[i:], m.AssignedToUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssignedToUserId))) i-- - dAtA[i] = 0x58 + dAtA[i] = 0x6a } if len(m.OrganizationId) > 0 { i -= len(m.OrganizationId) copy(dAtA[i:], m.OrganizationId) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) i-- - dAtA[i] = 0x52 + dAtA[i] = 0x62 } - if m.AssignToUserId != nil { - i -= len(*m.AssignToUserId) - copy(dAtA[i:], *m.AssignToUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.AssignToUserId))) + if m.State != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.State)) i-- - dAtA[i] = 0x4a + dAtA[i] = 0x58 } if m.RunId != nil { i -= len(*m.RunId) copy(dAtA[i:], *m.RunId) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RunId))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x52 } - if len(m.Tags) > 0 { - for iNdEx := len(m.Tags) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Tags[iNdEx]) - copy(dAtA[i:], m.Tags[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Tags[iNdEx]))) - i-- - dAtA[i] = 0x3a + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a } - if len(m.LinkedChannels) > 0 { - for iNdEx := len(m.LinkedChannels) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.LinkedChannels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 } - if len(m.Assets) > 0 { - for iNdEx := len(m.Assets) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Assets[iNdEx]) - copy(dAtA[i:], m.Assets[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Assets[iNdEx]))) - i-- - dAtA[i] = 0x2a - } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x3a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x32 } if m.EndTime != nil { size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVTStrict(dAtA[:i]) @@ -3079,7 +3633,7 @@ func (m *CreateAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x2a } if m.StartTime != nil { size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVTStrict(dAtA[:i]) @@ -3089,26 +3643,33 @@ func (m *CreateAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } if len(m.Description) > 0 { i -= len(m.Description) copy(dAtA[i:], m.Description) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } if len(m.Name) > 0 { i -= len(m.Name) copy(dAtA[i:], m.Name) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) i-- + dAtA[i] = 0x12 + } + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *CreateAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *AnnotationLinkedChannelsChannel) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3121,12 +3682,12 @@ func (m *CreateAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CreateAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *AnnotationLinkedChannelsChannel) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *CreateAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *AnnotationLinkedChannelsChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3138,20 +3699,17 @@ func (m *CreateAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Annotation != nil { - size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.ChannelId) > 0 { + i -= len(m.ChannelId) + copy(dAtA[i:], m.ChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *DeleteAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *AnnotationLinkedChannelsBitFieldElement) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3164,12 +3722,12 @@ func (m *DeleteAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DeleteAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *AnnotationLinkedChannelsBitFieldElement) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *DeleteAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *AnnotationLinkedChannelsBitFieldElement) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3181,17 +3739,24 @@ func (m *DeleteAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.AnnotationId) > 0 { - i -= len(m.AnnotationId) - copy(dAtA[i:], m.AnnotationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + if len(m.BitFieldName) > 0 { + i -= len(m.BitFieldName) + copy(dAtA[i:], m.BitFieldName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.BitFieldName))) + i-- + dAtA[i] = 0x12 + } + if len(m.ChannelId) > 0 { + i -= len(m.ChannelId) + copy(dAtA[i:], m.ChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *DeleteAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *AnnotationLinkedChannel) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3204,12 +3769,12 @@ func (m *DeleteAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DeleteAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *AnnotationLinkedChannel) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *DeleteAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *AnnotationLinkedChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3221,10 +3786,62 @@ func (m *DeleteAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if msg, ok := m.Type.(*AnnotationLinkedChannel_BitFieldElement); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Type.(*AnnotationLinkedChannel_Channel); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } return len(dAtA) - i, nil } -func (m *BatchDeleteAnnotationsRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *AnnotationLinkedChannel_Channel) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *AnnotationLinkedChannel_Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Channel != nil { + size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *AnnotationLinkedChannel_BitFieldElement) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *AnnotationLinkedChannel_BitFieldElement) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.BitFieldElement != nil { + size, err := m.BitFieldElement.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *CreateAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3237,12 +3854,12 @@ func (m *BatchDeleteAnnotationsRequest) MarshalVTStrict() (dAtA []byte, err erro return dAtA[:n], nil } -func (m *BatchDeleteAnnotationsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *CreateAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchDeleteAnnotationsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *CreateAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3254,19 +3871,152 @@ func (m *BatchDeleteAnnotationsRequest) MarshalToSizedBufferVTStrict(dAtA []byte i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.AnnotationIds) > 0 { - for iNdEx := len(m.AnnotationIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AnnotationIds[iNdEx]) - copy(dAtA[i:], m.AnnotationIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationIds[iNdEx]))) + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } i-- - dAtA[i] = 0xa + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } + if m.CreatedByRuleConditionVersionId != nil { + i -= len(*m.CreatedByRuleConditionVersionId) + copy(dAtA[i:], *m.CreatedByRuleConditionVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CreatedByRuleConditionVersionId))) + i-- + dAtA[i] = 0x7a + } + if m.CreatedByConditionId != nil { + i -= len(*m.CreatedByConditionId) + copy(dAtA[i:], *m.CreatedByConditionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CreatedByConditionId))) + i-- + dAtA[i] = 0x72 + } + if m.LegendConfig != nil { + i -= len(*m.LegendConfig) + copy(dAtA[i:], *m.LegendConfig) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.LegendConfig))) + i-- + dAtA[i] = 0x6a + } + if m.AnnotationType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AnnotationType)) + i-- + dAtA[i] = 0x60 + } + if m.State != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.State)) + i-- + dAtA[i] = 0x58 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x52 + } + if m.AssignToUserId != nil { + i -= len(*m.AssignToUserId) + copy(dAtA[i:], *m.AssignToUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.AssignToUserId))) + i-- + dAtA[i] = 0x4a + } + if m.RunId != nil { + i -= len(*m.RunId) + copy(dAtA[i:], *m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RunId))) + i-- + dAtA[i] = 0x42 + } + if len(m.Tags) > 0 { + for iNdEx := len(m.Tags) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Tags[iNdEx]) + copy(dAtA[i:], m.Tags[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Tags[iNdEx]))) + i-- + dAtA[i] = 0x3a + } + } + if len(m.LinkedChannels) > 0 { + for iNdEx := len(m.LinkedChannels) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.LinkedChannels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + } + if len(m.Assets) > 0 { + for iNdEx := len(m.Assets) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Assets[iNdEx]) + copy(dAtA[i:], m.Assets[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Assets[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if m.EndTime != nil { + size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.StartTime != nil { + size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BatchDeleteAnnotationsResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *CreateAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3279,12 +4029,12 @@ func (m *BatchDeleteAnnotationsResponse) MarshalVTStrict() (dAtA []byte, err err return dAtA[:n], nil } -func (m *BatchDeleteAnnotationsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *CreateAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchDeleteAnnotationsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *CreateAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3296,10 +4046,20 @@ func (m *BatchDeleteAnnotationsResponse) MarshalToSizedBufferVTStrict(dAtA []byt i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *GetAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *DeleteAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3312,12 +4072,12 @@ func (m *GetAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *DeleteAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *DeleteAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3339,7 +4099,7 @@ func (m *GetAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *GetAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *DeleteAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3352,12 +4112,12 @@ func (m *GetAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *DeleteAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *DeleteAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3369,14 +4129,162 @@ func (m *GetAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Annotation != nil { - size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- + return len(dAtA) - i, nil +} + +func (m *BatchDeleteAnnotationsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchDeleteAnnotationsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchDeleteAnnotationsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AnnotationIds) > 0 { + for iNdEx := len(m.AnnotationIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AnnotationIds[iNdEx]) + copy(dAtA[i:], m.AnnotationIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *BatchDeleteAnnotationsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchDeleteAnnotationsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchDeleteAnnotationsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *GetAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil @@ -3596,214 +4504,362 @@ func (m *UpdateAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (in return len(dAtA) - i, nil } -func (m *Annotation) SizeVT() (n int) { +func (m *ArchiveAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ArchiveAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ArchiveAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.AnnotationId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Name) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - l = len(m.Description) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + i-- + dAtA[i] = 0xa } - if m.StartTime != nil { - l = (*timestamppb1.Timestamp)(m.StartTime).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *ArchiveAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.EndTime != nil { - l = (*timestamppb1.Timestamp)(m.EndTime).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - l = len(m.CreatedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return dAtA[:n], nil +} + +func (m *ArchiveAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ArchiveAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } - l = len(m.ModifiedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.CreatedDate != nil { - l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - if m.ModifiedDate != nil { - l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *UnarchiveAnnotationRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.RunId != nil { - l = len(*m.RunId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.State != nil { - n += 1 + protohelpers.SizeOfVarint(uint64(*m.State)) - } - l = len(m.OrganizationId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.AssignedToUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.AnnotationType != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.AnnotationType)) - } - if len(m.Tags) > 0 { - for _, s := range m.Tags { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - } - if m.LegendConfig != nil { - l = len(*m.LegendConfig) - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.CreatedByConditionId != nil { - l = len(*m.CreatedByConditionId) - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - if m.CreatedByRuleConditionVersionId != nil { - l = len(*m.CreatedByRuleConditionVersionId) - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + return dAtA[:n], nil +} + +func (m *UnarchiveAnnotationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UnarchiveAnnotationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } - if m.ReportRuleVersionId != nil { - l = len(*m.ReportRuleVersionId) - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.Pending { - n += 3 + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + i-- + dAtA[i] = 0xa } - if m.AssignedToUser != nil { - if size, ok := interface{}(m.AssignedToUser).(interface { - SizeVT() int - }); ok { - l = size.SizeVT() - } else { - l = proto.Size(m.AssignedToUser) - } - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *UnarchiveAnnotationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.DeletedDate != nil { - l = (*timestamppb1.Timestamp)(m.DeletedDate).SizeVT() - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - if len(m.LinkedChannels) > 0 { - for _, e := range m.LinkedChannels { - l = e.SizeVT() - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) - } + return dAtA[:n], nil +} + +func (m *UnarchiveAnnotationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UnarchiveAnnotationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } - if len(m.AssetIds) > 0 { - for _, s := range m.AssetIds { - l = len(s) - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) - } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if len(m.Metadata) > 0 { - for _, e := range m.Metadata { - if size, ok := interface{}(e).(interface { - SizeVT() int - }); ok { - l = size.SizeVT() - } else { - l = proto.Size(e) - } - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *AnnotationLinkedChannelsChannel) SizeVT() (n int) { +func (m *BatchArchiveAnnotationsRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - l = len(m.ChannelId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *AnnotationLinkedChannelsBitFieldElement) SizeVT() (n int) { +func (m *BatchArchiveAnnotationsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchArchiveAnnotationsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.ChannelId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - l = len(m.BitFieldName) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.AnnotationIds) > 0 { + for iNdEx := len(m.AnnotationIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AnnotationIds[iNdEx]) + copy(dAtA[i:], m.AnnotationIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *AnnotationLinkedChannel) SizeVT() (n int) { +func (m *BatchArchiveAnnotationsResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - if vtmsg, ok := m.Type.(interface{ SizeVT() int }); ok { - n += vtmsg.SizeVT() + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *AnnotationLinkedChannel_Channel) SizeVT() (n int) { +func (m *BatchArchiveAnnotationsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchArchiveAnnotationsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if m.Channel != nil { - l = m.Channel.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - return n + if len(m.Annotations) > 0 { + for iNdEx := len(m.Annotations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Annotations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil } -func (m *AnnotationLinkedChannel_BitFieldElement) SizeVT() (n int) { + +func (m *BatchUnarchiveAnnotationsRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - if m.BitFieldElement != nil { - l = m.BitFieldElement.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *CreateAnnotationRequest) SizeVT() (n int) { + +func (m *BatchUnarchiveAnnotationsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchUnarchiveAnnotationsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - l = len(m.Description) - if l > 0 { + if len(m.AnnotationIds) > 0 { + for iNdEx := len(m.AnnotationIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AnnotationIds[iNdEx]) + copy(dAtA[i:], m.AnnotationIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *BatchUnarchiveAnnotationsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchUnarchiveAnnotationsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchUnarchiveAnnotationsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Annotations) > 0 { + for iNdEx := len(m.Annotations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Annotations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Annotation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Description) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } if m.StartTime != nil { @@ -3814,53 +4870,90 @@ func (m *CreateAnnotationRequest) SizeVT() (n int) { l = (*timestamppb1.Timestamp)(m.EndTime).SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if len(m.Assets) > 0 { - for _, s := range m.Assets { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if len(m.LinkedChannels) > 0 { - for _, e := range m.LinkedChannels { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if len(m.Tags) > 0 { - for _, s := range m.Tags { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } if m.RunId != nil { l = len(*m.RunId) n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.AssignToUserId != nil { - l = len(*m.AssignToUserId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.State != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.State)) } l = len(m.OrganizationId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.State != nil { - n += 1 + protohelpers.SizeOfVarint(uint64(*m.State)) + l = len(m.AssignedToUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } if m.AnnotationType != 0 { n += 1 + protohelpers.SizeOfVarint(uint64(m.AnnotationType)) } + if len(m.Tags) > 0 { + for _, s := range m.Tags { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } if m.LegendConfig != nil { l = len(*m.LegendConfig) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) } if m.CreatedByConditionId != nil { l = len(*m.CreatedByConditionId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) } if m.CreatedByRuleConditionVersionId != nil { l = len(*m.CreatedByRuleConditionVersionId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ReportRuleVersionId != nil { + l = len(*m.ReportRuleVersionId) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Pending { + n += 3 + } + if m.AssignedToUser != nil { + if size, ok := interface{}(m.AssignedToUser).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.AssignedToUser) + } + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.DeletedDate != nil { + l = (*timestamppb1.Timestamp)(m.DeletedDate).SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.LinkedChannels) > 0 { + for _, e := range m.LinkedChannels { + l = e.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.AssetIds) > 0 { + for _, s := range m.AssetIds { + l = len(s) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } } if len(m.Metadata) > 0 { for _, e := range m.Metadata { @@ -3874,31 +4967,24 @@ func (m *CreateAnnotationRequest) SizeVT() (n int) { n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) } } - n += len(m.unknownFields) - return n -} - -func (m *CreateAnnotationResponse) SizeVT() (n int) { - if m == nil { - return 0 + if m.ArchivedDate != nil { + l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) } - var l int - _ = l - if m.Annotation != nil { - l = m.Annotation.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.IsArchived { + n += 3 } n += len(m.unknownFields) return n } -func (m *DeleteAnnotationRequest) SizeVT() (n int) { +func (m *AnnotationLinkedChannelsChannel) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.AnnotationId) + l = len(m.ChannelId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } @@ -3906,118 +4992,287 @@ func (m *DeleteAnnotationRequest) SizeVT() (n int) { return n } -func (m *DeleteAnnotationResponse) SizeVT() (n int) { +func (m *AnnotationLinkedChannelsBitFieldElement) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - n += len(m.unknownFields) - return n -} - -func (m *BatchDeleteAnnotationsRequest) SizeVT() (n int) { - if m == nil { - return 0 + l = len(m.ChannelId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - var l int - _ = l - if len(m.AnnotationIds) > 0 { - for _, s := range m.AnnotationIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + l = len(m.BitFieldName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *BatchDeleteAnnotationsResponse) SizeVT() (n int) { +func (m *AnnotationLinkedChannel) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l + if vtmsg, ok := m.Type.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } n += len(m.unknownFields) return n } -func (m *GetAnnotationRequest) SizeVT() (n int) { +func (m *AnnotationLinkedChannel_Channel) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.AnnotationId) - if l > 0 { + if m.Channel != nil { + l = m.Channel.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - n += len(m.unknownFields) return n } - -func (m *GetAnnotationResponse) SizeVT() (n int) { +func (m *AnnotationLinkedChannel_BitFieldElement) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Annotation != nil { - l = m.Annotation.SizeVT() + if m.BitFieldElement != nil { + l = m.BitFieldElement.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - n += len(m.unknownFields) return n } - -func (m *ListAnnotationsRequest) SizeVT() (n int) { +func (m *CreateAnnotationRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.PageSize != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) - } - l = len(m.PageToken) + l = len(m.Name) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.Filter) + l = len(m.Description) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.OrganizationId) - if l > 0 { + if m.StartTime != nil { + l = (*timestamppb1.Timestamp)(m.StartTime).SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.OrderBy) - if l > 0 { + if m.EndTime != nil { + l = (*timestamppb1.Timestamp)(m.EndTime).SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - n += len(m.unknownFields) - return n -} - -func (m *ListAnnotationsResponse) SizeVT() (n int) { - if m == nil { - return 0 + if len(m.Assets) > 0 { + for _, s := range m.Assets { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } - var l int - _ = l - if len(m.Annotations) > 0 { - for _, e := range m.Annotations { + if len(m.LinkedChannels) > 0 { + for _, e := range m.LinkedChannels { l = e.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - l = len(m.NextPageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n -} + if len(m.Tags) > 0 { + for _, s := range m.Tags { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.RunId != nil { + l = len(*m.RunId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.AssignToUserId != nil { + l = len(*m.AssignToUserId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.State != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.State)) + } + if m.AnnotationType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.AnnotationType)) + } + if m.LegendConfig != nil { + l = len(*m.LegendConfig) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedByConditionId != nil { + l = len(*m.CreatedByConditionId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedByRuleConditionVersionId != nil { + l = len(*m.CreatedByRuleConditionVersionId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *CreateAnnotationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + l = m.Annotation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *DeleteAnnotationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *DeleteAnnotationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *BatchDeleteAnnotationsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.AnnotationIds) > 0 { + for _, s := range m.AnnotationIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *BatchDeleteAnnotationsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *GetAnnotationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetAnnotationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + l = m.Annotation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListAnnotationsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListAnnotationsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Annotations) > 0 { + for _, e := range m.Annotations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} func (m *UpdateAnnotationRequest) SizeVT() (n int) { if m == nil { @@ -4051,40 +5306,828 @@ func (m *UpdateAnnotationResponse) SizeVT() (n int) { return n } -func (m *Annotation) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow +func (m *ArchiveAnnotationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ArchiveAnnotationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + l = m.Annotation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UnarchiveAnnotationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UnarchiveAnnotationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + l = m.Annotation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *BatchArchiveAnnotationsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.AnnotationIds) > 0 { + for _, s := range m.AnnotationIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *BatchArchiveAnnotationsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Annotations) > 0 { + for _, e := range m.Annotations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *BatchUnarchiveAnnotationsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.AnnotationIds) > 0 { + for _, s := range m.AnnotationIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *BatchUnarchiveAnnotationsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Annotations) > 0 { + for _, e := range m.Annotations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *Annotation) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Annotation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Annotation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnnotationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.RunId = &s + iNdEx = postIndex + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var v AnnotationState + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= AnnotationState(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.State = &v + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssignedToUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) + } + m.AnnotationType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AnnotationType |= AnnotationType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tags = append(m.Tags, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.LegendConfig = &s + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CreatedByConditionId = &s + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CreatedByRuleConditionVersionId = &s + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ReportRuleVersionId = &s + iNdEx = postIndex + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Pending", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Pending = bool(v != 0) + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUser", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.AssignedToUser == nil { + m.AssignedToUser = &v1.User{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Annotation: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Annotation: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if unmarshal, ok := interface{}(m.AssignedToUser).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssignedToUser); err != nil { + return err + } + } + iNdEx = postIndex + case 22: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4094,29 +6137,33 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.AnnotationId = string(dAtA[iNdEx:postIndex]) + if m.DeletedDate == nil { + m.DeletedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 23: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4126,27 +6173,29 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) + if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 24: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4174,11 +6223,11 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Description = string(dAtA[iNdEx:postIndex]) + m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 4: + case 25: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4205,16 +6254,22 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } } iNdEx = postIndex - case 5: + case 26: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4241,16 +6296,170 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationLinkedChannelsChannel) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4278,11 +6487,11 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + m.ChannelId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4310,11 +6519,62 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + m.BitFieldName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 8: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationLinkedChannel) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationLinkedChannel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationLinkedChannel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4341,16 +6601,21 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if oneof, ok := m.Type.(*AnnotationLinkedChannel_Channel); ok { + if err := oneof.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnnotationLinkedChannelsChannel{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &AnnotationLinkedChannel_Channel{Channel: v} } iNdEx = postIndex - case 9: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElement", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4377,16 +6642,72 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} + if oneof, ok := m.Type.(*AnnotationLinkedChannel_BitFieldElement); ok { + if err := oneof.BitFieldElement.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnnotationLinkedChannelsBitFieldElement{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &AnnotationLinkedChannel_BitFieldElement{BitFieldElement: v} } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { return err } - iNdEx = postIndex - case 10: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateAnnotationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4414,14 +6735,13 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.RunId = &s + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } - var v AnnotationState + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4431,17 +6751,29 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= AnnotationState(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.State = &v - case 12: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4451,29 +6783,33 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 13: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4483,29 +6819,33 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.AssignedToUserId = string(dAtA[iNdEx:postIndex]) + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 14: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) } - m.AnnotationType = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4515,16 +6855,29 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.AnnotationType |= AnnotationType(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 15: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Assets = append(m.Assets, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4534,27 +6887,29 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Tags = append(m.Tags, string(dAtA[iNdEx:postIndex])) + m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) + if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 16: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4582,12 +6937,11 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.LegendConfig = &s + m.Tags = append(m.Tags, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 17: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4616,11 +6970,11 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } s := string(dAtA[iNdEx:postIndex]) - m.CreatedByConditionId = &s + m.RunId = &s iNdEx = postIndex - case 18: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssignToUserId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4649,11 +7003,11 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } s := string(dAtA[iNdEx:postIndex]) - m.CreatedByRuleConditionVersionId = &s + m.AssignToUserId = &s iNdEx = postIndex - case 19: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4681,14 +7035,13 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.ReportRuleVersionId = &s + m.OrganizationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 20: + case 11: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Pending", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } - var v int + var v AnnotationState for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4698,17 +7051,17 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + v |= AnnotationState(b&0x7F) << shift if b < 0x80 { break } } - m.Pending = bool(v != 0) - case 21: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUser", wireType) + m.State = &v + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) } - var msglen int + m.AnnotationType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4718,41 +7071,16 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.AnnotationType |= AnnotationType(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AssignedToUser == nil { - m.AssignedToUser = &v1.User{} - } - if unmarshal, ok := interface{}(m.AssignedToUser).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssignedToUser); err != nil { - return err - } - } - iNdEx = postIndex - case 22: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4762,33 +7090,30 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.DeletedDate == nil { - m.DeletedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.LegendConfig = &s iNdEx = postIndex - case 23: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4798,29 +7123,28 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) - if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.CreatedByConditionId = &s iNdEx = postIndex - case 24: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4848,9 +7172,10 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) + s := string(dAtA[iNdEx:postIndex]) + m.CreatedByRuleConditionVersionId = &s iNdEx = postIndex - case 25: + case 16: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } @@ -4914,7 +7239,7 @@ func (m *Annotation) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *AnnotationLinkedChannelsChannel) UnmarshalVT(dAtA []byte) error { +func (m *CreateAnnotationResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4937,15 +7262,102 @@ func (m *AnnotationLinkedChannelsChannel) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: wiretype end group for non-group") + return fmt.Errorf("proto: CreateAnnotationResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeleteAnnotationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeleteAnnotationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeleteAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4973,8 +7385,59 @@ func (m *AnnotationLinkedChannelsChannel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ChannelId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + m.AnnotationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeleteAnnotationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeleteAnnotationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeleteAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -4997,7 +7460,7 @@ func (m *AnnotationLinkedChannelsChannel) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVT(dAtA []byte) error { +func (m *BatchDeleteAnnotationsRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5020,47 +7483,15 @@ func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVT(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: wiretype end group for non-group") + return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ChannelId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BitFieldName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5088,7 +7519,7 @@ func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVT(dAtA []byte) error if postIndex > l { return io.ErrUnexpectedEOF } - m.BitFieldName = string(dAtA[iNdEx:postIndex]) + m.AnnotationIds = append(m.AnnotationIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -5112,7 +7543,7 @@ func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVT(dAtA []byte) error } return nil } -func (m *AnnotationLinkedChannel) UnmarshalVT(dAtA []byte) error { +func (m *BatchDeleteAnnotationsResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5135,94 +7566,12 @@ func (m *AnnotationLinkedChannel) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnnotationLinkedChannel: wiretype end group for non-group") + return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnnotationLinkedChannel: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Type.(*AnnotationLinkedChannel_Channel); ok { - if err := oneof.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &AnnotationLinkedChannelsChannel{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Type = &AnnotationLinkedChannel_Channel{Channel: v} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElement", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Type.(*AnnotationLinkedChannel_BitFieldElement); ok { - if err := oneof.BitFieldElement.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &AnnotationLinkedChannelsBitFieldElement{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Type = &AnnotationLinkedChannel_BitFieldElement{BitFieldElement: v} - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -5245,7 +7594,7 @@ func (m *AnnotationLinkedChannel) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { +func (m *GetAnnotationRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5268,15 +7617,15 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateAnnotationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: GetAnnotationRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5304,79 +7653,62 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.AnnotationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetAnnotationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 4: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetAnnotationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5403,16 +7735,86 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} + if m.Annotation == nil { + m.Annotation = &Annotation{} } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListAnnotationsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5440,13 +7842,13 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Assets = append(m.Assets, string(dAtA[iNdEx:postIndex])) + m.PageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 6: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5456,29 +7858,27 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) - if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Filter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5506,11 +7906,11 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Tags = append(m.Tags, string(dAtA[iNdEx:postIndex])) + m.OrganizationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 8: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5538,14 +7938,64 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.RunId = &s + m.OrderBy = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 9: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListAnnotationsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListAnnotationsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssignToUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5555,28 +8005,29 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.AssignToUserId = &s + m.Annotations = append(m.Annotations, &Annotation{}) + if err := m.Annotations[len(m.Annotations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 10: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5604,52 +8055,64 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + m.NextPageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - var v AnnotationState - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= AnnotationState(b&0x7F) << shift - if b < 0x80 { - break - } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength } - m.State = &v - case 12: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - m.AnnotationType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AnnotationType |= AnnotationType(b&0x7F) << shift - if b < 0x80 { - break - } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateAnnotationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - case 13: + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateAnnotationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5659,30 +8122,33 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.LegendConfig = &s + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 14: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5692,30 +8158,84 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.CreatedByConditionId = &s + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 15: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateAnnotationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateAnnotationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5725,30 +8245,84 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.CreatedByRuleConditionVersionId = &s + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 16: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ArchiveAnnotationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ArchiveAnnotationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ArchiveAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5758,33 +8332,23 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v11.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } - } + m.AnnotationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -5808,7 +8372,7 @@ func (m *CreateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateAnnotationResponse) UnmarshalVT(dAtA []byte) error { +func (m *ArchiveAnnotationResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5831,10 +8395,10 @@ func (m *CreateAnnotationResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateAnnotationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ArchiveAnnotationResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ArchiveAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -5895,7 +8459,7 @@ func (m *CreateAnnotationResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *DeleteAnnotationRequest) UnmarshalVT(dAtA []byte) error { +func (m *UnarchiveAnnotationRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5918,10 +8482,10 @@ func (m *DeleteAnnotationRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DeleteAnnotationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UnarchiveAnnotationRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnarchiveAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -5978,7 +8542,7 @@ func (m *DeleteAnnotationRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *DeleteAnnotationResponse) UnmarshalVT(dAtA []byte) error { +func (m *UnarchiveAnnotationResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5997,16 +8561,52 @@ func (m *DeleteAnnotationResponse) UnmarshalVT(dAtA []byte) error { if b < 0x80 { break } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeleteAnnotationResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnarchiveAnnotationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnarchiveAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -6029,7 +8629,7 @@ func (m *DeleteAnnotationResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchDeleteAnnotationsRequest) UnmarshalVT(dAtA []byte) error { +func (m *BatchArchiveAnnotationsRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6052,10 +8652,10 @@ func (m *BatchDeleteAnnotationsRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchArchiveAnnotationsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchArchiveAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -6112,7 +8712,7 @@ func (m *BatchDeleteAnnotationsRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchDeleteAnnotationsResponse) UnmarshalVT(dAtA []byte) error { +func (m *BatchArchiveAnnotationsResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6135,12 +8735,46 @@ func (m *BatchDeleteAnnotationsResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchArchiveAnnotationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchArchiveAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Annotations = append(m.Annotations, &Annotation{}) + if err := m.Annotations[len(m.Annotations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -6163,7 +8797,7 @@ func (m *BatchDeleteAnnotationsResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetAnnotationRequest) UnmarshalVT(dAtA []byte) error { +func (m *BatchUnarchiveAnnotationsRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6186,15 +8820,15 @@ func (m *GetAnnotationRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetAnnotationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveAnnotationsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6222,7 +8856,7 @@ func (m *GetAnnotationRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AnnotationId = string(dAtA[iNdEx:postIndex]) + m.AnnotationIds = append(m.AnnotationIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -6246,7 +8880,7 @@ func (m *GetAnnotationRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetAnnotationResponse) UnmarshalVT(dAtA []byte) error { +func (m *BatchUnarchiveAnnotationsResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6269,15 +8903,15 @@ func (m *GetAnnotationResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetAnnotationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveAnnotationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6304,10 +8938,8 @@ func (m *GetAnnotationResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Annotation == nil { - m.Annotation = &Annotation{} - } - if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Annotations = append(m.Annotations, &Annotation{}) + if err := m.Annotations[len(m.Annotations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6333,7 +8965,7 @@ func (m *GetAnnotationResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { +func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6356,17 +8988,17 @@ func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListAnnotationsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: Annotation: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Annotation: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) } - m.PageSize = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -6376,14 +9008,31 @@ func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AnnotationId = stringValue + iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6411,11 +9060,15 @@ func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6443,11 +9096,87 @@ func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Filter = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Description = stringValue iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6475,11 +9204,15 @@ func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue iNdEx = postIndex - case 5: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6507,62 +9240,51 @@ func (m *ListAnnotationsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderBy = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if msglen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ListAnnotationsResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ListAnnotationsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ListAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6589,14 +9311,16 @@ func (m *ListAnnotationsResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Annotations = append(m.Annotations, &Annotation{}) - if err := m.Annotations[len(m.Annotations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6624,64 +9348,38 @@ func (m *ListAnnotationsResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NextPageToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UpdateAnnotationRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - if iNdEx >= l { - return io.ErrUnexpectedEOF + s := stringValue + m.RunId = &s + iNdEx = postIndex + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + var v AnnotationState + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= AnnotationState(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UpdateAnnotationRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.State = &v + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -6691,33 +9389,33 @@ func (m *UpdateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Annotation == nil { - m.Annotation = &Annotation{} - } - if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.OrganizationId = stringValue iNdEx = postIndex - case 2: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUserId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -6727,84 +9425,88 @@ func (m *UpdateAnnotationRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.UpdateMask == nil { - m.UpdateMask = &fieldmaskpb.FieldMask{} - } - if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.AssignedToUserId = stringValue iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + m.AnnotationType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AnnotationType |= AnnotationType(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UpdateAnnotationResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UpdateAnnotationResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.Tags = append(m.Tags, stringValue) + iNdEx = postIndex + case 16: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -6814,82 +9516,32 @@ func (m *UpdateAnnotationResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Annotation == nil { - m.Annotation = &Annotation{} - } - if err := m.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + s := stringValue + m.LegendConfig = &s iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Annotation: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Annotation: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 17: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6921,11 +9573,12 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AnnotationId = stringValue + s := stringValue + m.CreatedByConditionId = &s iNdEx = postIndex - case 2: + case 18: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6957,11 +9610,12 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Name = stringValue + s := stringValue + m.CreatedByRuleConditionVersionId = &s iNdEx = postIndex - case 3: + case 19: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleVersionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6993,11 +9647,32 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Description = stringValue + s := stringValue + m.ReportRuleVersionId = &s iNdEx = postIndex - case 4: + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Pending", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Pending = bool(v != 0) + case 21: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUser", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7024,16 +9699,24 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} + if m.AssignedToUser == nil { + m.AssignedToUser = &v1.User{} } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if unmarshal, ok := interface{}(m.AssignedToUser).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssignedToUser); err != nil { + return err + } } iNdEx = postIndex - case 5: + case 22: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7060,18 +9743,18 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} + if m.DeletedDate == nil { + m.DeletedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: + case 23: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7081,31 +9764,29 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) + if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.CreatedByUserId = stringValue iNdEx = postIndex - case 7: + case 24: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7137,11 +9818,11 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ModifiedByUserId = stringValue + m.AssetIds = append(m.AssetIds, stringValue) iNdEx = postIndex - case 8: + case 25: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7168,16 +9849,22 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } } iNdEx = postIndex - case 9: + case 26: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7204,18 +9891,18 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7225,52 +9912,66 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + m.IsArchived = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationLinkedChannelsChannel) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - s := stringValue - m.RunId = &s - iNdEx = postIndex - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + if iNdEx >= l { + return io.ErrUnexpectedEOF } - var v AnnotationState - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= AnnotationState(b&0x7F) << shift - if b < 0x80 { - break - } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - m.State = &v - case 12: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7302,11 +10003,62 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.OrganizationId = stringValue + m.ChannelId = stringValue iNdEx = postIndex - case 13: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7338,30 +10090,11 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssignedToUserId = stringValue + m.ChannelId = stringValue iNdEx = postIndex - case 14: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) - } - m.AnnotationType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AnnotationType |= AnnotationType(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 15: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7393,13 +10126,64 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Tags = append(m.Tags, stringValue) + m.BitFieldName = stringValue iNdEx = postIndex - case 16: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationLinkedChannel) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationLinkedChannel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationLinkedChannel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7409,34 +10193,38 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Type.(*AnnotationLinkedChannel_Channel); ok { + if err := oneof.Channel.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnnotationLinkedChannelsChannel{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &AnnotationLinkedChannel_Channel{Channel: v} } - s := stringValue - m.LegendConfig = &s iNdEx = postIndex - case 17: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElement", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7446,32 +10234,87 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Type.(*AnnotationLinkedChannel_BitFieldElement); ok { + if err := oneof.BitFieldElement.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnnotationLinkedChannelsBitFieldElement{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &AnnotationLinkedChannel_BitFieldElement{BitFieldElement: v} } - s := stringValue - m.CreatedByConditionId = &s iNdEx = postIndex - case 18: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateAnnotationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7503,12 +10346,11 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.CreatedByRuleConditionVersionId = &s + m.Name = stringValue iNdEx = postIndex - case 19: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7540,76 +10382,11 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.ReportRuleVersionId = &s - iNdEx = postIndex - case 20: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Pending", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Pending = bool(v != 0) - case 21: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUser", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AssignedToUser == nil { - m.AssignedToUser = &v1.User{} - } - if unmarshal, ok := interface{}(m.AssignedToUser).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssignedToUser); err != nil { - return err - } - } + m.Description = stringValue iNdEx = postIndex - case 22: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7636,16 +10413,16 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.DeletedDate == nil { - m.DeletedDate = ×tamppb.Timestamp{} + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 23: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7672,14 +10449,16 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) - if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 24: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7711,11 +10490,11 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssetIds = append(m.AssetIds, stringValue) + m.Assets = append(m.Assets, stringValue) iNdEx = postIndex - case 25: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7739,163 +10518,17 @@ func (m *Annotation) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metadata = append(m.Metadata, &v11.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnnotationLinkedChannelsChannel) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnnotationLinkedChannelsChannel: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.ChannelId = stringValue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnnotationLinkedChannelsBitFieldElement: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) + if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7927,11 +10560,11 @@ func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVTUnsafe(dAtA []byte) if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ChannelId = stringValue + m.Tags = append(m.Tags, stringValue) iNdEx = postIndex - case 2: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BitFieldName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7963,64 +10596,14 @@ func (m *AnnotationLinkedChannelsBitFieldElement) UnmarshalVTUnsafe(dAtA []byte) if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.BitFieldName = stringValue + s := stringValue + m.RunId = &s iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnnotationLinkedChannel) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AnnotationLinkedChannel: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnnotationLinkedChannel: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssignToUserId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -8030,38 +10613,34 @@ func (m *AnnotationLinkedChannel) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Type.(*AnnotationLinkedChannel_Channel); ok { - if err := oneof.Channel.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &AnnotationLinkedChannelsChannel{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Type = &AnnotationLinkedChannel_Channel{Channel: v} + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + s := stringValue + m.AssignToUserId = &s iNdEx = postIndex - case 2: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElement", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -8071,87 +10650,70 @@ func (m *AnnotationLinkedChannel) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Type.(*AnnotationLinkedChannel_BitFieldElement); ok { - if err := oneof.BitFieldElement.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &AnnotationLinkedChannelsBitFieldElement{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Type = &AnnotationLinkedChannel_BitFieldElement{BitFieldElement: v} + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.OrganizationId = stringValue iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + var v AnnotationState + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= AnnotationState(b&0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.State = &v + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.AnnotationType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AnnotationType |= AnnotationType(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CreateAnnotationRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CreateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8183,11 +10745,12 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Name = stringValue + s := stringValue + m.LegendConfig = &s iNdEx = postIndex - case 2: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8219,13 +10782,14 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Description = stringValue + s := stringValue + m.CreatedByConditionId = &s iNdEx = postIndex - case 3: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -8235,31 +10799,32 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + s := stringValue + m.CreatedByRuleConditionVersionId = &s iNdEx = postIndex - case 4: + case 16: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8286,52 +10851,73 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - m.Assets = append(m.Assets, stringValue) - iNdEx = postIndex - case 6: + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateAnnotationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LinkedChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8358,14 +10944,67 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.LinkedChannels = append(m.LinkedChannels, &AnnotationLinkedChannel{}) - if err := m.LinkedChannels[len(m.LinkedChannels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 7: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeleteAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeleteAnnotationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeleteAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8397,11 +11036,113 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Tags = append(m.Tags, stringValue) + m.AnnotationId = stringValue iNdEx = postIndex - case 8: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeleteAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeleteAnnotationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeleteAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchDeleteAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8433,12 +11174,113 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.RunId = &s + m.AnnotationIds = append(m.AnnotationIds, stringValue) iNdEx = postIndex - case 9: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchDeleteAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetAnnotationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssignToUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8470,14 +11312,64 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.AssignToUserId = &s + m.AnnotationId = stringValue iNdEx = postIndex - case 10: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetAnnotationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -8487,53 +11379,84 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.OrganizationId = stringValue iNdEx = postIndex - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - var v AnnotationState - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= AnnotationState(b&0x7F) << shift - if b < 0x80 { - break - } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength } - m.State = &v - case 12: + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListAnnotationsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) } - m.AnnotationType = 0 + m.PageSize = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -8543,14 +11466,14 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.AnnotationType |= AnnotationType(b&0x7F) << shift + m.PageSize |= uint32(b&0x7F) << shift if b < 0x80 { break } } - case 13: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LegendConfig", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8582,12 +11505,11 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.LegendConfig = &s + m.PageToken = stringValue iNdEx = postIndex - case 14: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8619,12 +11541,11 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.CreatedByConditionId = &s + m.Filter = stringValue iNdEx = postIndex - case 15: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByRuleConditionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8656,14 +11577,13 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.CreatedByRuleConditionVersionId = &s + m.OrganizationId = stringValue iNdEx = postIndex - case 16: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -8673,33 +11593,27 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v11.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.OrderBy = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -8723,7 +11637,7 @@ func (m *CreateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *CreateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ListAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8746,15 +11660,15 @@ func (m *CreateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateAnnotationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListAnnotationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8781,13 +11695,47 @@ func (m *CreateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Annotation == nil { - m.Annotation = &Annotation{} - } - if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Annotations = append(m.Annotations, &Annotation{}) + if err := m.Annotations[len(m.Annotations)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -8810,7 +11758,7 @@ func (m *CreateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *DeleteAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UpdateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8833,17 +11781,17 @@ func (m *DeleteAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DeleteAnnotationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateAnnotationRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -8853,27 +11801,63 @@ func (m *DeleteAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.AnnotationId = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -8897,7 +11881,7 @@ func (m *DeleteAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *DeleteAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UpdateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8920,12 +11904,48 @@ func (m *DeleteAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DeleteAnnotationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateAnnotationResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -8948,7 +11968,7 @@ func (m *DeleteAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchDeleteAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ArchiveAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8971,15 +11991,15 @@ func (m *BatchDeleteAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ArchiveAnnotationRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ArchiveAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9011,7 +12031,7 @@ func (m *BatchDeleteAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AnnotationIds = append(m.AnnotationIds, stringValue) + m.AnnotationId = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -9035,7 +12055,7 @@ func (m *BatchDeleteAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchDeleteAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ArchiveAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9058,12 +12078,48 @@ func (m *BatchDeleteAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ArchiveAnnotationResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ArchiveAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotation == nil { + m.Annotation = &Annotation{} + } + if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -9086,7 +12142,7 @@ func (m *BatchDeleteAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *GetAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UnarchiveAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9109,10 +12165,10 @@ func (m *GetAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetAnnotationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UnarchiveAnnotationRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnarchiveAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -9173,7 +12229,7 @@ func (m *GetAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *GetAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UnarchiveAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9196,10 +12252,10 @@ func (m *GetAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetAnnotationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UnarchiveAnnotationResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnarchiveAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -9260,7 +12316,7 @@ func (m *GetAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ListAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchArchiveAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9283,142 +12339,15 @@ func (m *ListAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListAnnotationsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchArchiveAnnotationsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchArchiveAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) - } - m.PageSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.PageToken = stringValue - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.Filter = stringValue - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.OrganizationId = stringValue - iNdEx = postIndex - case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9450,7 +12379,7 @@ func (m *ListAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.OrderBy = stringValue + m.AnnotationIds = append(m.AnnotationIds, stringValue) iNdEx = postIndex default: iNdEx = preIndex @@ -9474,7 +12403,7 @@ func (m *ListAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ListAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchArchiveAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9497,10 +12426,10 @@ func (m *ListAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListAnnotationsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchArchiveAnnotationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchArchiveAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -9537,42 +12466,6 @@ func (m *ListAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.NextPageToken = stringValue - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -9595,7 +12488,7 @@ func (m *ListAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UpdateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUnarchiveAnnotationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9618,53 +12511,17 @@ func (m *UpdateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateAnnotationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveAnnotationsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateAnnotationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveAnnotationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Annotation == nil { - m.Annotation = &Annotation{} - } - if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationIds", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -9674,27 +12531,27 @@ func (m *UpdateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.UpdateMask == nil { - m.UpdateMask = &fieldmaskpb.FieldMask{} - } - if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.AnnotationIds = append(m.AnnotationIds, stringValue) iNdEx = postIndex default: iNdEx = preIndex @@ -9718,7 +12575,7 @@ func (m *UpdateAnnotationRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UpdateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUnarchiveAnnotationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9741,15 +12598,15 @@ func (m *UpdateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateAnnotationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveAnnotationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateAnnotationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveAnnotationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9776,10 +12633,8 @@ func (m *UpdateAnnotationResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Annotation == nil { - m.Annotation = &Annotation{} - } - if err := m.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Annotations = append(m.Annotations, &Annotation{}) + if err := m.Annotations[len(m.Annotations)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/go/gen/sift/api_keys/v2/api_keys.pb.go b/go/gen/sift/api_keys/v2/api_keys.pb.go index 6b889c26f..755bf700e 100644 --- a/go/gen/sift/api_keys/v2/api_keys.pb.go +++ b/go/gen/sift/api_keys/v2/api_keys.pb.go @@ -7,6 +7,7 @@ package api_keysv2 import ( + _ "github.com/sift-stack/sift/go/gen/buf/validate" _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" @@ -616,158 +617,160 @@ var file_sift_api_keys_v2_api_keys_proto_rawDesc = []byte{ 0x0a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, - 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 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, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, - 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x01, 0x0a, 0x06, - 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, - 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x22, 0xf6, 0x01, - 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, - 0x21, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, - 0x22, 0x7c, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6b, - 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x70, 0x69, - 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4c, - 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x38, 0x0a, 0x13, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, + 0x2e, 0x76, 0x32, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, + 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x26, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x01, 0x0a, 0x06, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x70, - 0x69, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, - 0x0a, 0x19, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, 0x1a, 0x41, - 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x32, 0xee, 0x06, 0x0a, 0x0d, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xcf, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, - 0x79, 0x73, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, - 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x73, 0x92, 0x41, 0x58, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x73, 0x1a, 0x2c, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x41, 0x50, 0x49, - 0x20, 0x6b, 0x65, 0x79, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x2a, - 0x1b, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2d, - 0x6b, 0x65, 0x79, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, + 0x69, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x61, + 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x92, 0x41, 0x41, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x1a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x61, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x2a, 0x1c, 0x41, 0x70, - 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, - 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, - 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x12, 0xc8, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, - 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x92, 0x41, 0x41, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x1a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x2a, 0x1c, 0x41, - 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1f, 0x2a, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x6b, - 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x7d, - 0x12, 0xfe, 0x01, 0x0a, 0x12, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, - 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x22, 0xf6, 0x01, 0x0a, 0x0d, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0a, + 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, + 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x7c, 0x0a, + 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2b, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x54, 0x0a, 0x13, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, + 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x40, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, + 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x08, 0x61, 0x70, 0x69, 0x4b, 0x65, + 0x79, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x41, + 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, 0x1a, 0x41, 0x70, 0x69, 0x4b, + 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xee, 0x06, + 0x0a, 0x0d, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0xcf, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, + 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x92, 0x41, + 0x58, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x2c, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, 0x6b, 0x65, + 0x79, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x2a, 0x1b, 0x41, 0x70, + 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, + 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x6b, 0x65, 0x79, + 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, + 0x65, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, + 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5f, 0x92, 0x41, 0x41, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x69, 0x4b, 0x65, 0x79, 0x1a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, + 0x20, 0x41, 0x50, 0x49, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x2a, 0x1c, 0x41, 0x70, 0x69, 0x4b, 0x65, + 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x70, 0x69, 0x4b, 0x65, 0x79, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, + 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x6b, 0x65, + 0x79, 0x73, 0x12, 0xc8, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x69, 0x92, 0x41, 0x41, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x70, 0x69, 0x4b, 0x65, 0x79, 0x1a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x61, + 0x6e, 0x20, 0x41, 0x50, 0x49, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x2a, 0x1c, 0x41, 0x70, 0x69, 0x4b, + 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x6b, 0x65, 0x79, 0x73, + 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xfe, 0x01, + 0x0a, 0x12, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x64, 0x12, 0x12, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2a, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, - 0x41, 0x50, 0x49, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x2a, 0x22, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2d, - 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0xd7, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0c, 0x41, 0x70, 0x69, 0x4b, - 0x65, 0x79, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, - 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, - 0x66, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x61, - 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x41, 0x58, 0xaa, - 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x56, - 0x32, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, - 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x70, 0x69, 0x4b, 0x65, - 0x79, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, - 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x13, 0x12, 0x11, 0x0a, 0x0f, 0x41, 0x50, 0x49, 0x20, - 0x4b, 0x65, 0x79, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x8c, 0x01, 0x92, 0x41, 0x64, 0x12, 0x12, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2a, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x50, 0x49, + 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x2a, 0x22, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, + 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x6b, 0x65, 0x79, + 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xd7, + 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0c, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, + 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x61, 0x70, 0x69, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x41, 0x58, 0xaa, 0x02, 0x0f, 0x53, + 0x69, 0x66, 0x74, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, + 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x5c, 0x56, 0x32, + 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x5c, + 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x3a, + 0x56, 0x32, 0x92, 0x41, 0x13, 0x12, 0x11, 0x0a, 0x0f, 0x41, 0x50, 0x49, 0x20, 0x4b, 0x65, 0x79, + 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/assets/v1/assets.pb.go b/go/gen/sift/assets/v1/assets.pb.go index 1ee649d3e..69aa573c6 100644 --- a/go/gen/sift/assets/v1/assets.pb.go +++ b/go/gen/sift/assets/v1/assets.pb.go @@ -174,12 +174,12 @@ type ListAssetsRequest struct { PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `asset_id`, `created_by_user_id`, `modified_by_user_id`, - // `created_date`, `modified_date`, `name`, `tag_id`, `tag_name`, `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. + // `created_date`, `modified_date`, `name`, 'name_lower', `tag_id`, `tag_name`, 'archived_date', `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/assets#asset). Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` // How to order the retrieved assets. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are `name`, `created_date` and `modified_date`. + // Available fields to order_by are `name`, `created_date`, `modified_date` and `archived_date`. // If left empty, items are ordered by `created_date` in descending order (newest-first). // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,modified_date" diff --git a/go/gen/sift/calculated_channels/v1/calculated_channels.pb.go b/go/gen/sift/calculated_channels/v1/calculated_channels.pb.go index 727cb8196..b96dcc94b 100644 --- a/go/gen/sift/calculated_channels/v1/calculated_channels.pb.go +++ b/go/gen/sift/calculated_channels/v1/calculated_channels.pb.go @@ -76,13 +76,14 @@ func (ExpressionIdentifierType) EnumDescriptor() ([]byte, []int) { type ExpressionIdentifierLibrary int32 const ( - ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED ExpressionIdentifierLibrary = 0 - ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_MATH ExpressionIdentifierLibrary = 1 - ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_STRING ExpressionIdentifierLibrary = 2 - ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_LIST ExpressionIdentifierLibrary = 3 - ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_ITER ExpressionIdentifierLibrary = 4 - ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL ExpressionIdentifierLibrary = 5 - ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY ExpressionIdentifierLibrary = 6 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED ExpressionIdentifierLibrary = 0 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_MATH ExpressionIdentifierLibrary = 1 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_STRING ExpressionIdentifierLibrary = 2 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_LIST ExpressionIdentifierLibrary = 3 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_ITER ExpressionIdentifierLibrary = 4 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL ExpressionIdentifierLibrary = 5 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY ExpressionIdentifierLibrary = 6 + ExpressionIdentifierLibrary_EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS ExpressionIdentifierLibrary = 7 ) // Enum value maps for ExpressionIdentifierLibrary. @@ -95,15 +96,17 @@ var ( 4: "EXPRESSION_IDENTIFIER_LIBRARY_ITER", 5: "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL", 6: "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY", + 7: "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS", } ExpressionIdentifierLibrary_value = map[string]int32{ - "EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED": 0, - "EXPRESSION_IDENTIFIER_LIBRARY_MATH": 1, - "EXPRESSION_IDENTIFIER_LIBRARY_STRING": 2, - "EXPRESSION_IDENTIFIER_LIBRARY_LIST": 3, - "EXPRESSION_IDENTIFIER_LIBRARY_ITER": 4, - "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL": 5, - "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY": 6, + "EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED": 0, + "EXPRESSION_IDENTIFIER_LIBRARY_MATH": 1, + "EXPRESSION_IDENTIFIER_LIBRARY_STRING": 2, + "EXPRESSION_IDENTIFIER_LIBRARY_LIST": 3, + "EXPRESSION_IDENTIFIER_LIBRARY_ITER": 4, + "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL": 5, + "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY": 6, + "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS": 7, } ) @@ -257,6 +260,7 @@ type ExpressionRequest struct { ChannelReferences map[string]string `protobuf:"bytes,1,rep,name=channel_references,json=channelReferences,proto3" json:"channel_references,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Expression string `protobuf:"bytes,2,opt,name=expression,proto3" json:"expression,omitempty"` ExpressionChannelReferences []*ExpressionChannelReference `protobuf:"bytes,3,rep,name=expression_channel_references,json=expressionChannelReferences,proto3" json:"expression_channel_references,omitempty"` + FunctionDependencies []*v1.FunctionDependency `protobuf:"bytes,4,rep,name=function_dependencies,json=functionDependencies,proto3" json:"function_dependencies,omitempty"` } func (x *ExpressionRequest) Reset() { @@ -313,6 +317,13 @@ func (x *ExpressionRequest) GetExpressionChannelReferences() []*ExpressionChanne return nil } +func (x *ExpressionRequest) GetFunctionDependencies() []*v1.FunctionDependency { + if x != nil { + return x.FunctionDependencies + } + return nil +} + type ListExpressionIdentifiersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -382,7 +393,8 @@ type ListExpressionIdentifiersResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Identifiers []*ExpressionIdentifier `protobuf:"bytes,1,rep,name=identifiers,proto3" json:"identifiers,omitempty"` + Identifiers []*ExpressionIdentifier `protobuf:"bytes,1,rep,name=identifiers,proto3" json:"identifiers,omitempty"` + NextPageToken *string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3,oneof" json:"next_page_token,omitempty"` } func (x *ListExpressionIdentifiersResponse) Reset() { @@ -424,6 +436,13 @@ func (x *ListExpressionIdentifiersResponse) GetIdentifiers() []*ExpressionIdenti return nil } +func (x *ListExpressionIdentifiersResponse) GetNextPageToken() string { + if x != nil && x.NextPageToken != nil { + return *x.NextPageToken + } + return "" +} + type ExpressionIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -751,229 +770,246 @@ var file_sift_calculated_channels_v1_calculated_channels_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x72, 0x0a, 0x1a, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x30, - 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x64, 0x22, 0xf5, 0x02, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x78, 0x0a, 0x12, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7b, 0x0a, 0x1d, 0x65, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x1a, 0x30, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x72, 0x0a, 0x1a, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x30, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xd8, 0x03, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x78, 0x0a, 0x12, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7b, 0x0a, 0x1d, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x1b, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xa4, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x44, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x1b, 0x65, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, 0x01, 0x0a, - 0x20, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x44, 0x0a, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6d, - 0x6f, 0x64, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x73, 0x22, 0xa7, 0x02, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, + 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa7, + 0x02, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x57, 0x0a, 0x07, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x07, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x22, 0xb6, 0x01, 0x0a, 0x19, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x04, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x07, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x22, 0xb6, 0x01, 0x0a, - 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x0a, 0x65, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x54, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x5a, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b, 0x0a, 0x1f, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x6b, 0x0a, 0x21, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x46, + 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2a, 0x9b, 0x01, 0x0a, 0x18, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x26, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, + 0x02, 0x08, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, + 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, + 0x45, 0x4c, 0x10, 0x02, 0x2a, 0xff, 0x02, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x29, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, + 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, + 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x45, + 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, + 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x54, 0x52, + 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, + 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x26, 0x0a, + 0x22, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, + 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x49, + 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, + 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x46, 0x55, 0x4c, 0x10, + 0x05, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, + 0x52, 0x59, 0x5f, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x06, 0x12, 0x38, 0x0a, 0x34, + 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x07, 0x2a, 0xb9, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x1b, 0x45, 0x58, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x19, + 0x0a, 0x15, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x58, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4c, + 0x43, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x53, + 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x52, 0x10, 0x03, 0x12, 0x23, 0x0a, + 0x1f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x10, 0x04, 0x32, 0xf1, 0x06, 0x0a, 0x19, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0xd9, 0x02, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x44, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, + 0x92, 0x41, 0x7f, 0x12, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x1a, 0x62, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0xb0, 0x02, 0x0a, + 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x5a, 0x0a, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x69, + 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x4b, 0x0a, 0x1f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x6b, 0x0a, - 0x21, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2a, 0x9b, 0x01, 0x0a, 0x18, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x26, 0x45, 0x58, 0x50, 0x52, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x58, 0x50, 0x52, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, - 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, - 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x02, 0x2a, 0xc5, 0x02, 0x0a, 0x1b, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x29, 0x45, 0x58, 0x50, 0x52, - 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, - 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x50, 0x52, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, - 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x10, 0x01, 0x12, - 0x28, 0x0a, 0x24, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, - 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, - 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x50, - 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, - 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, - 0x03, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, - 0x52, 0x59, 0x5f, 0x49, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x58, 0x50, - 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, - 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x46, 0x55, 0x4c, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x4c, - 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x06, - 0x2a, 0xb9, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x1b, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x58, 0x50, 0x52, - 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, - 0x53, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x43, 0x55, 0x4c, 0x41, 0x54, 0x45, - 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x53, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, - 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x52, 0x55, 0x4c, 0x45, 0x52, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x58, 0x50, 0x52, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, - 0x54, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x04, 0x32, 0xf1, 0x06, 0x0a, - 0x19, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xd9, 0x02, 0x0a, 0x19, 0x4c, - 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x92, 0x41, 0x7f, 0x12, 0x19, 0x4c, - 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x1a, 0x62, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0xb0, 0x02, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa8, - 0x01, 0x92, 0x41, 0x6b, 0x12, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x55, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xc4, 0x01, 0x92, 0x41, 0xc0, 0x01, - 0x12, 0x3e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x1a, 0x7e, 0x0a, 0x24, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, - 0x6f, 0x75, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x35, 0x33, - 0x42, 0xbb, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa8, 0x01, 0x92, 0x41, 0x6b, 0x12, 0x12, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x55, + 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x6e, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2d, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0xc4, 0x01, 0x92, 0x41, 0xc0, 0x01, 0x12, 0x3e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x1a, 0x7e, 0x0a, 0x24, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x12, 0x56, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, + 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, + 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, + 0x34, 0x32, 0x31, 0x31, 0x35, 0x33, 0x42, 0xbb, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x53, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x53, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, - 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, - 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x1a, 0x53, 0x69, 0x66, - 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x26, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1c, - 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x1f, 0x12, - 0x1d, 0x0a, 0x1b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, + 0xaa, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x26, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x3a, + 0x56, 0x31, 0x92, 0x41, 0x1f, 0x12, 0x1d, 0x0a, 0x1b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1003,30 +1039,32 @@ var file_sift_calculated_channels_v1_calculated_channels_proto_goTypes = []inter (*ValidateExpressionResponse)(nil), // 9: sift.calculated_channels.v1.ValidateExpressionResponse (*ErrorValidatingExpressionResult)(nil), // 10: sift.calculated_channels.v1.ErrorValidatingExpressionResult (*SuccessValidatingExpressionResult)(nil), // 11: sift.calculated_channels.v1.SuccessValidatingExpressionResult - nil, // 12: sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntry - (v1.ChannelDataType)(0), // 13: sift.common.type.v1.ChannelDataType + nil, // 12: sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntry + (*v1.FunctionDependency)(nil), // 13: sift.common.type.v1.FunctionDependency + (v1.ChannelDataType)(0), // 14: sift.common.type.v1.ChannelDataType } var file_sift_calculated_channels_v1_calculated_channels_proto_depIdxs = []int32{ 12, // 0: sift.calculated_channels.v1.ExpressionRequest.channel_references:type_name -> sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntry 3, // 1: sift.calculated_channels.v1.ExpressionRequest.expression_channel_references:type_name -> sift.calculated_channels.v1.ExpressionChannelReference - 2, // 2: sift.calculated_channels.v1.ListExpressionIdentifiersRequest.mode:type_name -> sift.calculated_channels.v1.ExpressionMode - 7, // 3: sift.calculated_channels.v1.ListExpressionIdentifiersResponse.identifiers:type_name -> sift.calculated_channels.v1.ExpressionIdentifier - 0, // 4: sift.calculated_channels.v1.ExpressionIdentifier.type:type_name -> sift.calculated_channels.v1.ExpressionIdentifierType - 1, // 5: sift.calculated_channels.v1.ExpressionIdentifier.library:type_name -> sift.calculated_channels.v1.ExpressionIdentifierLibrary - 4, // 6: sift.calculated_channels.v1.ValidateExpressionRequest.expression:type_name -> sift.calculated_channels.v1.ExpressionRequest - 2, // 7: sift.calculated_channels.v1.ValidateExpressionRequest.mode:type_name -> sift.calculated_channels.v1.ExpressionMode - 10, // 8: sift.calculated_channels.v1.ValidateExpressionResponse.error:type_name -> sift.calculated_channels.v1.ErrorValidatingExpressionResult - 11, // 9: sift.calculated_channels.v1.ValidateExpressionResponse.success:type_name -> sift.calculated_channels.v1.SuccessValidatingExpressionResult - 13, // 10: sift.calculated_channels.v1.SuccessValidatingExpressionResult.data_type:type_name -> sift.common.type.v1.ChannelDataType - 5, // 11: sift.calculated_channels.v1.CalculatedChannelsService.ListExpressionIdentifiers:input_type -> sift.calculated_channels.v1.ListExpressionIdentifiersRequest - 8, // 12: sift.calculated_channels.v1.CalculatedChannelsService.ValidateExpression:input_type -> sift.calculated_channels.v1.ValidateExpressionRequest - 6, // 13: sift.calculated_channels.v1.CalculatedChannelsService.ListExpressionIdentifiers:output_type -> sift.calculated_channels.v1.ListExpressionIdentifiersResponse - 9, // 14: sift.calculated_channels.v1.CalculatedChannelsService.ValidateExpression:output_type -> sift.calculated_channels.v1.ValidateExpressionResponse - 13, // [13:15] is the sub-list for method output_type - 11, // [11:13] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 13, // 2: sift.calculated_channels.v1.ExpressionRequest.function_dependencies:type_name -> sift.common.type.v1.FunctionDependency + 2, // 3: sift.calculated_channels.v1.ListExpressionIdentifiersRequest.mode:type_name -> sift.calculated_channels.v1.ExpressionMode + 7, // 4: sift.calculated_channels.v1.ListExpressionIdentifiersResponse.identifiers:type_name -> sift.calculated_channels.v1.ExpressionIdentifier + 0, // 5: sift.calculated_channels.v1.ExpressionIdentifier.type:type_name -> sift.calculated_channels.v1.ExpressionIdentifierType + 1, // 6: sift.calculated_channels.v1.ExpressionIdentifier.library:type_name -> sift.calculated_channels.v1.ExpressionIdentifierLibrary + 4, // 7: sift.calculated_channels.v1.ValidateExpressionRequest.expression:type_name -> sift.calculated_channels.v1.ExpressionRequest + 2, // 8: sift.calculated_channels.v1.ValidateExpressionRequest.mode:type_name -> sift.calculated_channels.v1.ExpressionMode + 10, // 9: sift.calculated_channels.v1.ValidateExpressionResponse.error:type_name -> sift.calculated_channels.v1.ErrorValidatingExpressionResult + 11, // 10: sift.calculated_channels.v1.ValidateExpressionResponse.success:type_name -> sift.calculated_channels.v1.SuccessValidatingExpressionResult + 14, // 11: sift.calculated_channels.v1.SuccessValidatingExpressionResult.data_type:type_name -> sift.common.type.v1.ChannelDataType + 5, // 12: sift.calculated_channels.v1.CalculatedChannelsService.ListExpressionIdentifiers:input_type -> sift.calculated_channels.v1.ListExpressionIdentifiersRequest + 8, // 13: sift.calculated_channels.v1.CalculatedChannelsService.ValidateExpression:input_type -> sift.calculated_channels.v1.ValidateExpressionRequest + 6, // 14: sift.calculated_channels.v1.CalculatedChannelsService.ListExpressionIdentifiers:output_type -> sift.calculated_channels.v1.ListExpressionIdentifiersResponse + 9, // 15: sift.calculated_channels.v1.CalculatedChannelsService.ValidateExpression:output_type -> sift.calculated_channels.v1.ValidateExpressionResponse + 14, // [14:16] is the sub-list for method output_type + 12, // [12:14] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_sift_calculated_channels_v1_calculated_channels_proto_init() } @@ -1144,6 +1182,7 @@ func file_sift_calculated_channels_v1_calculated_channels_proto_init() { } } } + file_sift_calculated_channels_v1_calculated_channels_proto_msgTypes[3].OneofWrappers = []interface{}{} file_sift_calculated_channels_v1_calculated_channels_proto_msgTypes[6].OneofWrappers = []interface{}{ (*ValidateExpressionResponse_Error)(nil), (*ValidateExpressionResponse_Success)(nil), diff --git a/go/gen/sift/calculated_channels/v1/calculated_channels_vtproto.pb.go b/go/gen/sift/calculated_channels/v1/calculated_channels_vtproto.pb.go index 7738d0ca7..109a5810f 100644 --- a/go/gen/sift/calculated_channels/v1/calculated_channels_vtproto.pb.go +++ b/go/gen/sift/calculated_channels/v1/calculated_channels_vtproto.pb.go @@ -63,6 +63,17 @@ func (m *ExpressionRequest) CloneVT() *ExpressionRequest { } r.ExpressionChannelReferences = tmpContainer } + if rhs := m.FunctionDependencies; rhs != nil { + tmpContainer := make([]*v1.FunctionDependency, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v1.FunctionDependency }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v1.FunctionDependency) + } + } + r.FunctionDependencies = tmpContainer + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -105,6 +116,10 @@ func (m *ListExpressionIdentifiersResponse) CloneVT() *ListExpressionIdentifiers } r.Identifiers = tmpContainer } + if rhs := m.NextPageToken; rhs != nil { + tmpVal := *rhs + r.NextPageToken = &tmpVal + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -288,6 +303,29 @@ func (this *ExpressionRequest) EqualVT(that *ExpressionRequest) bool { } } } + if len(this.FunctionDependencies) != len(that.FunctionDependencies) { + return false + } + for i, vx := range this.FunctionDependencies { + vy := that.FunctionDependencies[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v1.FunctionDependency{} + } + if q == nil { + q = &v1.FunctionDependency{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v1.FunctionDependency) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } return string(this.unknownFields) == string(that.unknownFields) } @@ -346,6 +384,9 @@ func (this *ListExpressionIdentifiersResponse) EqualVT(that *ListExpressionIdent } } } + if p, q := this.NextPageToken, that.NextPageToken; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -735,6 +776,30 @@ func (m *ExpressionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.FunctionDependencies) > 0 { + for iNdEx := len(m.FunctionDependencies) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.FunctionDependencies[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.FunctionDependencies[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + } if len(m.ExpressionChannelReferences) > 0 { for iNdEx := len(m.ExpressionChannelReferences) - 1; iNdEx >= 0; iNdEx-- { size, err := m.ExpressionChannelReferences[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) @@ -856,6 +921,13 @@ func (m *ListExpressionIdentifiersResponse) MarshalToSizedBufferVT(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.NextPageToken != nil { + i -= len(*m.NextPageToken) + copy(dAtA[i:], *m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } if len(m.Identifiers) > 0 { for iNdEx := len(m.Identifiers) - 1; iNdEx >= 0; iNdEx-- { size, err := m.Identifiers[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) @@ -1218,6 +1290,30 @@ func (m *ExpressionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.FunctionDependencies) > 0 { + for iNdEx := len(m.FunctionDependencies) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.FunctionDependencies[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.FunctionDependencies[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + } if len(m.ExpressionChannelReferences) > 0 { for iNdEx := len(m.ExpressionChannelReferences) - 1; iNdEx >= 0; iNdEx-- { size, err := m.ExpressionChannelReferences[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) @@ -1339,6 +1435,13 @@ func (m *ListExpressionIdentifiersResponse) MarshalToSizedBufferVTStrict(dAtA [] i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.NextPageToken != nil { + i -= len(*m.NextPageToken) + copy(dAtA[i:], *m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } if len(m.Identifiers) > 0 { for iNdEx := len(m.Identifiers) - 1; iNdEx >= 0; iNdEx-- { size, err := m.Identifiers[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) @@ -1671,6 +1774,18 @@ func (m *ExpressionRequest) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if len(m.FunctionDependencies) > 0 { + for _, e := range m.FunctionDependencies { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } n += len(m.unknownFields) return n } @@ -1707,6 +1822,10 @@ func (m *ListExpressionIdentifiersResponse) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.NextPageToken != nil { + l = len(*m.NextPageToken) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -2157,6 +2276,48 @@ func (m *ExpressionRequest) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FunctionDependencies", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FunctionDependencies = append(m.FunctionDependencies, &v1.FunctionDependency{}) + if unmarshal, ok := interface{}(m.FunctionDependencies[len(m.FunctionDependencies)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.FunctionDependencies[len(m.FunctionDependencies)-1]); err != nil { + return err + } + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -2363,6 +2524,39 @@ func (m *ListExpressionIdentifiersResponse) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.NextPageToken = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -3319,6 +3513,48 @@ func (m *ExpressionRequest) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FunctionDependencies", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FunctionDependencies = append(m.FunctionDependencies, &v1.FunctionDependency{}) + if unmarshal, ok := interface{}(m.FunctionDependencies[len(m.FunctionDependencies)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.FunctionDependencies[len(m.FunctionDependencies)-1]); err != nil { + return err + } + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -3529,6 +3765,43 @@ func (m *ListExpressionIdentifiersResponse) UnmarshalVTUnsafe(dAtA []byte) error return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.NextPageToken = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/calculated_channels/v2/calculated_channels.pb.go b/go/gen/sift/calculated_channels/v2/calculated_channels.pb.go index 0492caa4e..bb7f95bea 100644 --- a/go/gen/sift/calculated_channels/v2/calculated_channels.pb.go +++ b/go/gen/sift/calculated_channels/v2/calculated_channels.pb.go @@ -50,6 +50,8 @@ type CalculatedChannel struct { ModifiedByUserId string `protobuf:"bytes,17,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` FunctionDependencies []*v1.FunctionDependency `protobuf:"bytes,19,rep,name=function_dependencies,json=functionDependencies,proto3" json:"function_dependencies,omitempty"` Metadata []*v11.MetadataValue `protobuf:"bytes,20,rep,name=metadata,proto3" json:"metadata,omitempty"` + // Whether the calculated channel is archived. This is inferred from whether archived_date is set. + IsArchived bool `protobuf:"varint,21,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *CalculatedChannel) Reset() { @@ -210,6 +212,13 @@ func (x *CalculatedChannel) GetMetadata() []*v11.MetadataValue { return nil } +func (x *CalculatedChannel) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type CalculatedChannelConfiguration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -824,14 +833,16 @@ type ListCalculatedChannelsRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, and `archived_date. + // Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + // `asset_id`, `asset_name`, `tag_id`, `tag_name`, `units`, `calculated_channel_version_id`, + // `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` // This field is only required if your user belongs to multiple organizations. OrganizationId string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` // How to order the retrieved calculated channels. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are `created_date` and `modified_date`. + // Available fields to order_by are `created_date`, `modified_date`, `name`, `description`, `units`, and `archived_date`. // If left empty, items are ordered by `created_date` in descending order (newest-first). // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,modified_date" @@ -974,7 +985,7 @@ type UpdateCalculatedChannelRequest struct { // The calculated channel to update. CalculatedChannel *CalculatedChannel `protobuf:"bytes,1,opt,name=calculated_channel,json=calculatedChannel,proto3" json:"calculated_channel,omitempty"` // The list of fields to be updated. The fields available to be updated are `name`, `description`, `units`, `metadata`, - // `query_configuration`, `archived_date`, and `asset_configuration`. + // `query_configuration`, `archived_date`, `is_archived`, and `asset_configuration`. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // Optional user notes to describe changes. UserNotes *string `protobuf:"bytes,3,opt,name=user_notes,json=userNotes,proto3,oneof" json:"user_notes,omitempty"` @@ -1108,14 +1119,16 @@ type ListCalculatedChannelVersionsRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `archived_date`, and `metadata`. + // Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + // `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`, + // `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` // This field is only required if your user belongs to multiple organizations. OrganizationId string `protobuf:"bytes,6,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` // How to order the retrieved calculated channel versions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are `created_date`, `modified_date`, and `version`. + // Available fields to order_by are 'version', `created_date`, `modified_date`, `name`, `description`, `units`, and `archived_date`. // If left empty, items are ordered by `created_date` in ascending order (oldest-first). // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,modified_date". @@ -1693,7 +1706,9 @@ type ListResolvedCalculatedChannelsRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, and `archived_date. + // Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + // `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`, + // `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` @@ -2044,7 +2059,7 @@ var file_sift_calculated_channels_v2_calculated_channels_proto_rawDesc = []byte{ 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x08, 0x0a, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x08, 0x0a, 0x11, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x37, 0x0a, 0x15, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, @@ -2109,298 +2124,354 @@ var file_sift_calculated_channels_v2_calculated_channels_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x22, 0x90, 0x02, - 0x0a, 0x1e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x76, 0x0a, 0x13, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x61, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x98, 0x02, 0x0a, 0x23, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, - 0x61, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x6f, 0x0a, 0x09, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x73, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x22, 0x90, 0x02, 0x0a, 0x1e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x13, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x76, + 0x0a, 0x13, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x02, 0x0a, 0x23, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x50, 0x0a, 0x0e, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x09, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, - 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x42, 0x0d, 0x0a, 0x0b, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x23, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x73, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x44, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x6c, 0x1a, 0xbc, 0x01, - 0x0a, 0x03, 0x53, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x8f, 0x01, 0x0a, 0x1d, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, + 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, + 0x6f, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x1b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x29, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0xcd, 0x01, 0x0a, 0x21, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, - 0x27, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1b, 0x47, 0x65, - 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x15, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xb5, 0x03, 0x0a, 0x1e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, - 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x69, - 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x22, 0xfb, 0x01, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x74, 0x0a, 0x13, 0x69, 0x6e, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, + 0x65, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x50, 0x0a, 0x0e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, + 0x64, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x23, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x73, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x69, 0x6e, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, - 0xd0, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x42, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, - 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xfe, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x62, 0x0a, 0x12, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x03, + 0x73, 0x65, 0x6c, 0x1a, 0xbc, 0x01, 0x0a, 0x03, 0x53, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0a, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x8f, 0x01, 0x0a, 0x1d, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x29, + 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, + 0xcd, 0x01, 0x0a, 0x21, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, + 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x2e, 0x0a, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xa8, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x37, 0x0a, 0x15, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x13, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x0f, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, + 0xb5, 0x03, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x8a, 0x01, 0x0a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1e, 0x63, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xfb, 0x01, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, - 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, - 0x6b, 0x12, 0x27, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0xfb, 0x01, 0x0a, 0x1f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, - 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x74, 0x0a, 0x13, 0x69, 0x6e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x12, 0x69, 0x6e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, - 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0xb4, 0x02, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x37, 0x0a, 0x15, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, - 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xc9, - 0x01, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x1b, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x74, 0x0a, 0x13, 0x69, 0x6e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x12, 0x69, 0x6e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xfe, + 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x62, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x19, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, - 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, - 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xd3, 0x03, 0x0a, 0x1f, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, - 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x00, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x8c, - 0x01, 0x0a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x63, + 0x41, 0x02, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, + 0xfb, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x74, 0x0a, 0x13, 0x69, 0x6e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x69, 0x6e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0xb4, 0x02, + 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x15, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x42, 0x79, 0x22, 0xc9, 0x01, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, + 0x0a, 0x1b, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x19, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0xd3, 0x03, 0x0a, 0x1f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x8c, 0x01, 0x0a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x00, 0x52, 0x1e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, + 0x52, 0x03, 0x72, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x72, 0x75, 0x6e, 0x22, 0x98, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x10, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, + 0x64, 0x22, 0x6b, 0x0a, 0x1b, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, - 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x06, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x43, 0x0a, - 0x03, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x75, 0x6e, - 0x22, 0x98, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, - 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, + 0x02, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x15, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x13, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x57, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x12, 0x5d, 0x0a, 0x0a, 0x75, 0x6e, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x11, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, - 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x6b, 0x0a, 0x1b, 0x55, - 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, - 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x73, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x6e, 0x72, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, + 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x25, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x15, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x48, 0x00, 0x52, 0x13, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x08, 0x72, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x8a, 0x01, 0x0a, + 0x26, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x25, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x22, 0xd5, 0x02, 0x0a, 0x1b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, @@ -2412,257 +2483,203 @@ var file_sift_calculated_channels_v2_calculated_channels_proto_rawDesc = []byte{ 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x22, 0x86, 0x01, - 0x0a, 0x25, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, + 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xdb, 0x01, 0x0a, 0x26, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x26, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x60, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xd5, 0x02, 0x0a, - 0x1b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x12, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, - 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x12, 0x5d, - 0x0a, 0x0a, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0a, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xdb, 0x01, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x83, 0x01, 0x0a, 0x1e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x32, 0xa8, 0x14, 0x0a, 0x18, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0xe0, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xa8, 0x14, 0x0a, 0x18, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe0, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x38, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, - 0x92, 0x41, 0x4c, 0x12, 0x14, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x34, 0x52, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7d, 0x5a, 0x46, 0x12, 0x44, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, 0x92, 0x41, 0x4c, 0x12, 0x14, 0x47, 0x65, 0x74, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, + 0x34, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7d, 0x5a, 0x46, 0x12, 0x44, 0x2f, + 0x76, 0x32, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x7d, 0x12, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x12, 0x33, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, - 0x64, 0x7d, 0x12, 0xf6, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3b, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, + 0x2f, 0x7b, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xf6, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x92, 0x41, 0x37, 0x12, 0x17, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0xa4, 0x02, 0x0a, 0x16, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x3a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x90, 0x01, 0x92, 0x41, 0x6a, 0x12, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0x50, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x12, 0x92, 0x02, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3b, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x92, 0x41, 0x53, 0x12, 0x17, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x38, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, - 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x32, 0x1b, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0xac, 0x03, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x60, 0x92, 0x41, 0x37, 0x12, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x1c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x12, 0xa4, 0x02, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x3a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x83, 0x02, 0x92, 0x41, 0x6a, 0x12, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x49, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x75, 0x6c, 0x61, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8f, 0x01, 0x5a, 0x4f, 0x12, 0x4d, 0x2f, 0x76, 0x32, 0x2f, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xa6, 0x02, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x12, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, 0x01, 0x92, 0x41, 0x6a, 0x12, 0x16, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x1a, 0x50, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x92, 0x02, 0x0a, 0x17, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x1a, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x8c, 0x01, 0x92, 0x41, 0x5b, 0x12, 0x18, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x1a, 0x3f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x12, - 0xcb, 0x02, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x12, 0x42, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x7c, 0x92, 0x41, 0x53, 0x12, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x38, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, + 0x32, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0xac, 0x03, + 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x41, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9f, 0x01, 0x92, 0x41, - 0x68, 0x12, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x1a, 0x47, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x65, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, - 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, - 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x12, 0xcd, 0x02, - 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x12, 0x42, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, 0x02, 0x92, 0x41, 0x6a, 0x12, 0x1d, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x49, 0x4c, 0x69, 0x73, + 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8f, 0x01, 0x5a, 0x4f, 0x12, + 0x4d, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xa6, 0x02, 0x0a, + 0x18, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x01, 0x92, 0x41, 0x72, 0x12, - 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, - 0x50, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, - 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, - 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x42, 0x99, 0x02, - 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, - 0x32, 0x42, 0x17, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x53, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, - 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x76, - 0x32, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x5b, 0x12, 0x18, 0x52, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x3f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, + 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, + 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x12, 0xcb, 0x02, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x9f, 0x01, 0x92, 0x41, 0x68, 0x12, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x47, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, + 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x3a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x12, 0xcd, 0x02, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xa1, 0x01, 0x92, 0x41, 0x72, 0x12, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0x50, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, + 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x42, 0x99, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x17, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x53, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, + 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, + 0x32, 0x3b, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x1a, + 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x1a, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x26, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, - 0x32, 0xe2, 0x02, 0x26, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1c, 0x53, 0x69, 0x66, - 0x74, 0x3a, 0x3a, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/calculated_channels/v2/calculated_channels_vtproto.pb.go b/go/gen/sift/calculated_channels/v2/calculated_channels_vtproto.pb.go index d59ddb6e7..e07f5ae6b 100644 --- a/go/gen/sift/calculated_channels/v2/calculated_channels_vtproto.pb.go +++ b/go/gen/sift/calculated_channels/v2/calculated_channels_vtproto.pb.go @@ -50,6 +50,7 @@ func (m *CalculatedChannel) CloneVT() *CalculatedChannel { r.CalculatedChannelConfiguration = m.CalculatedChannelConfiguration.CloneVT() r.CreatedByUserId = m.CreatedByUserId r.ModifiedByUserId = m.ModifiedByUserId + r.IsArchived = m.IsArchived if rhs := m.ClientKey; rhs != nil { tmpVal := *rhs r.ClientKey = &tmpVal @@ -873,6 +874,9 @@ func (this *CalculatedChannel) EqualVT(that *CalculatedChannel) bool { } } } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -2288,6 +2292,18 @@ func (m *CalculatedChannel) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -4137,6 +4153,18 @@ func (m *CalculatedChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -6057,6 +6085,9 @@ func (m *CalculatedChannel) SizeVT() (n int) { n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.IsArchived { + n += 3 + } n += len(m.unknownFields) return n } @@ -7361,6 +7392,26 @@ func (m *CalculatedChannel) UnmarshalVT(dAtA []byte) error { } } iNdEx = postIndex + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -11915,6 +11966,26 @@ func (m *CalculatedChannel) UnmarshalVTUnsafe(dAtA []byte) error { } } iNdEx = postIndex + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/campaigns/v1/campaigns.pb.go b/go/gen/sift/campaigns/v1/campaigns.pb.go index 2797a8462..17474e45b 100644 --- a/go/gen/sift/campaigns/v1/campaigns.pb.go +++ b/go/gen/sift/campaigns/v1/campaigns.pb.go @@ -50,6 +50,8 @@ type Campaign struct { CreatedFromCampaignId *string `protobuf:"bytes,13,opt,name=created_from_campaign_id,json=createdFromCampaignId,proto3,oneof" json:"created_from_campaign_id,omitempty"` // User-defined metadata for this campaign Metadata []*v11.MetadataValue `protobuf:"bytes,14,rep,name=metadata,proto3" json:"metadata,omitempty"` + // Whether the campaign. This is inferred from whether archived_date is set. + IsArchived bool `protobuf:"varint,15,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *Campaign) Reset() { @@ -182,6 +184,13 @@ func (x *Campaign) GetMetadata() []*v11.MetadataValue { return nil } +func (x *Campaign) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + // A top-level summary of the report's rules is provided here so clients needn't aggregate this information themselves. type CampaignReport struct { state protoimpl.MessageState @@ -665,7 +674,7 @@ type ListCampaignsRequest struct { PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `created_by_user_id`, `tag_id`, `tag_name`, `report_id`, `report_name`, `campaign_id`, `client_key`, `description`, `run_id`, `name`, and `metadata`. + // `created_by_user_id`, `tag_id`, `tag_name`, `report_id`, `report_name`, `campaign_id`, `client_key`, `description`, `run_id`, `name`, `is_archived`, and `metadata`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -821,7 +830,7 @@ type UpdateCampaignRequest struct { // The campaign to update. Campaign *Campaign `protobuf:"bytes,1,opt,name=campaign,proto3" json:"campaign,omitempty"` - // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `tags`, `reports`, and `metadata`. + // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `reports`, and `metadata`. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } @@ -1097,7 +1106,7 @@ var file_sift_campaigns_v1_campaigns_proto_rawDesc = []byte{ 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, - 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x06, 0x0a, 0x08, 0x43, 0x61, 0x6d, + 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x06, 0x0a, 0x08, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, @@ -1145,235 +1154,237 @@ var file_sift_campaigns_v1_campaigns_proto_rawDesc = []byte{ 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x22, - 0xc2, 0x02, 0x0a, 0x0e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x6e, 0x75, - 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x61, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x6e, 0x75, - 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x46, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x65, 0x6e, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x22, 0x9f, 0x03, 0x0a, 0x15, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xfb, 0x01, 0x0a, 0x12, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x46, 0x72, 0x6f, - 0x6d, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x48, - 0x00, 0x52, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x22, 0xf7, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x7a, 0x0a, 0x15, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x97, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, + 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0xc2, 0x02, 0x0a, 0x0e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2c, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, + 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, + 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6e, + 0x75, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, + 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, + 0x6e, 0x75, 0x6d, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x2d, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0e, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x29, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6e, 0x75, + 0x6d, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x40, - 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, - 0x22, 0x56, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x22, 0xc9, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x42, 0x79, 0x22, 0x8c, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, - 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x32, 0xb1, 0x08, 0x0a, 0x0f, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xea, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0b, 0x47, 0x65, - 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x1a, 0x14, 0x52, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x5a, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6d, - 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x7d, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, - 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x22, 0x9f, + 0x03, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x72, 0x6f, + 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x92, 0x41, - 0x24, 0x12, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x1a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, + 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x12, + 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x22, 0xfb, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x3e, 0x0a, + 0x04, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x50, 0x0a, + 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x0d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, + 0x0d, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x22, 0x56, + 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x2e, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, + 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, + 0x22, 0x7a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x92, 0x41, 0x20, 0x12, 0x0d, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x1a, 0x0f, 0x4c, 0x69, 0x73, 0x74, - 0x20, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x73, 0x12, 0xea, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x92, - 0x41, 0x63, 0x12, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x1a, 0x51, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, - 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x32, 0x11, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x73, 0x12, 0xf3, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, + 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x97, 0x01, 0x0a, + 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x56, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x22, 0xc9, + 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8c, 0x01, 0x0a, 0x1f, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, + 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xb1, 0x08, 0x0a, 0x0f, 0x43, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xea, 0x01, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x92, 0x41, 0x3b, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x1a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2f, 0x7b, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0xe5, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x92, + 0x41, 0x23, 0x12, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x1a, + 0x14, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x5a, 0x3c, 0x12, 0x3a, 0x2f, + 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x0e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, - 0x31, 0x42, 0x0e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x11, 0x53, 0x69, 0x66, - 0x74, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, - 0x11, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x14, 0x12, 0x12, 0x0a, 0x10, 0x43, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x43, 0x92, 0x41, 0x24, 0x12, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x1a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, + 0x61, 0x20, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x92, 0x41, + 0x20, 0x12, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x1a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0xea, 0x01, 0x0a, 0x0e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x28, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x82, 0x01, 0x92, 0x41, 0x63, 0x12, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x1a, 0x51, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x16, 0x3a, 0x01, 0x2a, 0x32, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0xf3, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x92, 0x41, 0x3b, 0x12, + 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, + 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0xe5, 0x01, + 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, + 0xaa, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x3a, + 0x3a, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, + 0x14, 0x12, 0x12, 0x0a, 0x10, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/campaigns/v1/campaigns_vtproto.pb.go b/go/gen/sift/campaigns/v1/campaigns_vtproto.pb.go index dda43546d..94b391a3e 100644 --- a/go/gen/sift/campaigns/v1/campaigns_vtproto.pb.go +++ b/go/gen/sift/campaigns/v1/campaigns_vtproto.pb.go @@ -45,6 +45,7 @@ func (m *Campaign) CloneVT() *Campaign { r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.IsArchived = m.IsArchived if rhs := m.ClientKey; rhs != nil { tmpVal := *rhs r.ClientKey = &tmpVal @@ -518,6 +519,9 @@ func (this *Campaign) EqualVT(that *Campaign) bool { } } } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1268,6 +1272,16 @@ func (m *Campaign) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x78 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -2265,6 +2279,16 @@ func (m *Campaign) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x78 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -3324,6 +3348,9 @@ func (m *Campaign) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.IsArchived { + n += 2 + } n += len(m.unknownFields) return n } @@ -4183,6 +4210,26 @@ func (m *Campaign) UnmarshalVT(dAtA []byte) error { } } iNdEx = postIndex + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -6675,6 +6722,26 @@ func (m *Campaign) UnmarshalVTUnsafe(dAtA []byte) error { } } iNdEx = postIndex + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/channels/v2/channels.pb.go b/go/gen/sift/channels/v2/channels.pb.go index dbfc4d3e1..a7995d322 100644 --- a/go/gen/sift/channels/v2/channels.pb.go +++ b/go/gen/sift/channels/v2/channels.pb.go @@ -10,6 +10,7 @@ import ( _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" + v11 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" @@ -43,6 +44,7 @@ type Channel struct { DataType v1.ChannelDataType `protobuf:"varint,12,opt,name=data_type,json=dataType,proto3,enum=sift.common.type.v1.ChannelDataType" json:"data_type,omitempty"` EnumTypes []*v1.ChannelEnumType `protobuf:"bytes,13,rep,name=enum_types,json=enumTypes,proto3" json:"enum_types,omitempty"` BitFieldElements []*v1.ChannelBitFieldElement `protobuf:"bytes,14,rep,name=bit_field_elements,json=bitFieldElements,proto3" json:"bit_field_elements,omitempty"` + Metadata []*v11.MetadataValue `protobuf:"bytes,15,rep,name=metadata,proto3" json:"metadata,omitempty"` } func (x *Channel) Reset() { @@ -175,6 +177,13 @@ func (x *Channel) GetBitFieldElements() []*v1.ChannelBitFieldElement { return nil } +func (x *Channel) GetMetadata() []*v11.MetadataValue { + if x != nil { + return x.Metadata + } + return nil +} + // The request for a call to `ChannelService_GetChannel`. type GetChannelRequest struct { state protoimpl.MessageState @@ -449,131 +458,137 @@ var file_sift_channels_v2_channels_proto_rawDesc = []byte{ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xd4, 0x05, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, - 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x1e, - 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x6e, 0x69, - 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, - 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x65, 0x6e, 0x75, - 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x59, - 0x0a, 0x12, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x37, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, - 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x22, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, - 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x75, 0x0a, 0x14, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x32, 0xbc, 0x04, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x49, 0x92, 0x41, 0x21, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x1a, 0x13, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb5, 0x01, 0x0a, 0x0c, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x3b, 0x12, - 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0x2b, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, - 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x73, 0x1a, 0xcc, 0x01, 0x92, 0x41, 0xc8, 0x01, 0x12, 0x48, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5d, 0x28, - 0x2f, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, 0x79, 0x23, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x29, 0x2e, 0x1a, 0x7c, 0x0a, 0x22, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x35, 0x33, 0x39, 0x34, - 0x33, 0x42, 0xdc, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0d, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, - 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, - 0x69, 0x66, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x32, 0x3b, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, - 0xaa, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x2e, 0x56, 0x32, 0xca, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x13, 0x12, 0x11, 0x0a, - 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x96, 0x06, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x6e, + 0x69, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, + 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x65, 0x6e, + 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x75, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x59, 0x0a, 0x12, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x37, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x75, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xbc, 0x04, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x49, 0x92, 0x41, 0x21, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x1a, 0x13, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb5, 0x01, + 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, + 0x41, 0x3b, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x1a, 0x2b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0xcc, 0x01, 0x92, 0x41, 0xc8, 0x01, 0x12, 0x48, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, + 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, 0x79, 0x23, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x1a, 0x7c, 0x0a, 0x22, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, + 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, + 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, + 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x35, + 0x33, 0x39, 0x34, 0x33, 0x42, 0xdc, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0d, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, + 0x76, 0x32, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, + 0x53, 0x43, 0x58, 0xaa, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, + 0x5c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x3a, + 0x3a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x13, + 0x12, 0x11, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -599,24 +614,26 @@ var file_sift_channels_v2_channels_proto_goTypes = []interface{}{ (v1.ChannelDataType)(0), // 6: sift.common.type.v1.ChannelDataType (*v1.ChannelEnumType)(nil), // 7: sift.common.type.v1.ChannelEnumType (*v1.ChannelBitFieldElement)(nil), // 8: sift.common.type.v1.ChannelBitFieldElement + (*v11.MetadataValue)(nil), // 9: sift.metadata.v1.MetadataValue } var file_sift_channels_v2_channels_proto_depIdxs = []int32{ - 5, // 0: sift.channels.v2.Channel.created_date:type_name -> google.protobuf.Timestamp - 5, // 1: sift.channels.v2.Channel.modified_date:type_name -> google.protobuf.Timestamp - 6, // 2: sift.channels.v2.Channel.data_type:type_name -> sift.common.type.v1.ChannelDataType - 7, // 3: sift.channels.v2.Channel.enum_types:type_name -> sift.common.type.v1.ChannelEnumType - 8, // 4: sift.channels.v2.Channel.bit_field_elements:type_name -> sift.common.type.v1.ChannelBitFieldElement - 0, // 5: sift.channels.v2.GetChannelResponse.channel:type_name -> sift.channels.v2.Channel - 0, // 6: sift.channels.v2.ListChannelsResponse.channels:type_name -> sift.channels.v2.Channel - 1, // 7: sift.channels.v2.ChannelService.GetChannel:input_type -> sift.channels.v2.GetChannelRequest - 3, // 8: sift.channels.v2.ChannelService.ListChannels:input_type -> sift.channels.v2.ListChannelsRequest - 2, // 9: sift.channels.v2.ChannelService.GetChannel:output_type -> sift.channels.v2.GetChannelResponse - 4, // 10: sift.channels.v2.ChannelService.ListChannels:output_type -> sift.channels.v2.ListChannelsResponse - 9, // [9:11] is the sub-list for method output_type - 7, // [7:9] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 5, // 0: sift.channels.v2.Channel.created_date:type_name -> google.protobuf.Timestamp + 5, // 1: sift.channels.v2.Channel.modified_date:type_name -> google.protobuf.Timestamp + 6, // 2: sift.channels.v2.Channel.data_type:type_name -> sift.common.type.v1.ChannelDataType + 7, // 3: sift.channels.v2.Channel.enum_types:type_name -> sift.common.type.v1.ChannelEnumType + 8, // 4: sift.channels.v2.Channel.bit_field_elements:type_name -> sift.common.type.v1.ChannelBitFieldElement + 9, // 5: sift.channels.v2.Channel.metadata:type_name -> sift.metadata.v1.MetadataValue + 0, // 6: sift.channels.v2.GetChannelResponse.channel:type_name -> sift.channels.v2.Channel + 0, // 7: sift.channels.v2.ListChannelsResponse.channels:type_name -> sift.channels.v2.Channel + 1, // 8: sift.channels.v2.ChannelService.GetChannel:input_type -> sift.channels.v2.GetChannelRequest + 3, // 9: sift.channels.v2.ChannelService.ListChannels:input_type -> sift.channels.v2.ListChannelsRequest + 2, // 10: sift.channels.v2.ChannelService.GetChannel:output_type -> sift.channels.v2.GetChannelResponse + 4, // 11: sift.channels.v2.ChannelService.ListChannels:output_type -> sift.channels.v2.ListChannelsResponse + 10, // [10:12] is the sub-list for method output_type + 8, // [8:10] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_sift_channels_v2_channels_proto_init() } diff --git a/go/gen/sift/channels/v2/channels_vtproto.pb.go b/go/gen/sift/channels/v2/channels_vtproto.pb.go index f1fe1633d..dcdaa547f 100644 --- a/go/gen/sift/channels/v2/channels_vtproto.pb.go +++ b/go/gen/sift/channels/v2/channels_vtproto.pb.go @@ -10,6 +10,7 @@ import ( protohelpers "github.com/planetscale/vtprotobuf/protohelpers" timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" + v11 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -68,6 +69,17 @@ func (m *Channel) CloneVT() *Channel { } r.BitFieldElements = tmpContainer } + if rhs := m.Metadata; rhs != nil { + tmpContainer := make([]*v11.MetadataValue, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v11.MetadataValue }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v11.MetadataValue) + } + } + r.Metadata = tmpContainer + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -246,6 +258,27 @@ func (this *Channel) EqualVT(that *Channel) bool { } } } + if len(this.Metadata) != len(that.Metadata) { + return false + } + for i, vx := range this.Metadata { + vy := that.Metadata[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v11.MetadataValue{} + } + if q == nil { + q = &v11.MetadataValue{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v11.MetadataValue) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } return string(this.unknownFields) == string(that.unknownFields) } @@ -523,6 +556,30 @@ func (m *Channel) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x7a + } + } if len(m.BitFieldElements) > 0 { for iNdEx := len(m.BitFieldElements) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.BitFieldElements[iNdEx]).(interface { @@ -893,6 +950,30 @@ func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x7a + } + } if len(m.BitFieldElements) > 0 { for iNdEx := len(m.BitFieldElements) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.BitFieldElements[iNdEx]).(interface { @@ -1310,6 +1391,18 @@ func (m *Channel) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } n += len(m.unknownFields) return n } @@ -1883,6 +1976,48 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { } } iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -2918,6 +3053,48 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { } } iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/channels/v3/channels.pb.go b/go/gen/sift/channels/v3/channels.pb.go index 5eec9e0c0..1150885eb 100644 --- a/go/gen/sift/channels/v3/channels.pb.go +++ b/go/gen/sift/channels/v3/channels.pb.go @@ -299,7 +299,7 @@ type ListChannelsRequest struct { PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `channel_id`, `asset_id`, `name`, `description`, `active`, - // `run_id`, `run_name`, `run_client_key`, `created_date`, and `modified_date`. + // `run_id`, `run_name`, `run_client_key`, `created_date`, `modified_date`, `created_by_user_id`, and `modified_by_user_id`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/channels#channel). Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -427,6 +427,366 @@ func (x *ListChannelsResponse) GetNextPageToken() string { return "" } +type FilterChannel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + OrganizationId string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + AssetId string `protobuf:"bytes,5,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + AssetName string `protobuf:"bytes,6,opt,name=asset_name,json=assetName,proto3" json:"asset_name,omitempty"` + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + DisplayDescription string `protobuf:"bytes,8,opt,name=display_description,json=displayDescription,proto3" json:"display_description,omitempty"` + UnitId string `protobuf:"bytes,9,opt,name=unit_id,json=unitId,proto3" json:"unit_id,omitempty"` + DisplayUnitId string `protobuf:"bytes,10,opt,name=display_unit_id,json=displayUnitId,proto3" json:"display_unit_id,omitempty"` + Unit string `protobuf:"bytes,11,opt,name=unit,proto3" json:"unit,omitempty"` + DisplayUnit string `protobuf:"bytes,12,opt,name=display_unit,json=displayUnit,proto3" json:"display_unit,omitempty"` + DataType v1.ChannelDataType `protobuf:"varint,13,opt,name=data_type,json=dataType,proto3,enum=sift.common.type.v1.ChannelDataType" json:"data_type,omitempty"` + EnumTypes []*v1.ChannelEnumType `protobuf:"bytes,14,rep,name=enum_types,json=enumTypes,proto3" json:"enum_types,omitempty"` + BitFieldElements []*v1.ChannelBitFieldElement `protobuf:"bytes,15,rep,name=bit_field_elements,json=bitFieldElements,proto3" json:"bit_field_elements,omitempty"` + Metadata []*v11.MetadataValue `protobuf:"bytes,16,rep,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *FilterChannel) Reset() { + *x = FilterChannel{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_channels_v3_channels_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FilterChannel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FilterChannel) ProtoMessage() {} + +func (x *FilterChannel) ProtoReflect() protoreflect.Message { + mi := &file_sift_channels_v3_channels_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FilterChannel.ProtoReflect.Descriptor instead. +func (*FilterChannel) Descriptor() ([]byte, []int) { + return file_sift_channels_v3_channels_proto_rawDescGZIP(), []int{5} +} + +func (x *FilterChannel) GetChannelId() string { + if x != nil { + return x.ChannelId + } + return "" +} + +func (x *FilterChannel) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FilterChannel) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *FilterChannel) GetAssetId() string { + if x != nil { + return x.AssetId + } + return "" +} + +func (x *FilterChannel) GetAssetName() string { + if x != nil { + return x.AssetName + } + return "" +} + +func (x *FilterChannel) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *FilterChannel) GetDisplayDescription() string { + if x != nil { + return x.DisplayDescription + } + return "" +} + +func (x *FilterChannel) GetUnitId() string { + if x != nil { + return x.UnitId + } + return "" +} + +func (x *FilterChannel) GetDisplayUnitId() string { + if x != nil { + return x.DisplayUnitId + } + return "" +} + +func (x *FilterChannel) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + +func (x *FilterChannel) GetDisplayUnit() string { + if x != nil { + return x.DisplayUnit + } + return "" +} + +func (x *FilterChannel) GetDataType() v1.ChannelDataType { + if x != nil { + return x.DataType + } + return v1.ChannelDataType(0) +} + +func (x *FilterChannel) GetEnumTypes() []*v1.ChannelEnumType { + if x != nil { + return x.EnumTypes + } + return nil +} + +func (x *FilterChannel) GetBitFieldElements() []*v1.ChannelBitFieldElement { + if x != nil { + return x.BitFieldElements + } + return nil +} + +func (x *FilterChannel) GetMetadata() []*v11.MetadataValue { + if x != nil { + return x.Metadata + } + return nil +} + +// The request for a call to ChannelService_FilterChannels. +type FilterChannelsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // The search term to match against channel names, components and descriptions. Optional. + SearchTerm string `protobuf:"bytes,4,opt,name=search_term,json=searchTerm,proto3" json:"search_term,omitempty"` + // If true, the search term is case sensitive. Optional, default false. + IsSearchCaseSensitive bool `protobuf:"varint,5,opt,name=is_search_case_sensitive,json=isSearchCaseSensitive,proto3" json:"is_search_case_sensitive,omitempty"` + // If true, the search term is treated as a regular expression. Optional, default false. + IsSearchRegexp bool `protobuf:"varint,6,opt,name=is_search_regexp,json=isSearchRegexp,proto3" json:"is_search_regexp,omitempty"` + // If provided, only channels matching these asset_ids are returned. Optional + AssetIds []string `protobuf:"bytes,7,rep,name=asset_ids,json=assetIds,proto3" json:"asset_ids,omitempty"` + // Only channels for these runs are returned. Optional + RunIds []string `protobuf:"bytes,8,rep,name=run_ids,json=runIds,proto3" json:"run_ids,omitempty"` + // If provided, only channels matching these channel_ids are returned. Optional + ChannelIds []string `protobuf:"bytes,9,rep,name=channel_ids,json=channelIds,proto3" json:"channel_ids,omitempty"` + // If provided, only channels with assets with these tag_ids are returned. Optional + AssetTagIds []string `protobuf:"bytes,10,rep,name=asset_tag_ids,json=assetTagIds,proto3" json:"asset_tag_ids,omitempty"` + // If provide, only channels with these data types are returned. Optional. + DataTypes []v1.ChannelDataType `protobuf:"varint,11,rep,packed,name=data_types,json=dataTypes,proto3,enum=sift.common.type.v1.ChannelDataType" json:"data_types,omitempty"` + // If provided, only channels with this metadata are returned. Optional. + MetadataKeys []string `protobuf:"bytes,12,rep,name=metadata_keys,json=metadataKeys,proto3" json:"metadata_keys,omitempty"` + MetadataValues []string `protobuf:"bytes,13,rep,name=metadata_values,json=metadataValues,proto3" json:"metadata_values,omitempty"` +} + +func (x *FilterChannelsRequest) Reset() { + *x = FilterChannelsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_channels_v3_channels_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FilterChannelsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FilterChannelsRequest) ProtoMessage() {} + +func (x *FilterChannelsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_channels_v3_channels_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FilterChannelsRequest.ProtoReflect.Descriptor instead. +func (*FilterChannelsRequest) Descriptor() ([]byte, []int) { + return file_sift_channels_v3_channels_proto_rawDescGZIP(), []int{6} +} + +func (x *FilterChannelsRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *FilterChannelsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *FilterChannelsRequest) GetSearchTerm() string { + if x != nil { + return x.SearchTerm + } + return "" +} + +func (x *FilterChannelsRequest) GetIsSearchCaseSensitive() bool { + if x != nil { + return x.IsSearchCaseSensitive + } + return false +} + +func (x *FilterChannelsRequest) GetIsSearchRegexp() bool { + if x != nil { + return x.IsSearchRegexp + } + return false +} + +func (x *FilterChannelsRequest) GetAssetIds() []string { + if x != nil { + return x.AssetIds + } + return nil +} + +func (x *FilterChannelsRequest) GetRunIds() []string { + if x != nil { + return x.RunIds + } + return nil +} + +func (x *FilterChannelsRequest) GetChannelIds() []string { + if x != nil { + return x.ChannelIds + } + return nil +} + +func (x *FilterChannelsRequest) GetAssetTagIds() []string { + if x != nil { + return x.AssetTagIds + } + return nil +} + +func (x *FilterChannelsRequest) GetDataTypes() []v1.ChannelDataType { + if x != nil { + return x.DataTypes + } + return nil +} + +func (x *FilterChannelsRequest) GetMetadataKeys() []string { + if x != nil { + return x.MetadataKeys + } + return nil +} + +func (x *FilterChannelsRequest) GetMetadataValues() []string { + if x != nil { + return x.MetadataValues + } + return nil +} + +// The result of a call to ChannelService_FilterChannels. +type FilterChannelsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Channels []*FilterChannel `protobuf:"bytes,1,rep,name=channels,proto3" json:"channels,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *FilterChannelsResponse) Reset() { + *x = FilterChannelsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_channels_v3_channels_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FilterChannelsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FilterChannelsResponse) ProtoMessage() {} + +func (x *FilterChannelsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_channels_v3_channels_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FilterChannelsResponse.ProtoReflect.Descriptor instead. +func (*FilterChannelsResponse) Descriptor() ([]byte, []int) { + return file_sift_channels_v3_channels_proto_rawDescGZIP(), []int{7} +} + +func (x *FilterChannelsResponse) GetChannels() []*FilterChannel { + if x != nil { + return x.Channels + } + return nil +} + +func (x *FilterChannelsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + // The request for a call to ChannelService_UpdateChannel. type UpdateChannelRequest struct { state protoimpl.MessageState @@ -441,7 +801,7 @@ type UpdateChannelRequest struct { func (x *UpdateChannelRequest) Reset() { *x = UpdateChannelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_channels_v3_channels_proto_msgTypes[5] + mi := &file_sift_channels_v3_channels_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -454,7 +814,7 @@ func (x *UpdateChannelRequest) String() string { func (*UpdateChannelRequest) ProtoMessage() {} func (x *UpdateChannelRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_channels_v3_channels_proto_msgTypes[5] + mi := &file_sift_channels_v3_channels_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -467,7 +827,7 @@ func (x *UpdateChannelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateChannelRequest.ProtoReflect.Descriptor instead. func (*UpdateChannelRequest) Descriptor() ([]byte, []int) { - return file_sift_channels_v3_channels_proto_rawDescGZIP(), []int{5} + return file_sift_channels_v3_channels_proto_rawDescGZIP(), []int{8} } func (x *UpdateChannelRequest) GetChannel() *Channel { @@ -496,7 +856,7 @@ type UpdateChannelResponse struct { func (x *UpdateChannelResponse) Reset() { *x = UpdateChannelResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_channels_v3_channels_proto_msgTypes[6] + mi := &file_sift_channels_v3_channels_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -509,7 +869,7 @@ func (x *UpdateChannelResponse) String() string { func (*UpdateChannelResponse) ProtoMessage() {} func (x *UpdateChannelResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_channels_v3_channels_proto_msgTypes[6] + mi := &file_sift_channels_v3_channels_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -522,7 +882,7 @@ func (x *UpdateChannelResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateChannelResponse.ProtoReflect.Descriptor instead. func (*UpdateChannelResponse) Descriptor() ([]byte, []int) { - return file_sift_channels_v3_channels_proto_rawDescGZIP(), []int{6} + return file_sift_channels_v3_channels_proto_rawDescGZIP(), []int{9} } func (x *UpdateChannelResponse) GetChannel() *Channel { @@ -636,87 +996,170 @@ var file_sift_channels_v3_channels_proto_rawDesc = []byte{ 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x38, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x32, 0xbd, 0x06, 0x0a, 0x0e, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbf, 0x01, 0x0a, - 0x0a, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x23, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, 0x41, 0x3e, 0x12, 0x0a, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x13, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, - 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x2a, 0x1b, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, - 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xd4, - 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, - 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, - 0x92, 0x41, 0x5a, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x1a, 0x2b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x2a, 0x1d, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x92, 0x41, 0x42, 0x12, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x11, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x2a, - 0x1e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x33, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x32, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x33, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0xcc, 0x01, 0x92, 0x41, 0xc8, - 0x01, 0x12, 0x48, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, - 0x79, 0x23, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x1a, 0x7c, 0x0a, 0x22, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, - 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, - 0x32, 0x36, 0x35, 0x34, 0x35, 0x33, 0x39, 0x34, 0x33, 0x42, 0xdc, 0x01, 0x0a, 0x14, 0x63, 0x6f, - 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x76, 0x33, 0x42, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x33, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x76, 0x33, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x10, 0x53, 0x69, - 0x66, 0x74, 0x5c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, - 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, - 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, - 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x3a, - 0x56, 0x33, 0x92, 0x41, 0x13, 0x12, 0x11, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x22, 0xb9, 0x05, 0x0a, 0x0d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x55, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x46, 0x0a, + 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x12, 0x62, 0x69, + 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xe5, 0x03, + 0x0a, 0x15, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x65, + 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x54, 0x65, 0x72, 0x6d, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x43, 0x61, 0x73, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x28, 0x0a, + 0x10, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, + 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x67, 0x65, 0x78, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x49, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x73, 0x12, 0x22, + 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, + 0x64, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x64, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x7d, 0x0a, 0x16, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, + 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x15, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x32, 0xbd, 0x06, 0x0a, + 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0xbf, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x23, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, 0x41, 0x3e, 0x12, 0x0a, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x13, 0x52, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x2a, + 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0xd4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x75, 0x92, 0x41, 0x5a, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0x2b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x2e, 0x2a, 0x1d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x56, 0x32, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x33, 0x2f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x92, 0x41, 0x42, + 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x2a, 0x1e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x56, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x32, 0x10, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0xcc, 0x01, + 0x92, 0x41, 0xc8, 0x01, 0x12, 0x48, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x5b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, 0x73, + 0x73, 0x61, 0x72, 0x79, 0x23, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x1a, 0x7c, + 0x0a, 0x22, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, + 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x35, 0x33, 0x39, 0x34, 0x33, 0x42, 0xdc, 0x01, 0x0a, + 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x42, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, + 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x33, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x10, 0x53, 0x69, + 0x66, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, + 0x10, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5c, 0x56, + 0x33, 0xe2, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x5c, 0x56, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x3a, 0x3a, 0x56, 0x33, 0x92, 0x41, 0x13, 0x12, 0x11, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -731,45 +1174,54 @@ func file_sift_channels_v3_channels_proto_rawDescGZIP() []byte { return file_sift_channels_v3_channels_proto_rawDescData } -var file_sift_channels_v3_channels_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_sift_channels_v3_channels_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_sift_channels_v3_channels_proto_goTypes = []interface{}{ (*Channel)(nil), // 0: sift.channels.v3.Channel (*GetChannelRequest)(nil), // 1: sift.channels.v3.GetChannelRequest (*GetChannelResponse)(nil), // 2: sift.channels.v3.GetChannelResponse (*ListChannelsRequest)(nil), // 3: sift.channels.v3.ListChannelsRequest (*ListChannelsResponse)(nil), // 4: sift.channels.v3.ListChannelsResponse - (*UpdateChannelRequest)(nil), // 5: sift.channels.v3.UpdateChannelRequest - (*UpdateChannelResponse)(nil), // 6: sift.channels.v3.UpdateChannelResponse - (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp - (v1.ChannelDataType)(0), // 8: sift.common.type.v1.ChannelDataType - (*v1.ChannelEnumType)(nil), // 9: sift.common.type.v1.ChannelEnumType - (*v1.ChannelBitFieldElement)(nil), // 10: sift.common.type.v1.ChannelBitFieldElement - (*v11.MetadataValue)(nil), // 11: sift.metadata.v1.MetadataValue - (*fieldmaskpb.FieldMask)(nil), // 12: google.protobuf.FieldMask + (*FilterChannel)(nil), // 5: sift.channels.v3.FilterChannel + (*FilterChannelsRequest)(nil), // 6: sift.channels.v3.FilterChannelsRequest + (*FilterChannelsResponse)(nil), // 7: sift.channels.v3.FilterChannelsResponse + (*UpdateChannelRequest)(nil), // 8: sift.channels.v3.UpdateChannelRequest + (*UpdateChannelResponse)(nil), // 9: sift.channels.v3.UpdateChannelResponse + (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (v1.ChannelDataType)(0), // 11: sift.common.type.v1.ChannelDataType + (*v1.ChannelEnumType)(nil), // 12: sift.common.type.v1.ChannelEnumType + (*v1.ChannelBitFieldElement)(nil), // 13: sift.common.type.v1.ChannelBitFieldElement + (*v11.MetadataValue)(nil), // 14: sift.metadata.v1.MetadataValue + (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask } var file_sift_channels_v3_channels_proto_depIdxs = []int32{ - 7, // 0: sift.channels.v3.Channel.created_date:type_name -> google.protobuf.Timestamp - 7, // 1: sift.channels.v3.Channel.modified_date:type_name -> google.protobuf.Timestamp - 8, // 2: sift.channels.v3.Channel.data_type:type_name -> sift.common.type.v1.ChannelDataType - 9, // 3: sift.channels.v3.Channel.enum_types:type_name -> sift.common.type.v1.ChannelEnumType - 10, // 4: sift.channels.v3.Channel.bit_field_elements:type_name -> sift.common.type.v1.ChannelBitFieldElement - 11, // 5: sift.channels.v3.Channel.metadata:type_name -> sift.metadata.v1.MetadataValue + 10, // 0: sift.channels.v3.Channel.created_date:type_name -> google.protobuf.Timestamp + 10, // 1: sift.channels.v3.Channel.modified_date:type_name -> google.protobuf.Timestamp + 11, // 2: sift.channels.v3.Channel.data_type:type_name -> sift.common.type.v1.ChannelDataType + 12, // 3: sift.channels.v3.Channel.enum_types:type_name -> sift.common.type.v1.ChannelEnumType + 13, // 4: sift.channels.v3.Channel.bit_field_elements:type_name -> sift.common.type.v1.ChannelBitFieldElement + 14, // 5: sift.channels.v3.Channel.metadata:type_name -> sift.metadata.v1.MetadataValue 0, // 6: sift.channels.v3.GetChannelResponse.channel:type_name -> sift.channels.v3.Channel 0, // 7: sift.channels.v3.ListChannelsResponse.channels:type_name -> sift.channels.v3.Channel - 0, // 8: sift.channels.v3.UpdateChannelRequest.channel:type_name -> sift.channels.v3.Channel - 12, // 9: sift.channels.v3.UpdateChannelRequest.update_mask:type_name -> google.protobuf.FieldMask - 0, // 10: sift.channels.v3.UpdateChannelResponse.channel:type_name -> sift.channels.v3.Channel - 1, // 11: sift.channels.v3.ChannelService.GetChannel:input_type -> sift.channels.v3.GetChannelRequest - 3, // 12: sift.channels.v3.ChannelService.ListChannels:input_type -> sift.channels.v3.ListChannelsRequest - 5, // 13: sift.channels.v3.ChannelService.UpdateChannel:input_type -> sift.channels.v3.UpdateChannelRequest - 2, // 14: sift.channels.v3.ChannelService.GetChannel:output_type -> sift.channels.v3.GetChannelResponse - 4, // 15: sift.channels.v3.ChannelService.ListChannels:output_type -> sift.channels.v3.ListChannelsResponse - 6, // 16: sift.channels.v3.ChannelService.UpdateChannel:output_type -> sift.channels.v3.UpdateChannelResponse - 14, // [14:17] is the sub-list for method output_type - 11, // [11:14] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 11, // 8: sift.channels.v3.FilterChannel.data_type:type_name -> sift.common.type.v1.ChannelDataType + 12, // 9: sift.channels.v3.FilterChannel.enum_types:type_name -> sift.common.type.v1.ChannelEnumType + 13, // 10: sift.channels.v3.FilterChannel.bit_field_elements:type_name -> sift.common.type.v1.ChannelBitFieldElement + 14, // 11: sift.channels.v3.FilterChannel.metadata:type_name -> sift.metadata.v1.MetadataValue + 11, // 12: sift.channels.v3.FilterChannelsRequest.data_types:type_name -> sift.common.type.v1.ChannelDataType + 5, // 13: sift.channels.v3.FilterChannelsResponse.channels:type_name -> sift.channels.v3.FilterChannel + 0, // 14: sift.channels.v3.UpdateChannelRequest.channel:type_name -> sift.channels.v3.Channel + 15, // 15: sift.channels.v3.UpdateChannelRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 16: sift.channels.v3.UpdateChannelResponse.channel:type_name -> sift.channels.v3.Channel + 1, // 17: sift.channels.v3.ChannelService.GetChannel:input_type -> sift.channels.v3.GetChannelRequest + 3, // 18: sift.channels.v3.ChannelService.ListChannels:input_type -> sift.channels.v3.ListChannelsRequest + 8, // 19: sift.channels.v3.ChannelService.UpdateChannel:input_type -> sift.channels.v3.UpdateChannelRequest + 2, // 20: sift.channels.v3.ChannelService.GetChannel:output_type -> sift.channels.v3.GetChannelResponse + 4, // 21: sift.channels.v3.ChannelService.ListChannels:output_type -> sift.channels.v3.ListChannelsResponse + 9, // 22: sift.channels.v3.ChannelService.UpdateChannel:output_type -> sift.channels.v3.UpdateChannelResponse + 20, // [20:23] is the sub-list for method output_type + 17, // [17:20] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_sift_channels_v3_channels_proto_init() } @@ -839,7 +1291,7 @@ func file_sift_channels_v3_channels_proto_init() { } } file_sift_channels_v3_channels_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateChannelRequest); i { + switch v := v.(*FilterChannel); i { case 0: return &v.state case 1: @@ -851,6 +1303,42 @@ func file_sift_channels_v3_channels_proto_init() { } } file_sift_channels_v3_channels_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FilterChannelsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_channels_v3_channels_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FilterChannelsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_channels_v3_channels_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateChannelRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_channels_v3_channels_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateChannelResponse); i { case 0: return &v.state @@ -869,7 +1357,7 @@ func file_sift_channels_v3_channels_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_channels_v3_channels_proto_rawDesc, NumEnums: 0, - NumMessages: 7, + NumMessages: 10, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/channels/v3/channels_vtproto.pb.go b/go/gen/sift/channels/v3/channels_vtproto.pb.go index 8c69acbc3..4d781a247 100644 --- a/go/gen/sift/channels/v3/channels_vtproto.pb.go +++ b/go/gen/sift/channels/v3/channels_vtproto.pb.go @@ -171,6 +171,149 @@ func (m *ListChannelsResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *FilterChannel) CloneVT() *FilterChannel { + if m == nil { + return (*FilterChannel)(nil) + } + r := new(FilterChannel) + r.ChannelId = m.ChannelId + r.Name = m.Name + r.OrganizationId = m.OrganizationId + r.AssetId = m.AssetId + r.AssetName = m.AssetName + r.Description = m.Description + r.DisplayDescription = m.DisplayDescription + r.UnitId = m.UnitId + r.DisplayUnitId = m.DisplayUnitId + r.Unit = m.Unit + r.DisplayUnit = m.DisplayUnit + r.DataType = m.DataType + if rhs := m.EnumTypes; rhs != nil { + tmpContainer := make([]*v1.ChannelEnumType, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v1.ChannelEnumType }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v1.ChannelEnumType) + } + } + r.EnumTypes = tmpContainer + } + if rhs := m.BitFieldElements; rhs != nil { + tmpContainer := make([]*v1.ChannelBitFieldElement, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface { + CloneVT() *v1.ChannelBitFieldElement + }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v1.ChannelBitFieldElement) + } + } + r.BitFieldElements = tmpContainer + } + if rhs := m.Metadata; rhs != nil { + tmpContainer := make([]*v11.MetadataValue, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v11.MetadataValue }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v11.MetadataValue) + } + } + r.Metadata = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FilterChannel) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FilterChannelsRequest) CloneVT() *FilterChannelsRequest { + if m == nil { + return (*FilterChannelsRequest)(nil) + } + r := new(FilterChannelsRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.SearchTerm = m.SearchTerm + r.IsSearchCaseSensitive = m.IsSearchCaseSensitive + r.IsSearchRegexp = m.IsSearchRegexp + if rhs := m.AssetIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.AssetIds = tmpContainer + } + if rhs := m.RunIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.RunIds = tmpContainer + } + if rhs := m.ChannelIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.ChannelIds = tmpContainer + } + if rhs := m.AssetTagIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.AssetTagIds = tmpContainer + } + if rhs := m.DataTypes; rhs != nil { + tmpContainer := make([]v1.ChannelDataType, len(rhs)) + copy(tmpContainer, rhs) + r.DataTypes = tmpContainer + } + if rhs := m.MetadataKeys; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.MetadataKeys = tmpContainer + } + if rhs := m.MetadataValues; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.MetadataValues = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FilterChannelsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FilterChannelsResponse) CloneVT() *FilterChannelsResponse { + if m == nil { + return (*FilterChannelsResponse)(nil) + } + r := new(FilterChannelsResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.Channels; rhs != nil { + tmpContainer := make([]*FilterChannel, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Channels = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FilterChannelsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *UpdateChannelRequest) CloneVT() *UpdateChannelRequest { if m == nil { return (*UpdateChannelRequest)(nil) @@ -427,42 +570,291 @@ func (this *ListChannelsResponse) EqualMessageVT(thatMsg proto.Message) bool { } return this.EqualVT(that) } -func (this *UpdateChannelRequest) EqualVT(that *UpdateChannelRequest) bool { +func (this *FilterChannel) EqualVT(that *FilterChannel) bool { if this == that { return true } else if this == nil || that == nil { return false } - if !this.Channel.EqualVT(that.Channel) { + if this.ChannelId != that.ChannelId { return false } - if !(*fieldmaskpb1.FieldMask)(this.UpdateMask).EqualVT((*fieldmaskpb1.FieldMask)(that.UpdateMask)) { + if this.Name != that.Name { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + if this.AssetId != that.AssetId { + return false + } + if this.AssetName != that.AssetName { + return false + } + if this.Description != that.Description { + return false + } + if this.DisplayDescription != that.DisplayDescription { + return false + } + if this.UnitId != that.UnitId { + return false + } + if this.DisplayUnitId != that.DisplayUnitId { + return false + } + if this.Unit != that.Unit { + return false + } + if this.DisplayUnit != that.DisplayUnit { + return false + } + if this.DataType != that.DataType { + return false + } + if len(this.EnumTypes) != len(that.EnumTypes) { + return false + } + for i, vx := range this.EnumTypes { + vy := that.EnumTypes[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v1.ChannelEnumType{} + } + if q == nil { + q = &v1.ChannelEnumType{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v1.ChannelEnumType) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if len(this.BitFieldElements) != len(that.BitFieldElements) { + return false + } + for i, vx := range this.BitFieldElements { + vy := that.BitFieldElements[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v1.ChannelBitFieldElement{} + } + if q == nil { + q = &v1.ChannelBitFieldElement{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v1.ChannelBitFieldElement) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if len(this.Metadata) != len(that.Metadata) { return false } + for i, vx := range this.Metadata { + vy := that.Metadata[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v11.MetadataValue{} + } + if q == nil { + q = &v11.MetadataValue{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v11.MetadataValue) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } return string(this.unknownFields) == string(that.unknownFields) } -func (this *UpdateChannelRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*UpdateChannelRequest) +func (this *FilterChannel) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FilterChannel) if !ok { return false } return this.EqualVT(that) } -func (this *UpdateChannelResponse) EqualVT(that *UpdateChannelResponse) bool { +func (this *FilterChannelsRequest) EqualVT(that *FilterChannelsRequest) bool { if this == that { return true } else if this == nil || that == nil { return false } - if !this.Channel.EqualVT(that.Channel) { + if this.PageSize != that.PageSize { return false } + if this.PageToken != that.PageToken { + return false + } + if this.SearchTerm != that.SearchTerm { + return false + } + if this.IsSearchCaseSensitive != that.IsSearchCaseSensitive { + return false + } + if this.IsSearchRegexp != that.IsSearchRegexp { + return false + } + if len(this.AssetIds) != len(that.AssetIds) { + return false + } + for i, vx := range this.AssetIds { + vy := that.AssetIds[i] + if vx != vy { + return false + } + } + if len(this.RunIds) != len(that.RunIds) { + return false + } + for i, vx := range this.RunIds { + vy := that.RunIds[i] + if vx != vy { + return false + } + } + if len(this.ChannelIds) != len(that.ChannelIds) { + return false + } + for i, vx := range this.ChannelIds { + vy := that.ChannelIds[i] + if vx != vy { + return false + } + } + if len(this.AssetTagIds) != len(that.AssetTagIds) { + return false + } + for i, vx := range this.AssetTagIds { + vy := that.AssetTagIds[i] + if vx != vy { + return false + } + } + if len(this.DataTypes) != len(that.DataTypes) { + return false + } + for i, vx := range this.DataTypes { + vy := that.DataTypes[i] + if vx != vy { + return false + } + } + if len(this.MetadataKeys) != len(that.MetadataKeys) { + return false + } + for i, vx := range this.MetadataKeys { + vy := that.MetadataKeys[i] + if vx != vy { + return false + } + } + if len(this.MetadataValues) != len(that.MetadataValues) { + return false + } + for i, vx := range this.MetadataValues { + vy := that.MetadataValues[i] + if vx != vy { + return false + } + } return string(this.unknownFields) == string(that.unknownFields) } -func (this *UpdateChannelResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*UpdateChannelResponse) +func (this *FilterChannelsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FilterChannelsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FilterChannelsResponse) EqualVT(that *FilterChannelsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Channels) != len(that.Channels) { + return false + } + for i, vx := range this.Channels { + vy := that.Channels[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FilterChannel{} + } + if q == nil { + q = &FilterChannel{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FilterChannelsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FilterChannelsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateChannelRequest) EqualVT(that *UpdateChannelRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Channel.EqualVT(that.Channel) { + return false + } + if !(*fieldmaskpb1.FieldMask)(this.UpdateMask).EqualVT((*fieldmaskpb1.FieldMask)(that.UpdateMask)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateChannelRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateChannelRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateChannelResponse) EqualVT(that *UpdateChannelResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Channel.EqualVT(that.Channel) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateChannelResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateChannelResponse) if !ok { return false } @@ -1025,60 +1417,7 @@ func (m *ListChannelsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *UpdateChannelRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *UpdateChannelRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *UpdateChannelRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if m.UpdateMask != nil { - size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - if m.Channel != nil { - size, err := m.Channel.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *UpdateChannelResponse) MarshalVT() (dAtA []byte, err error) { +func (m *FilterChannel) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1091,55 +1430,12 @@ func (m *UpdateChannelResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateChannelResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *FilterChannel) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UpdateChannelResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if m.Channel != nil { - size, err := m.Channel.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *Channel) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Channel) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *FilterChannel) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1154,9 +1450,9 @@ func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) + MarshalToSizedBufferVT([]byte) (int, error) }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1172,29 +1468,17 @@ func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } i-- - dAtA[i] = 0x7a + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 } } - if len(m.DisplayUnitId) > 0 { - i -= len(m.DisplayUnitId) - copy(dAtA[i:], m.DisplayUnitId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayUnitId))) - i-- - dAtA[i] = 0x72 - } - if len(m.DisplayDescription) > 0 { - i -= len(m.DisplayDescription) - copy(dAtA[i:], m.DisplayDescription) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayDescription))) - i-- - dAtA[i] = 0x6a - } if len(m.BitFieldElements) > 0 { for iNdEx := len(m.BitFieldElements) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.BitFieldElements[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) + MarshalToSizedBufferVT([]byte) (int, error) }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1210,15 +1494,15 @@ func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } i-- - dAtA[i] = 0x62 + dAtA[i] = 0x7a } } if len(m.EnumTypes) > 0 { for iNdEx := len(m.EnumTypes) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.EnumTypes[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) + MarshalToSizedBufferVT([]byte) (int, error) }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1234,68 +1518,76 @@ func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } i-- - dAtA[i] = 0x5a + dAtA[i] = 0x72 } } if m.DataType != 0 { i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DataType)) i-- - dAtA[i] = 0x50 - } - if len(m.ModifiedByUserId) > 0 { - i -= len(m.ModifiedByUserId) - copy(dAtA[i:], m.ModifiedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) - i-- - dAtA[i] = 0x4a + dAtA[i] = 0x68 } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + if len(m.DisplayUnit) > 0 { + i -= len(m.DisplayUnit) + copy(dAtA[i:], m.DisplayUnit) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayUnit))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x62 } - if m.ModifiedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.Unit) > 0 { + i -= len(m.Unit) + copy(dAtA[i:], m.Unit) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Unit))) i-- - dAtA[i] = 0x3a + dAtA[i] = 0x5a } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.DisplayUnitId) > 0 { + i -= len(m.DisplayUnitId) + copy(dAtA[i:], m.DisplayUnitId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayUnitId))) i-- - dAtA[i] = 0x32 + dAtA[i] = 0x52 } if len(m.UnitId) > 0 { i -= len(m.UnitId) copy(dAtA[i:], m.UnitId) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.UnitId))) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x4a + } + if len(m.DisplayDescription) > 0 { + i -= len(m.DisplayDescription) + copy(dAtA[i:], m.DisplayDescription) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayDescription))) + i-- + dAtA[i] = 0x42 } if len(m.Description) > 0 { i -= len(m.Description) copy(dAtA[i:], m.Description) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x3a + } + if len(m.AssetName) > 0 { + i -= len(m.AssetName) + copy(dAtA[i:], m.AssetName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetName))) + i-- + dAtA[i] = 0x32 } if len(m.AssetId) > 0 { i -= len(m.AssetId) copy(dAtA[i:], m.AssetId) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x2a + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x22 } if len(m.Name) > 0 { i -= len(m.Name) @@ -1314,25 +1606,25 @@ func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *GetChannelRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *FilterChannelsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *GetChannelRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *FilterChannelsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *GetChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *FilterChannelsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1344,102 +1636,107 @@ func (m *GetChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ChannelId) > 0 { - i -= len(m.ChannelId) - copy(dAtA[i:], m.ChannelId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) - i-- - dAtA[i] = 0xa + if len(m.MetadataValues) > 0 { + for iNdEx := len(m.MetadataValues) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.MetadataValues[iNdEx]) + copy(dAtA[i:], m.MetadataValues[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.MetadataValues[iNdEx]))) + i-- + dAtA[i] = 0x6a + } } - return len(dAtA) - i, nil -} - -func (m *GetChannelResponse) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil + if len(m.MetadataKeys) > 0 { + for iNdEx := len(m.MetadataKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.MetadataKeys[iNdEx]) + copy(dAtA[i:], m.MetadataKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.MetadataKeys[iNdEx]))) + i-- + dAtA[i] = 0x62 + } } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GetChannelResponse) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *GetChannelResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if m.Channel != nil { - size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if len(m.DataTypes) > 0 { + var pksize2 int + for _, num := range m.DataTypes { + pksize2 += protohelpers.SizeOfVarint(uint64(num)) } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i -= pksize2 + j1 := i + for _, num1 := range m.DataTypes { + num := uint64(num1) + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x5a } - return len(dAtA) - i, nil -} - -func (m *ListChannelsRequest) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil + if len(m.AssetTagIds) > 0 { + for iNdEx := len(m.AssetTagIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetTagIds[iNdEx]) + copy(dAtA[i:], m.AssetTagIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetTagIds[iNdEx]))) + i-- + dAtA[i] = 0x52 + } } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err + if len(m.ChannelIds) > 0 { + for iNdEx := len(m.ChannelIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ChannelIds[iNdEx]) + copy(dAtA[i:], m.ChannelIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelIds[iNdEx]))) + i-- + dAtA[i] = 0x4a + } } - return dAtA[:n], nil -} - -func (m *ListChannelsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *ListChannelsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil + if len(m.RunIds) > 0 { + for iNdEx := len(m.RunIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RunIds[iNdEx]) + copy(dAtA[i:], m.RunIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunIds[iNdEx]))) + i-- + dAtA[i] = 0x42 + } } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if len(m.AssetIds) > 0 { + for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetIds[iNdEx]) + copy(dAtA[i:], m.AssetIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) + i-- + dAtA[i] = 0x3a + } } - if len(m.OrderBy) > 0 { - i -= len(m.OrderBy) - copy(dAtA[i:], m.OrderBy) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + if m.IsSearchRegexp { i-- - dAtA[i] = 0x22 + if m.IsSearchRegexp { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 } - if len(m.Filter) > 0 { - i -= len(m.Filter) - copy(dAtA[i:], m.Filter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + if m.IsSearchCaseSensitive { i-- - dAtA[i] = 0x1a + if m.IsSearchCaseSensitive { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if len(m.SearchTerm) > 0 { + i -= len(m.SearchTerm) + copy(dAtA[i:], m.SearchTerm) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SearchTerm))) + i-- + dAtA[i] = 0x22 } if len(m.PageToken) > 0 { i -= len(m.PageToken) @@ -1456,25 +1753,25 @@ func (m *ListChannelsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, er return len(dAtA) - i, nil } -func (m *ListChannelsResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *FilterChannelsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *ListChannelsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *FilterChannelsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListChannelsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *FilterChannelsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1495,7 +1792,7 @@ func (m *ListChannelsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e } if len(m.Channels) > 0 { for iNdEx := len(m.Channels) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Channels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := m.Channels[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1508,25 +1805,25 @@ func (m *ListChannelsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *UpdateChannelRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateChannelRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *UpdateChannelRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateChannelRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UpdateChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateChannelRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1539,7 +1836,7 @@ func (m *UpdateChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e copy(dAtA[i:], m.unknownFields) } if m.UpdateMask != nil { - size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1549,7 +1846,7 @@ func (m *UpdateChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e dAtA[i] = 0x12 } if m.Channel != nil { - size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := m.Channel.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1561,25 +1858,25 @@ func (m *UpdateChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *UpdateChannelResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateChannelResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *UpdateChannelResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateChannelResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UpdateChannelResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateChannelResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1592,7 +1889,7 @@ func (m *UpdateChannelResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, copy(dAtA[i:], m.unknownFields) } if m.Channel != nil { - size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := m.Channel.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1604,205 +1901,3578 @@ func (m *UpdateChannelResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *Channel) SizeVT() (n int) { +func (m *Channel) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ChannelId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Name) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.AssetId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.UnitId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.CreatedDate != nil { - l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ModifiedDate != nil { - l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return nil, nil } - l = len(m.CreatedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - l = len(m.ModifiedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return dAtA[:n], nil +} + +func (m *Channel) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } - if m.DataType != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.DataType)) + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if len(m.EnumTypes) > 0 { - for _, e := range m.EnumTypes { - if size, ok := interface{}(e).(interface { - SizeVT() int + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) }); ok { - l = size.SizeVT() + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) } else { - l = proto.Size(e) + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + i-- + dAtA[i] = 0x7a } } + if len(m.DisplayUnitId) > 0 { + i -= len(m.DisplayUnitId) + copy(dAtA[i:], m.DisplayUnitId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayUnitId))) + i-- + dAtA[i] = 0x72 + } + if len(m.DisplayDescription) > 0 { + i -= len(m.DisplayDescription) + copy(dAtA[i:], m.DisplayDescription) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayDescription))) + i-- + dAtA[i] = 0x6a + } if len(m.BitFieldElements) > 0 { - for _, e := range m.BitFieldElements { - if size, ok := interface{}(e).(interface { - SizeVT() int + for iNdEx := len(m.BitFieldElements) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.BitFieldElements[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) }); ok { - l = size.SizeVT() + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) } else { - l = proto.Size(e) + encoded, err := proto.Marshal(m.BitFieldElements[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + i-- + dAtA[i] = 0x62 } } - l = len(m.DisplayDescription) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.DisplayUnitId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if len(m.Metadata) > 0 { - for _, e := range m.Metadata { - if size, ok := interface{}(e).(interface { - SizeVT() int + if len(m.EnumTypes) > 0 { + for iNdEx := len(m.EnumTypes) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.EnumTypes[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) }); ok { - l = size.SizeVT() + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) } else { - l = proto.Size(e) + encoded, err := proto.Marshal(m.EnumTypes[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + i-- + dAtA[i] = 0x5a } } - n += len(m.unknownFields) - return n + if m.DataType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DataType)) + i-- + dAtA[i] = 0x50 + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x4a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x42 + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if len(m.UnitId) > 0 { + i -= len(m.UnitId) + copy(dAtA[i:], m.UnitId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.UnitId))) + i-- + dAtA[i] = 0x2a + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x22 + } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.ChannelId) > 0 { + i -= len(m.ChannelId) + copy(dAtA[i:], m.ChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *GetChannelRequest) SizeVT() (n int) { +func (m *GetChannelRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetChannelRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.ChannelId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - n += len(m.unknownFields) - return n + if len(m.ChannelId) > 0 { + i -= len(m.ChannelId) + copy(dAtA[i:], m.ChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *GetChannelResponse) SizeVT() (n int) { +func (m *GetChannelResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetChannelResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetChannelResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } if m.Channel != nil { - l = m.Channel.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *ListChannelsRequest) SizeVT() (n int) { +func (m *ListChannelsRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListChannelsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListChannelsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if m.PageSize != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - l = len(m.PageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 } - l = len(m.Filter) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a } - l = len(m.OrderBy) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 } - n += len(m.unknownFields) - return n + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil } -func (m *ListChannelsResponse) SizeVT() (n int) { +func (m *ListChannelsResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - if len(m.Channels) > 0 { + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListChannelsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListChannelsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Channels) > 0 { + for iNdEx := len(m.Channels) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Channels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FilterChannel) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FilterChannel) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FilterChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } + if len(m.BitFieldElements) > 0 { + for iNdEx := len(m.BitFieldElements) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.BitFieldElements[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.BitFieldElements[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x7a + } + } + if len(m.EnumTypes) > 0 { + for iNdEx := len(m.EnumTypes) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.EnumTypes[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.EnumTypes[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x72 + } + } + if m.DataType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DataType)) + i-- + dAtA[i] = 0x68 + } + if len(m.DisplayUnit) > 0 { + i -= len(m.DisplayUnit) + copy(dAtA[i:], m.DisplayUnit) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayUnit))) + i-- + dAtA[i] = 0x62 + } + if len(m.Unit) > 0 { + i -= len(m.Unit) + copy(dAtA[i:], m.Unit) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Unit))) + i-- + dAtA[i] = 0x5a + } + if len(m.DisplayUnitId) > 0 { + i -= len(m.DisplayUnitId) + copy(dAtA[i:], m.DisplayUnitId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayUnitId))) + i-- + dAtA[i] = 0x52 + } + if len(m.UnitId) > 0 { + i -= len(m.UnitId) + copy(dAtA[i:], m.UnitId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.UnitId))) + i-- + dAtA[i] = 0x4a + } + if len(m.DisplayDescription) > 0 { + i -= len(m.DisplayDescription) + copy(dAtA[i:], m.DisplayDescription) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DisplayDescription))) + i-- + dAtA[i] = 0x42 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x3a + } + if len(m.AssetName) > 0 { + i -= len(m.AssetName) + copy(dAtA[i:], m.AssetName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetName))) + i-- + dAtA[i] = 0x32 + } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0x2a + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.ChannelId) > 0 { + i -= len(m.ChannelId) + copy(dAtA[i:], m.ChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FilterChannelsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FilterChannelsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FilterChannelsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.MetadataValues) > 0 { + for iNdEx := len(m.MetadataValues) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.MetadataValues[iNdEx]) + copy(dAtA[i:], m.MetadataValues[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.MetadataValues[iNdEx]))) + i-- + dAtA[i] = 0x6a + } + } + if len(m.MetadataKeys) > 0 { + for iNdEx := len(m.MetadataKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.MetadataKeys[iNdEx]) + copy(dAtA[i:], m.MetadataKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.MetadataKeys[iNdEx]))) + i-- + dAtA[i] = 0x62 + } + } + if len(m.DataTypes) > 0 { + var pksize2 int + for _, num := range m.DataTypes { + pksize2 += protohelpers.SizeOfVarint(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num1 := range m.DataTypes { + num := uint64(num1) + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x5a + } + if len(m.AssetTagIds) > 0 { + for iNdEx := len(m.AssetTagIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetTagIds[iNdEx]) + copy(dAtA[i:], m.AssetTagIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetTagIds[iNdEx]))) + i-- + dAtA[i] = 0x52 + } + } + if len(m.ChannelIds) > 0 { + for iNdEx := len(m.ChannelIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ChannelIds[iNdEx]) + copy(dAtA[i:], m.ChannelIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelIds[iNdEx]))) + i-- + dAtA[i] = 0x4a + } + } + if len(m.RunIds) > 0 { + for iNdEx := len(m.RunIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RunIds[iNdEx]) + copy(dAtA[i:], m.RunIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunIds[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if len(m.AssetIds) > 0 { + for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetIds[iNdEx]) + copy(dAtA[i:], m.AssetIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) + i-- + dAtA[i] = 0x3a + } + } + if m.IsSearchRegexp { + i-- + if m.IsSearchRegexp { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if m.IsSearchCaseSensitive { + i-- + if m.IsSearchCaseSensitive { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if len(m.SearchTerm) > 0 { + i -= len(m.SearchTerm) + copy(dAtA[i:], m.SearchTerm) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SearchTerm))) + i-- + dAtA[i] = 0x22 + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *FilterChannelsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FilterChannelsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FilterChannelsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Channels) > 0 { + for iNdEx := len(m.Channels) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Channels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *UpdateChannelRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateChannelRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Channel != nil { + size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateChannelResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateChannelResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateChannelResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Channel != nil { + size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Channel) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ChannelId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.AssetId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.UnitId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.DataType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.DataType)) + } + if len(m.EnumTypes) > 0 { + for _, e := range m.EnumTypes { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.BitFieldElements) > 0 { + for _, e := range m.BitFieldElements { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.DisplayDescription) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.DisplayUnitId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GetChannelRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ChannelId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetChannelResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Channel != nil { + l = m.Channel.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListChannelsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListChannelsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Channels) > 0 { + for _, e := range m.Channels { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FilterChannel) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ChannelId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.AssetId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.AssetName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.DisplayDescription) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.UnitId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.DisplayUnitId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Unit) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.DisplayUnit) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.DataType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.DataType)) + } + if len(m.EnumTypes) > 0 { + for _, e := range m.EnumTypes { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.BitFieldElements) > 0 { + for _, e := range m.BitFieldElements { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *FilterChannelsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.SearchTerm) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.IsSearchCaseSensitive { + n += 2 + } + if m.IsSearchRegexp { + n += 2 + } + if len(m.AssetIds) > 0 { + for _, s := range m.AssetIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.RunIds) > 0 { + for _, s := range m.RunIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.ChannelIds) > 0 { + for _, s := range m.ChannelIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.AssetTagIds) > 0 { + for _, s := range m.AssetTagIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.DataTypes) > 0 { + l = 0 + for _, e := range m.DataTypes { + l += protohelpers.SizeOfVarint(uint64(e)) + } + n += 1 + protohelpers.SizeOfVarint(uint64(l)) + l + } + if len(m.MetadataKeys) > 0 { + for _, s := range m.MetadataKeys { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.MetadataValues) > 0 { + for _, s := range m.MetadataValues { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *FilterChannelsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Channels) > 0 { for _, e := range m.Channels { l = e.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - l = len(m.NextPageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n -} - -func (m *UpdateChannelRequest) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Channel != nil { - l = m.Channel.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.UpdateMask != nil { - l = (*fieldmaskpb1.FieldMask)(m.UpdateMask).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n -} + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateChannelRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Channel != nil { + l = m.Channel.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.UpdateMask != nil { + l = (*fieldmaskpb1.FieldMask)(m.UpdateMask).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateChannelResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Channel != nil { + l = m.Channel.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *Channel) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Channel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Channel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnitId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnitId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType) + } + m.DataType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DataType |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EnumTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EnumTypes = append(m.EnumTypes, &v1.ChannelEnumType{}) + if unmarshal, ok := interface{}(m.EnumTypes[len(m.EnumTypes)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.EnumTypes[len(m.EnumTypes)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElements", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BitFieldElements = append(m.BitFieldElements, &v1.ChannelBitFieldElement{}) + if unmarshal, ok := interface{}(m.BitFieldElements[len(m.BitFieldElements)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.BitFieldElements[len(m.BitFieldElements)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayDescription", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DisplayDescription = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayUnitId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DisplayUnitId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetChannelRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetChannelRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetChannelRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetChannelResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetChannelResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetChannelResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Channel == nil { + m.Channel = &Channel{} + } + if err := m.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListChannelsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListChannelsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListChannelsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListChannelsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListChannelsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListChannelsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Channels = append(m.Channels, &Channel{}) + if err := m.Channels[len(m.Channels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FilterChannel) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FilterChannel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FilterChannel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayDescription", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DisplayDescription = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnitId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnitId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayUnitId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DisplayUnitId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Unit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Unit = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayUnit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DisplayUnit = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType) + } + m.DataType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DataType |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EnumTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EnumTypes = append(m.EnumTypes, &v1.ChannelEnumType{}) + if unmarshal, ok := interface{}(m.EnumTypes[len(m.EnumTypes)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.EnumTypes[len(m.EnumTypes)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElements", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BitFieldElements = append(m.BitFieldElements, &v1.ChannelBitFieldElement{}) + if unmarshal, ok := interface{}(m.BitFieldElements[len(m.BitFieldElements)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.BitFieldElements[len(m.BitFieldElements)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FilterChannelsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FilterChannelsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FilterChannelsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SearchTerm", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SearchTerm = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsSearchCaseSensitive", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsSearchCaseSensitive = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsSearchRegexp", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsSearchRegexp = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunIds = append(m.RunIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelIds = append(m.ChannelIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetTagIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetTagIds = append(m.AssetTagIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 11: + if wireType == 0 { + var v v1.ChannelDataType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DataTypes = append(m.DataTypes, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + if elementCount != 0 && len(m.DataTypes) == 0 { + m.DataTypes = make([]v1.ChannelDataType, 0, elementCount) + } + for iNdEx < postIndex { + var v v1.ChannelDataType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DataTypes = append(m.DataTypes, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field DataTypes", wireType) + } + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetadataKeys", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetadataKeys = append(m.MetadataKeys, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetadataValues", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetadataValues = append(m.MetadataValues, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FilterChannelsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FilterChannelsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FilterChannelsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Channels = append(m.Channels, &FilterChannel{}) + if err := m.Channels[len(m.Channels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateChannelRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateChannelRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateChannelRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Channel == nil { + m.Channel = &Channel{} + } + if err := m.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateChannelResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateChannelResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateChannelResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Channel == nil { + m.Channel = &Channel{} + } + if err := m.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } -func (m *UpdateChannelResponse) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Channel != nil { - l = m.Channel.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - n += len(m.unknownFields) - return n + return nil } - -func (m *Channel) UnmarshalVT(dAtA []byte) error { +func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1861,7 +5531,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ChannelId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ChannelId = stringValue iNdEx = postIndex case 2: if wireType != 2 { @@ -1893,7 +5567,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue iNdEx = postIndex case 3: if wireType != 2 { @@ -1925,7 +5603,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AssetId = stringValue iNdEx = postIndex case 4: if wireType != 2 { @@ -1957,7 +5639,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Description = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Description = stringValue iNdEx = postIndex case 5: if wireType != 2 { @@ -1989,7 +5675,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.UnitId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.UnitId = stringValue iNdEx = postIndex case 6: if wireType != 2 { @@ -2023,7 +5713,7 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if m.CreatedDate == nil { m.CreatedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2059,7 +5749,7 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if m.ModifiedDate == nil { m.ModifiedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2093,7 +5783,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue iNdEx = postIndex case 9: if wireType != 2 { @@ -2125,7 +5819,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue iNdEx = postIndex case 10: if wireType != 0 { @@ -2177,9 +5875,9 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { } m.EnumTypes = append(m.EnumTypes, &v1.ChannelEnumType{}) if unmarshal, ok := interface{}(m.EnumTypes[len(m.EnumTypes)-1]).(interface { - UnmarshalVT([]byte) error + UnmarshalVTUnsafe([]byte) error }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { @@ -2219,9 +5917,9 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { } m.BitFieldElements = append(m.BitFieldElements, &v1.ChannelBitFieldElement{}) if unmarshal, ok := interface{}(m.BitFieldElements[len(m.BitFieldElements)-1]).(interface { - UnmarshalVT([]byte) error + UnmarshalVTUnsafe([]byte) error }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { @@ -2260,7 +5958,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DisplayDescription = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.DisplayDescription = stringValue iNdEx = postIndex case 14: if wireType != 2 { @@ -2292,7 +5994,11 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DisplayUnitId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.DisplayUnitId = stringValue iNdEx = postIndex case 15: if wireType != 2 { @@ -2325,9 +6031,9 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { } m.Metadata = append(m.Metadata, &v11.MetadataValue{}) if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVT([]byte) error + UnmarshalVTUnsafe([]byte) error }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { @@ -2358,7 +6064,7 @@ func (m *Channel) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetChannelRequest) UnmarshalVT(dAtA []byte) error { +func (m *GetChannelRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2417,7 +6123,11 @@ func (m *GetChannelRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ChannelId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ChannelId = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -2441,7 +6151,7 @@ func (m *GetChannelRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetChannelResponse) UnmarshalVT(dAtA []byte) error { +func (m *GetChannelResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2502,7 +6212,7 @@ func (m *GetChannelResponse) UnmarshalVT(dAtA []byte) error { if m.Channel == nil { m.Channel = &Channel{} } - if err := m.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Channel.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2528,7 +6238,7 @@ func (m *GetChannelResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListChannelsRequest) UnmarshalVT(dAtA []byte) error { +func (m *ListChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2606,7 +6316,11 @@ func (m *ListChannelsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue iNdEx = postIndex case 3: if wireType != 2 { @@ -2636,130 +6350,17 @@ func (m *ListChannelsRequest) UnmarshalVT(dAtA []byte) error { return protohelpers.ErrInvalidLength } if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Filter = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OrderBy = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ListChannelsResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ListChannelsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ListChannelsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Channels = append(m.Channels, &Channel{}) - if err := m.Channels[len(m.Channels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.Filter = stringValue iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2787,7 +6388,11 @@ func (m *ListChannelsResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NextPageToken = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -2811,7 +6416,7 @@ func (m *ListChannelsResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateChannelRequest) UnmarshalVT(dAtA []byte) error { +func (m *ListChannelsResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2834,15 +6439,15 @@ func (m *UpdateChannelRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateChannelRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ListChannelsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateChannelRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListChannelsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2869,105 +6474,16 @@ func (m *UpdateChannelRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Channel == nil { - m.Channel = &Channel{} - } - if err := m.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Channels = append(m.Channels, &Channel{}) + if err := m.Channels[len(m.Channels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UpdateMask == nil { - m.UpdateMask = &fieldmaskpb.FieldMask{} - } - if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UpdateChannelResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UpdateChannelResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateChannelResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -2977,27 +6493,27 @@ func (m *UpdateChannelResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Channel == nil { - m.Channel = &Channel{} - } - if err := m.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.NextPageToken = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -3021,7 +6537,7 @@ func (m *UpdateChannelResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *FilterChannel) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3044,10 +6560,10 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Channel: wiretype end group for non-group") + return fmt.Errorf("proto: FilterChannel: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Channel: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FilterChannel: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3122,45 +6638,9 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { } m.Name = stringValue iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.AssetId = stringValue - iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3192,11 +6672,11 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Description = stringValue + m.OrganizationId = stringValue iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnitId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3221,90 +6701,18 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.UnitId = stringValue - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} + if postIndex > l { + return io.ErrUnexpectedEOF } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.AssetId = stringValue iNdEx = postIndex - case 8: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3336,11 +6744,11 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.CreatedByUserId = stringValue + m.AssetName = stringValue iNdEx = postIndex - case 9: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3372,13 +6780,13 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ModifiedByUserId = stringValue + m.Description = stringValue iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType) + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayDescription", wireType) } - m.DataType = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -3388,16 +6796,33 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.DataType |= v1.ChannelDataType(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 11: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.DisplayDescription = stringValue + iNdEx = postIndex + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EnumTypes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field UnitId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -3407,39 +6832,33 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.EnumTypes = append(m.EnumTypes, &v1.ChannelEnumType{}) - if unmarshal, ok := interface{}(m.EnumTypes[len(m.EnumTypes)-1]).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.EnumTypes[len(m.EnumTypes)-1]); err != nil { - return err - } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.UnitId = stringValue iNdEx = postIndex - case 12: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElements", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DisplayUnitId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -3449,37 +6868,31 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.BitFieldElements = append(m.BitFieldElements, &v1.ChannelBitFieldElement{}) - if unmarshal, ok := interface{}(m.BitFieldElements[len(m.BitFieldElements)-1]).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.BitFieldElements[len(m.BitFieldElements)-1]); err != nil { - return err - } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.DisplayUnitId = stringValue iNdEx = postIndex - case 13: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DisplayDescription", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Unit", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3511,11 +6924,11 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.DisplayDescription = stringValue + m.Unit = stringValue iNdEx = postIndex - case 14: + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DisplayUnitId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DisplayUnit", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3547,11 +6960,30 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.DisplayUnitId = stringValue + m.DisplayUnit = stringValue iNdEx = postIndex - case 15: + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType) + } + m.DataType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DataType |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EnumTypes", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3578,75 +7010,24 @@ func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v11.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + m.EnumTypes = append(m.EnumTypes, &v1.ChannelEnumType{}) + if unmarshal, ok := interface{}(m.EnumTypes[len(m.EnumTypes)-1]).(interface { UnmarshalVTUnsafe([]byte) error }); ok { if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.EnumTypes[len(m.EnumTypes)-1]); err != nil { return err } } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GetChannelRequest) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GetChannelRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GetChannelRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElements", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -3656,82 +7037,37 @@ func (m *GetChannelRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.ChannelId = stringValue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GetChannelResponse) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.BitFieldElements = append(m.BitFieldElements, &v1.ChannelBitFieldElement{}) + if unmarshal, ok := interface{}(m.BitFieldElements[len(m.BitFieldElements)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.BitFieldElements[len(m.BitFieldElements)-1]); err != nil { + return err + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GetChannelResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GetChannelResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 16: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3758,11 +7094,17 @@ func (m *GetChannelResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Channel == nil { - m.Channel = &Channel{} - } - if err := m.Channel.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Metadata = append(m.Metadata, &v11.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } } iNdEx = postIndex default: @@ -3787,7 +7129,7 @@ func (m *GetChannelResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ListChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *FilterChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3810,10 +7152,10 @@ func (m *ListChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListChannelsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: FilterChannelsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListChannelsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FilterChannelsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3871,9 +7213,9 @@ func (m *ListChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { } m.PageToken = stringValue iNdEx = postIndex - case 3: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SearchTerm", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3905,11 +7247,51 @@ func (m *ListChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Filter = stringValue + m.SearchTerm = stringValue iNdEx = postIndex - case 4: + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsSearchCaseSensitive", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsSearchCaseSensitive = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsSearchRegexp", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsSearchRegexp = bool(v != 0) + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3941,7 +7323,256 @@ func (m *ListChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.OrderBy = stringValue + m.AssetIds = append(m.AssetIds, stringValue) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RunIds = append(m.RunIds, stringValue) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ChannelIds = append(m.ChannelIds, stringValue) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetTagIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AssetTagIds = append(m.AssetTagIds, stringValue) + iNdEx = postIndex + case 11: + if wireType == 0 { + var v v1.ChannelDataType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DataTypes = append(m.DataTypes, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + if elementCount != 0 && len(m.DataTypes) == 0 { + m.DataTypes = make([]v1.ChannelDataType, 0, elementCount) + } + for iNdEx < postIndex { + var v v1.ChannelDataType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DataTypes = append(m.DataTypes, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field DataTypes", wireType) + } + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetadataKeys", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.MetadataKeys = append(m.MetadataKeys, stringValue) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetadataValues", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.MetadataValues = append(m.MetadataValues, stringValue) iNdEx = postIndex default: iNdEx = preIndex @@ -3965,7 +7596,7 @@ func (m *ListChannelsRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ListChannelsResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *FilterChannelsResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3988,10 +7619,10 @@ func (m *ListChannelsResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListChannelsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: FilterChannelsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListChannelsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FilterChannelsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4023,7 +7654,7 @@ func (m *ListChannelsResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Channels = append(m.Channels, &Channel{}) + m.Channels = append(m.Channels, &FilterChannel{}) if err := m.Channels[len(m.Channels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/go/gen/sift/common/type/v1/user_defined_functions.pb.go b/go/gen/sift/common/type/v1/user_defined_functions.pb.go index f8ea47f86..2aeeee775 100644 --- a/go/gen/sift/common/type/v1/user_defined_functions.pb.go +++ b/go/gen/sift/common/type/v1/user_defined_functions.pb.go @@ -7,6 +7,7 @@ package typev1 import ( + _ "github.com/sift-stack/sift/go/gen/buf/validate" _ "github.com/sift-stack/sift/go/gen/google/api" v1 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -97,6 +98,7 @@ type UserDefinedFunction struct { CreatedByUserId string `protobuf:"bytes,16,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` ModifiedByUserId string `protobuf:"bytes,17,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` Metadata []*v1.MetadataValue `protobuf:"bytes,18,rep,name=metadata,proto3" json:"metadata,omitempty"` + IsArchived bool `protobuf:"varint,19,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *UserDefinedFunction) Reset() { @@ -250,6 +252,13 @@ func (x *UserDefinedFunction) GetMetadata() []*v1.MetadataValue { return nil } +func (x *UserDefinedFunction) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type FunctionDependency struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -367,119 +376,124 @@ var file_sift_common_type_v1_user_defined_functions_proto_rawDesc = []byte{ 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96, 0x08, 0x0a, 0x13, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbc, 0x08, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3c, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, + 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x5c, 0x0a, 0x14, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, + 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 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, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x0f, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, + 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x69, 0x0a, 0x12, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x53, 0x0a, 0x20, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, + 0xb0, 0x01, 0x01, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0f, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, - 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x5c, - 0x0a, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x61, 0x0a, 0x15, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, + 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x0d, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x6e, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, - 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x0e, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x12, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x22, 0x61, 0x0a, 0x12, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x4b, 0x0a, 0x20, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x0d, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x47, 0x0a, - 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, - 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x2a, 0x92, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, - 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, - 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, - 0x1b, 0x0a, 0x17, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x03, 0x42, 0xe1, 0x01, 0x0a, - 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x19, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, - 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x79, 0x70, - 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x54, 0xaa, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x54, 0x79, - 0x70, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x5c, 0x54, 0x79, 0x70, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x3a, 0x56, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x74, 0x2a, 0x92, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x55, 0x4e, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x46, + 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x46, + 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x55, + 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x03, 0x42, 0xe1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x2e, 0x76, 0x31, 0x42, 0x19, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x53, 0x43, 0x54, 0xaa, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x54, 0x79, 0x70, 0x65, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x1f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x54, + 0x79, 0x70, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x3a, 0x3a, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/common/type/v1/user_defined_functions_vtproto.pb.go b/go/gen/sift/common/type/v1/user_defined_functions_vtproto.pb.go index 6ca194010..47a9398a3 100644 --- a/go/gen/sift/common/type/v1/user_defined_functions_vtproto.pb.go +++ b/go/gen/sift/common/type/v1/user_defined_functions_vtproto.pb.go @@ -42,6 +42,7 @@ func (m *UserDefinedFunction) CloneVT() *UserDefinedFunction { r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) r.CreatedByUserId = m.CreatedByUserId r.ModifiedByUserId = m.ModifiedByUserId + r.IsArchived = m.IsArchived if rhs := m.FunctionInputs; rhs != nil { tmpContainer := make([]*FunctionInput, len(rhs)) for k, v := range rhs { @@ -217,6 +218,9 @@ func (this *UserDefinedFunction) EqualVT(that *UserDefinedFunction) bool { } } } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -301,6 +305,18 @@ func (m *UserDefinedFunction) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -586,6 +602,18 @@ func (m *UserDefinedFunction) MarshalToSizedBufferVTStrict(dAtA []byte) (int, er i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -925,6 +953,9 @@ func (m *UserDefinedFunction) SizeVT() (n int) { n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.IsArchived { + n += 3 + } n += len(m.unknownFields) return n } @@ -1536,6 +1567,26 @@ func (m *UserDefinedFunction) UnmarshalVT(dAtA []byte) error { } } iNdEx = postIndex + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -2372,6 +2423,26 @@ func (m *UserDefinedFunction) UnmarshalVTUnsafe(dAtA []byte) error { } } iNdEx = postIndex + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/data/v2/data.pb.go b/go/gen/sift/data/v2/data.pb.go index 757d5be88..85f4e0138 100644 --- a/go/gen/sift/data/v2/data.pb.go +++ b/go/gen/sift/data/v2/data.pb.go @@ -11,6 +11,7 @@ import ( _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" v1 "github.com/sift-stack/sift/go/gen/sift/calculated_channels/v1" v11 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" + _ "github.com/sift-stack/sift/go/gen/sift/options/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" @@ -284,6 +285,13 @@ type CalculatedChannelQuery struct { RunId *string `protobuf:"bytes,3,opt,name=run_id,json=runId,proto3,oneof" json:"run_id,omitempty"` // Optional. If unset, will default to EXPRESSION_MODE_CALCULATED_CHANNELS. Mode *v1.ExpressionMode `protobuf:"varint,4,opt,name=mode,proto3,enum=sift.calculated_channels.v1.ExpressionMode,oneof" json:"mode,omitempty"` + // Optional. If unset, will default to false. + // If true, then requests that return data across multiple runs will be + // combined into a single result. This will apply to queries without a run, + // or when the requested run is an ad hoc run. + // This is useful when you prefer to see all the data as a single time series, + // instead of separated results by run. + CombineRunData *bool `protobuf:"varint,5,opt,name=combine_run_data,json=combineRunData,proto3,oneof" json:"combine_run_data,omitempty"` } func (x *CalculatedChannelQuery) Reset() { @@ -346,6 +354,13 @@ func (x *CalculatedChannelQuery) GetMode() v1.ExpressionMode { return v1.ExpressionMode(0) } +func (x *CalculatedChannelQuery) GetCombineRunData() bool { + if x != nil && x.CombineRunData != nil { + return *x.CombineRunData + } + return false +} + type GetDataResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2039,304 +2054,311 @@ var file_sift_data_v2_data_proto_rawDesc = []byte{ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8a, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x71, - 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x03, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9f, 0x01, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x36, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x07, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x55, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x07, - 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x54, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x89, 0x02, - 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x53, - 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x6f, - 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x68, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xa1, 0x06, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x46, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, + 0x6f, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x02, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, + 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x3a, 0x04, 0x80, 0x97, 0x22, 0x01, 0x22, 0x9f, + 0x01, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x12, 0x55, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x22, 0x54, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0xcd, 0x02, 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x06, + 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x72, 0x75, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x62, + 0x69, 0x6e, 0x65, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x75, + 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x68, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0xa1, 0x06, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, + 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, + 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x12, 0x31, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x75, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x72, + 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, + 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x3a, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x1a, 0x0a, + 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x1a, 0xeb, 0x02, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, + 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, + 0x43, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x12, 0x37, 0x0a, 0x05, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x75, 0x6e, 0x48, 0x00, - 0x52, 0x03, 0x72, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x3a, 0x0a, 0x03, 0x52, 0x75, 0x6e, - 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, + 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x12, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x69, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, + 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, + 0x4f, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xeb, 0x02, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x75, 0x6e, 0x69, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, - 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x6e, - 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x12, 0x62, 0x69, 0x74, 0x5f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x10, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x1a, 0x4f, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4e, - 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x75, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x67, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x7f, 0x0a, 0x0c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x22, 0x67, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7f, 0x0a, 0x0c, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x09, 0x45, - 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x7b, 0x0a, 0x0a, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, - 0x69, 0x0a, 0x0d, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6a, 0x0a, 0x15, 0x42, 0x69, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x74, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x0e, 0x42, 0x69, 0x74, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x40, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7b, 0x0a, 0x0a, 0x42, - 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x7d, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, - 0x66, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, + 0x0f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x75, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x67, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7f, 0x0a, + 0x0c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x67, + 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x0b, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7f, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x7f, 0x0a, 0x0c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x22, 0x66, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, + 0x7b, 0x0a, 0x0a, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x0d, + 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6a, 0x0a, 0x15, 0x42, 0x69, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x0e, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x40, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x22, 0x65, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x0b, 0x55, 0x69, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x7f, 0x0a, 0x0c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x22, 0x66, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x32, 0xba, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x32, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x46, 0x92, 0x41, 0x2c, 0x12, 0x07, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, - 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x15, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x1a, 0x92, 0x41, 0x17, 0x12, 0x15, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x42, 0xb9, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x42, 0x09, 0x44, 0x61, 0x74, 0x61, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, - 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x76, 0x32, 0xa2, 0x02, - 0x03, 0x53, 0x44, 0x58, 0xaa, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x5c, - 0x56, 0x32, 0xe2, 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x5c, 0x56, - 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, - 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, - 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7b, 0x0a, 0x0a, 0x42, 0x6f, 0x6f, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, + 0x0b, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x0a, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x0b, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7f, 0x0a, 0x0c, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x66, 0x0a, + 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x0b, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7f, 0x0a, + 0x0c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x66, + 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x32, 0xba, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, + 0x92, 0x41, 0x2c, 0x12, 0x07, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x0a, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x15, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x56, 0x32, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x1a, 0x92, 0x41, 0x17, 0x12, 0x15, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x42, 0xb9, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x42, 0x09, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x2f, 0x76, 0x32, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x44, + 0x58, 0xaa, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x32, + 0xca, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x5c, 0x56, 0x32, 0xe2, + 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x5c, 0x56, 0x32, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x53, 0x69, 0x66, + 0x74, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x10, 0x12, 0x0e, + 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/data/v2/data_vtproto.pb.go b/go/gen/sift/data/v2/data_vtproto.pb.go index 1c4dcfd9e..068ad0764 100644 --- a/go/gen/sift/data/v2/data_vtproto.pb.go +++ b/go/gen/sift/data/v2/data_vtproto.pb.go @@ -139,6 +139,10 @@ func (m *CalculatedChannelQuery) CloneVT() *CalculatedChannelQuery { tmpVal := *rhs r.Mode = &tmpVal } + if rhs := m.CombineRunData; rhs != nil { + tmpVal := *rhs + r.CombineRunData = &tmpVal + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -952,6 +956,9 @@ func (this *CalculatedChannelQuery) EqualVT(that *CalculatedChannelQuery) bool { if p, q := this.Mode, that.Mode; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { return false } + if p, q := this.CombineRunData, that.CombineRunData; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -2173,6 +2180,16 @@ func (m *CalculatedChannelQuery) MarshalToSizedBufferVT(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.CombineRunData != nil { + i-- + if *m.CombineRunData { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } if m.Mode != nil { i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Mode)) i-- @@ -4028,6 +4045,16 @@ func (m *CalculatedChannelQuery) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.CombineRunData != nil { + i-- + if *m.CombineRunData { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } if m.Mode != nil { i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Mode)) i-- @@ -5755,6 +5782,9 @@ func (m *CalculatedChannelQuery) SizeVT() (n int) { if m.Mode != nil { n += 1 + protohelpers.SizeOfVarint(uint64(*m.Mode)) } + if m.CombineRunData != nil { + n += 2 + } n += len(m.unknownFields) return n } @@ -6970,6 +7000,27 @@ func (m *CalculatedChannelQuery) UnmarshalVT(dAtA []byte) error { } } m.Mode = &v + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CombineRunData", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.CombineRunData = &b default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -11167,6 +11218,27 @@ func (m *CalculatedChannelQuery) UnmarshalVTUnsafe(dAtA []byte) error { } } m.Mode = &v + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CombineRunData", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.CombineRunData = &b default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/data_imports/v2/data_imports.pb.go b/go/gen/sift/data_imports/v2/data_imports.pb.go index 8c05554e7..d9c8c6a7e 100644 --- a/go/gen/sift/data_imports/v2/data_imports.pb.go +++ b/go/gen/sift/data_imports/v2/data_imports.pb.go @@ -973,6 +973,8 @@ type TDMSConfig struct { // The file size in bytes. // If the file has truncated chunks, this will be required to pass validation. FileSize *uint64 `protobuf:"varint,4,opt,name=file_size,json=fileSize,proto3,oneof" json:"file_size,omitempty"` + // The id of the run to add this data to. If set, `run_name` is ignored. + RunId string `protobuf:"bytes,5,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` } func (x *TDMSConfig) Reset() { @@ -1035,6 +1037,13 @@ func (x *TDMSConfig) GetFileSize() uint64 { return 0 } +func (x *TDMSConfig) GetRunId() string { + if x != nil { + return x.RunId + } + return "" +} + type ParquetTimeColumn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1861,7 +1870,7 @@ var file_sift_data_imports_v2_data_imports_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, - 0xc2, 0x01, 0x0a, 0x0a, 0x54, 0x44, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, + 0xd9, 0x01, 0x0a, 0x0a, 0x54, 0x44, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -1872,332 +1881,333 @@ var file_sift_data_imports_v2_data_imports_proto_rawDesc = []byte{ 0x70, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x38, - 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, + 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x11, + 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, + 0x4f, 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x11, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x71, + 0x75, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x49, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xb0, 0x01, 0x0a, + 0x18, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x03, 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, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x72, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x0e, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, - 0x74, 0x46, 0x6c, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, - 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x4a, 0x0a, 0x0c, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x0b, 0x64, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0xf9, 0x02, 0x0a, 0x0d, 0x50, 0x61, 0x72, - 0x71, 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x0c, 0x66, - 0x6c, 0x61, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, - 0x46, 0x6c, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x6f, - 0x6f, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x6e, 0x0a, 0x19, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x52, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x73, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x22, 0xc4, 0x07, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, + 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x12, 0x4a, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, + 0xf9, 0x02, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x72, + 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6e, + 0x49, 0x64, 0x12, 0x53, 0x0a, 0x0c, 0x66, 0x6c, 0x61, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6f, 0x6f, 0x74, 0x65, + 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x6e, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, + 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x73, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xc4, 0x07, 0x0a, 0x0a, + 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x55, 0x72, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, + 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 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, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x73, 0x76, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x63, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, + 0x0b, 0x63, 0x68, 0x31, 0x30, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x31, 0x30, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x68, 0x31, 0x30, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0b, 0x74, 0x64, 0x6d, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x54, 0x44, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0a, 0x74, 0x64, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, + 0x0e, 0x70, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, + 0x71, 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0d, 0x70, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, + 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, + 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, + 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, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0e, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 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, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x04, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, + 0x22, 0x86, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x43, 0x0a, 0x16, 0x52, 0x65, 0x74, + 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x43, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x73, 0x76, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x73, 0x76, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0b, 0x63, 0x68, 0x31, 0x30, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x68, 0x31, 0x30, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0a, 0x63, 0x68, 0x31, 0x30, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, - 0x0a, 0x0b, 0x74, 0x64, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x44, 0x4d, 0x53, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x74, 0x64, 0x6d, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x71, 0x75, 0x65, - 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x71, 0x75, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, - 0x72, 0x75, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x23, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, - 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, 0x0c, 0x64, - 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x16, - 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x17, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x64, - 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0x43, 0x0a, 0x16, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0e, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x79, - 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2a, 0xf0, 0x03, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, - 0x0a, 0x20, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, - 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x4e, 0x41, 0x4e, 0x4f, 0x53, 0x45, 0x43, 0x4f, 0x4e, - 0x44, 0x53, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, - 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x43, - 0x52, 0x4f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x54, + 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x19, + 0x0a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xf0, 0x03, 0x0a, 0x0a, 0x54, 0x69, + 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x49, 0x4d, 0x45, + 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, + 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x4e, 0x41, + 0x4e, 0x4f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, + 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, + 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, + 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, + 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4c, 0x4c, 0x49, + 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x49, 0x4d, + 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, + 0x45, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, - 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4c, 0x4c, 0x49, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, - 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, - 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, - 0x44, 0x53, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, - 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, - 0x55, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, - 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, - 0x4f, 0x55, 0x52, 0x53, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, - 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x52, - 0x46, 0x43, 0x33, 0x33, 0x33, 0x39, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x49, 0x4d, 0x45, - 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, - 0x5f, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x0b, 0x12, 0x25, 0x0a, 0x21, 0x54, - 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, - 0x55, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, - 0x10, 0x0c, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, + 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x1e, 0x0a, + 0x1a, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x4c, + 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x53, 0x10, 0x06, 0x12, 0x20, 0x0a, + 0x1c, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, + 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x52, 0x46, 0x43, 0x33, 0x33, 0x33, 0x39, 0x10, 0x0a, 0x12, + 0x21, 0x0a, 0x1d, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, + 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, + 0x10, 0x0b, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x5f, - 0x4d, 0x49, 0x4c, 0x4c, 0x49, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x0d, 0x12, 0x2a, - 0x0a, 0x26, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, - 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x5f, 0x4d, 0x49, 0x43, 0x52, - 0x4f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x0e, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x49, - 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x5f, 0x4e, 0x41, 0x4e, 0x4f, 0x53, 0x45, 0x43, 0x4f, - 0x4e, 0x44, 0x53, 0x10, 0x0f, 0x2a, 0x9e, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, - 0x70, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x19, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x43, 0x53, 0x56, 0x10, 0x01, 0x12, - 0x16, 0x0a, 0x12, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, - 0x5f, 0x54, 0x44, 0x4d, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x43, 0x48, 0x31, 0x30, 0x10, 0x03, 0x12, - 0x25, 0x0a, 0x21, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, - 0x5f, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x54, 0x44, 0x41, 0x54, - 0x41, 0x53, 0x45, 0x54, 0x10, 0x04, 0x2a, 0x8b, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x72, 0x71, 0x75, - 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x73, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x2d, 0x50, 0x41, 0x52, 0x51, - 0x55, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x53, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x0c, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x49, 0x4d, + 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x5f, 0x4d, 0x49, 0x4c, 0x4c, 0x49, 0x53, 0x45, 0x43, 0x4f, + 0x4e, 0x44, 0x53, 0x10, 0x0d, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, + 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x55, 0x4e, + 0x49, 0x58, 0x5f, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, + 0x0e, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, + 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x5f, 0x4e, + 0x41, 0x4e, 0x4f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x0f, 0x2a, 0x9e, 0x01, 0x0a, + 0x0b, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x19, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, - 0x2c, 0x0a, 0x28, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, + 0x15, 0x0a, 0x11, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, + 0x5f, 0x43, 0x53, 0x56, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x44, 0x4d, 0x53, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, + 0x43, 0x48, 0x31, 0x30, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, + 0x46, 0x4c, 0x41, 0x54, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x10, 0x04, 0x2a, 0x8b, 0x02, + 0x0a, 0x1d, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x35, 0x0a, 0x2d, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x2a, 0x0a, - 0x26, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x58, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x41, 0x52, - 0x51, 0x55, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x53, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, - 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x41, 0x52, 0x51, 0x55, - 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, - 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x59, 0x54, - 0x45, 0x53, 0x10, 0x04, 0x2a, 0xbf, 0x01, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x1e, 0x44, 0x41, 0x54, - 0x41, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, - 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, - 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4d, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, - 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, - 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x32, 0x92, 0x0c, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x98, 0x02, 0x0a, - 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x69, 0x12, 0x17, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, - 0x6d, 0x55, 0x72, 0x6c, 0x1a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, - 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x61, 0x20, 0x75, 0x72, 0x6c, 0x2e, 0x2a, 0x2b, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, - 0x72, 0x6c, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x3a, 0x75, 0x72, 0x6c, 0x12, 0xb2, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, - 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, + 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, + 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x47, 0x4e, 0x4f, + 0x52, 0x45, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x49, 0x4d, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, + 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x4c, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x2b, + 0x0a, 0x27, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, + 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x04, 0x2a, 0xbf, 0x01, 0x0a, 0x10, + 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x26, 0x0a, 0x1e, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x41, 0x54, 0x41, + 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x41, 0x54, 0x41, + 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, + 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1d, + 0x0a, 0x19, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x32, 0x92, 0x0c, + 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x98, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x12, + 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa0, 0x01, 0x92, 0x41, 0x77, 0x12, - 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x29, 0x43, 0x72, 0x65, + 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, + 0x6d, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x92, + 0x41, 0x69, 0x12, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x1a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x75, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x2a, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, - 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0xef, 0x01, 0x0a, - 0x0c, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x92, 0x41, 0x57, 0x12, 0x0c, 0x44, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x25, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x2a, - 0x20, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, - 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x3a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xde, - 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x6e, 0x92, 0x41, 0x4f, 0x12, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x2a, 0x23, + 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x75, 0x72, 0x6c, 0x2e, 0x2a, 0x2b, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, - 0xf5, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, - 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, - 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x84, 0x01, 0x92, 0x41, 0x4e, 0x12, 0x0f, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x16, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x20, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x2a, - 0x23, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x7d, 0x3a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x12, 0xe1, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x75, 0x72, 0x6c, 0x12, 0xb2, + 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x37, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, + 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xa0, 0x01, 0x92, 0x41, 0x77, 0x12, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x1a, 0x29, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x2a, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0xef, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x92, 0x41, + 0x57, 0x12, 0x0c, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, + 0x25, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x2a, 0x20, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, + 0x2a, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x2d, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xde, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x77, 0x92, 0x41, 0x47, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x13, 0x47, 0x65, 0x74, 0x73, 0x20, 0x61, 0x20, 0x64, - 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x2a, 0x21, 0x44, 0x61, 0x74, - 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, - 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x32, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x42, 0xfb, 0x01, 0x0a, 0x18, - 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x10, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, - 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x44, 0x58, 0xaa, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x56, 0x32, 0xca, - 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, 0x74, - 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, - 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, - 0x41, 0x17, 0x12, 0x15, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x92, 0x41, 0x4f, 0x12, 0x0f, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x17, 0x4c, 0x69, + 0x73, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x2a, 0x23, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, + 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0xf5, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x74, 0x72, 0x79, + 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x92, 0x41, 0x4e, 0x12, 0x0f, 0x52, + 0x65, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x16, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x20, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x2a, 0x23, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, + 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2d, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x12, 0xe1, + 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x92, 0x41, 0x47, 0x12, 0x0d, + 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x13, 0x47, + 0x65, 0x74, 0x73, 0x20, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x2a, 0x21, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x7d, 0x42, 0xfb, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x42, + 0x10, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x44, 0x58, + 0xaa, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, + 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1f, 0x53, + 0x69, 0x66, 0x74, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, + 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x15, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x17, 0x12, 0x15, 0x0a, 0x13, 0x44, 0x61, 0x74, + 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go b/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go index 97dc656af..b9720e02b 100644 --- a/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go +++ b/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go @@ -259,6 +259,7 @@ func (m *TDMSConfig) CloneVT() *TDMSConfig { r.AssetName = m.AssetName r.RunName = m.RunName r.StartTimeOverride = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.StartTimeOverride).CloneVT()) + r.RunId = m.RunId if rhs := m.FileSize; rhs != nil { tmpVal := *rhs r.FileSize = &tmpVal @@ -800,6 +801,9 @@ func (this *TDMSConfig) EqualVT(that *TDMSConfig) bool { if p, q := this.FileSize, that.FileSize; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { return false } + if this.RunId != that.RunId { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -2067,6 +2071,13 @@ func (m *TDMSConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.RunId) > 0 { + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x2a + } if m.FileSize != nil { i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.FileSize)) i-- @@ -3381,6 +3392,13 @@ func (m *TDMSConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.RunId) > 0 { + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x2a + } if m.FileSize != nil { i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.FileSize)) i-- @@ -4290,6 +4308,10 @@ func (m *TDMSConfig) SizeVT() (n int) { if m.FileSize != nil { n += 1 + protohelpers.SizeOfVarint(uint64(*m.FileSize)) } + l = len(m.RunId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -6314,6 +6336,38 @@ func (m *TDMSConfig) UnmarshalVT(dAtA []byte) error { } } m.FileSize = &v + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -9753,6 +9807,42 @@ func (m *TDMSConfig) UnmarshalVTUnsafe(dAtA []byte) error { } } m.FileSize = &v + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RunId = stringValue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/dlq_errors/v2/dlq_errors.pb.go b/go/gen/sift/dlq_errors/v2/dlq_errors.pb.go index ee41ba00c..3da6f2188 100644 --- a/go/gen/sift/dlq_errors/v2/dlq_errors.pb.go +++ b/go/gen/sift/dlq_errors/v2/dlq_errors.pb.go @@ -35,7 +35,6 @@ type ListDlqErrorsRequest struct { PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // A page token, received from a previous `ListDlqErrors` call. // Provide this to retrieve the subsequent page. - // // When paginating, all other parameters provided to `ListDlqErrors` must match // the call that provided the page token. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` diff --git a/go/gen/sift/external_sync/v1/external_sync.pb.go b/go/gen/sift/external_sync/v1/external_sync.pb.go new file mode 100644 index 000000000..9b531536a --- /dev/null +++ b/go/gen/sift/external_sync/v1/external_sync.pb.go @@ -0,0 +1,1091 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: sift/external_sync/v1/external_sync.proto + +package external_syncv1 + +import ( + _ "github.com/sift-stack/sift/go/gen/google/api" + _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" + v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" + v2 "github.com/sift-stack/sift/go/gen/sift/user_groups/v2" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ExternalSync struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + MostRecentSyncDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=most_recent_sync_date,json=mostRecentSyncDate,proto3,oneof" json:"most_recent_sync_date,omitempty"` + MostRecentSyncByUserId *string `protobuf:"bytes,3,opt,name=most_recent_sync_by_user_id,json=mostRecentSyncByUserId,proto3,oneof" json:"most_recent_sync_by_user_id,omitempty"` + ScimServerUrl string `protobuf:"bytes,4,opt,name=scim_server_url,json=scimServerUrl,proto3" json:"scim_server_url,omitempty"` + TokenCreatedDate *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=token_created_date,json=tokenCreatedDate,proto3,oneof" json:"token_created_date,omitempty"` + TokenLifetimeSeconds uint32 `protobuf:"varint,6,opt,name=token_lifetime_seconds,json=tokenLifetimeSeconds,proto3" json:"token_lifetime_seconds,omitempty"` + MostRecentTokenByUserId *string `protobuf:"bytes,7,opt,name=most_recent_token_by_user_id,json=mostRecentTokenByUserId,proto3,oneof" json:"most_recent_token_by_user_id,omitempty"` +} + +func (x *ExternalSync) Reset() { + *x = ExternalSync{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalSync) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalSync) ProtoMessage() {} + +func (x *ExternalSync) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalSync.ProtoReflect.Descriptor instead. +func (*ExternalSync) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{0} +} + +func (x *ExternalSync) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *ExternalSync) GetMostRecentSyncDate() *timestamppb.Timestamp { + if x != nil { + return x.MostRecentSyncDate + } + return nil +} + +func (x *ExternalSync) GetMostRecentSyncByUserId() string { + if x != nil && x.MostRecentSyncByUserId != nil { + return *x.MostRecentSyncByUserId + } + return "" +} + +func (x *ExternalSync) GetScimServerUrl() string { + if x != nil { + return x.ScimServerUrl + } + return "" +} + +func (x *ExternalSync) GetTokenCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.TokenCreatedDate + } + return nil +} + +func (x *ExternalSync) GetTokenLifetimeSeconds() uint32 { + if x != nil { + return x.TokenLifetimeSeconds + } + return 0 +} + +func (x *ExternalSync) GetMostRecentTokenByUserId() string { + if x != nil && x.MostRecentTokenByUserId != nil { + return *x.MostRecentTokenByUserId + } + return "" +} + +// The actual token value is not returned after it is first generated. +type ExternalSyncToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TokenId string `protobuf:"bytes,1,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"` + LifetimeSeconds uint32 `protobuf:"varint,2,opt,name=lifetime_seconds,json=lifetimeSeconds,proto3" json:"lifetime_seconds,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,4,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` +} + +func (x *ExternalSyncToken) Reset() { + *x = ExternalSyncToken{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalSyncToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalSyncToken) ProtoMessage() {} + +func (x *ExternalSyncToken) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalSyncToken.ProtoReflect.Descriptor instead. +func (*ExternalSyncToken) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{1} +} + +func (x *ExternalSyncToken) GetTokenId() string { + if x != nil { + return x.TokenId + } + return "" +} + +func (x *ExternalSyncToken) GetLifetimeSeconds() uint32 { + if x != nil { + return x.LifetimeSeconds + } + return 0 +} + +func (x *ExternalSyncToken) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *ExternalSyncToken) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +type SyncOrganizationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SyncOrganizationRequest) Reset() { + *x = SyncOrganizationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncOrganizationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncOrganizationRequest) ProtoMessage() {} + +func (x *SyncOrganizationRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SyncOrganizationRequest.ProtoReflect.Descriptor instead. +func (*SyncOrganizationRequest) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{2} +} + +type SyncOrganizationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExternalSync *ExternalSync `protobuf:"bytes,1,opt,name=external_sync,json=externalSync,proto3" json:"external_sync,omitempty"` + ExistingUserCount uint32 `protobuf:"varint,2,opt,name=existing_user_count,json=existingUserCount,proto3" json:"existing_user_count,omitempty"` + AddedToOrganizationUserIds []string `protobuf:"bytes,3,rep,name=added_to_organization_user_ids,json=addedToOrganizationUserIds,proto3" json:"added_to_organization_user_ids,omitempty"` + CreatedUsers []*v1.User `protobuf:"bytes,4,rep,name=created_users,json=createdUsers,proto3" json:"created_users,omitempty"` + DeactivatedUserIds []string `protobuf:"bytes,5,rep,name=deactivated_user_ids,json=deactivatedUserIds,proto3" json:"deactivated_user_ids,omitempty"` + ExistingGroupCount uint32 `protobuf:"varint,6,opt,name=existing_group_count,json=existingGroupCount,proto3" json:"existing_group_count,omitempty"` + CreatedUserGroups []*v2.UserGroup `protobuf:"bytes,7,rep,name=created_user_groups,json=createdUserGroups,proto3" json:"created_user_groups,omitempty"` + DeletedUserGroupNames []string `protobuf:"bytes,8,rep,name=deleted_user_group_names,json=deletedUserGroupNames,proto3" json:"deleted_user_group_names,omitempty"` +} + +func (x *SyncOrganizationResponse) Reset() { + *x = SyncOrganizationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncOrganizationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncOrganizationResponse) ProtoMessage() {} + +func (x *SyncOrganizationResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SyncOrganizationResponse.ProtoReflect.Descriptor instead. +func (*SyncOrganizationResponse) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{3} +} + +func (x *SyncOrganizationResponse) GetExternalSync() *ExternalSync { + if x != nil { + return x.ExternalSync + } + return nil +} + +func (x *SyncOrganizationResponse) GetExistingUserCount() uint32 { + if x != nil { + return x.ExistingUserCount + } + return 0 +} + +func (x *SyncOrganizationResponse) GetAddedToOrganizationUserIds() []string { + if x != nil { + return x.AddedToOrganizationUserIds + } + return nil +} + +func (x *SyncOrganizationResponse) GetCreatedUsers() []*v1.User { + if x != nil { + return x.CreatedUsers + } + return nil +} + +func (x *SyncOrganizationResponse) GetDeactivatedUserIds() []string { + if x != nil { + return x.DeactivatedUserIds + } + return nil +} + +func (x *SyncOrganizationResponse) GetExistingGroupCount() uint32 { + if x != nil { + return x.ExistingGroupCount + } + return 0 +} + +func (x *SyncOrganizationResponse) GetCreatedUserGroups() []*v2.UserGroup { + if x != nil { + return x.CreatedUserGroups + } + return nil +} + +func (x *SyncOrganizationResponse) GetDeletedUserGroupNames() []string { + if x != nil { + return x.DeletedUserGroupNames + } + return nil +} + +type GenerateTokenRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GenerateTokenRequest) Reset() { + *x = GenerateTokenRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateTokenRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateTokenRequest) ProtoMessage() {} + +func (x *GenerateTokenRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateTokenRequest.ProtoReflect.Descriptor instead. +func (*GenerateTokenRequest) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{4} +} + +type GenerateTokenResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExternalSync *ExternalSync `protobuf:"bytes,1,opt,name=external_sync,json=externalSync,proto3" json:"external_sync,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *GenerateTokenResponse) Reset() { + *x = GenerateTokenResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateTokenResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateTokenResponse) ProtoMessage() {} + +func (x *GenerateTokenResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateTokenResponse.ProtoReflect.Descriptor instead. +func (*GenerateTokenResponse) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{5} +} + +func (x *GenerateTokenResponse) GetExternalSync() *ExternalSync { + if x != nil { + return x.ExternalSync + } + return nil +} + +func (x *GenerateTokenResponse) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +type GetExternalSyncRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetExternalSyncRequest) Reset() { + *x = GetExternalSyncRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExternalSyncRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExternalSyncRequest) ProtoMessage() {} + +func (x *GetExternalSyncRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetExternalSyncRequest.ProtoReflect.Descriptor instead. +func (*GetExternalSyncRequest) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{6} +} + +type GetExternalSyncResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + ExternalSync *ExternalSync `protobuf:"bytes,2,opt,name=external_sync,json=externalSync,proto3" json:"external_sync,omitempty"` +} + +func (x *GetExternalSyncResponse) Reset() { + *x = GetExternalSyncResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExternalSyncResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExternalSyncResponse) ProtoMessage() {} + +func (x *GetExternalSyncResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetExternalSyncResponse.ProtoReflect.Descriptor instead. +func (*GetExternalSyncResponse) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{7} +} + +func (x *GetExternalSyncResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *GetExternalSyncResponse) GetExternalSync() *ExternalSync { + if x != nil { + return x.ExternalSync + } + return nil +} + +type ListExternalSyncTokensRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of tokens to return. The service may return fewer than this value. + // If unspecified, at most 50 tokens will be returned. The maximum value is 1000; values above + // 1000 will be coerced to 1000. Optional. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListExternalSyncTokens` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListExternalSyncTokens` must match + // the call that provided the page token. Optional. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // There are currently no available fields. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available field to order_by is `created_date`. + // If left empty, items are ordered by `created_date` in descending order (newest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date asc". + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListExternalSyncTokensRequest) Reset() { + *x = ListExternalSyncTokensRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListExternalSyncTokensRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExternalSyncTokensRequest) ProtoMessage() {} + +func (x *ListExternalSyncTokensRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListExternalSyncTokensRequest.ProtoReflect.Descriptor instead. +func (*ListExternalSyncTokensRequest) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{8} +} + +func (x *ListExternalSyncTokensRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListExternalSyncTokensRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListExternalSyncTokensRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListExternalSyncTokensRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +type ListExternalSyncTokensResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExternalSyncTokens []*ExternalSyncToken `protobuf:"bytes,1,rep,name=external_sync_tokens,json=externalSyncTokens,proto3" json:"external_sync_tokens,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListExternalSyncTokensResponse) Reset() { + *x = ListExternalSyncTokensResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListExternalSyncTokensResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExternalSyncTokensResponse) ProtoMessage() {} + +func (x *ListExternalSyncTokensResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_external_sync_v1_external_sync_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListExternalSyncTokensResponse.ProtoReflect.Descriptor instead. +func (*ListExternalSyncTokensResponse) Descriptor() ([]byte, []int) { + return file_sift_external_sync_v1_external_sync_proto_rawDescGZIP(), []int{9} +} + +func (x *ListExternalSyncTokensResponse) GetExternalSyncTokens() []*ExternalSyncToken { + if x != nil { + return x.ExternalSyncTokens + } + return nil +} + +func (x *ListExternalSyncTokensResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +var File_sift_external_sync_v1_external_sync_proto protoreflect.FileDescriptor + +var file_sift_external_sync_v1_external_sync_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, + 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 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, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, + 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1e, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x25, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x0c, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x15, 0x6d, 0x6f, 0x73, 0x74, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x02, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x6f, 0x73, 0x74, + 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x1b, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x16, 0x6d, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x73, 0x63, 0x69, 0x6d, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x63, 0x69, 0x6d, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x52, 0x0a, 0x12, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x02, 0x52, 0x10, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x47, 0x0a, 0x1c, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x03, 0x52, 0x17, 0x6d, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6d, 0x6f, 0x73, 0x74, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x62, 0x79, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, + 0xd9, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x53, + 0x79, 0x6e, 0x63, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xad, 0x04, 0x0a, 0x18, 0x53, 0x79, 0x6e, 0x63, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, + 0x6e, 0x63, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x1e, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1a, 0x61, 0x64, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, + 0x12, 0x43, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x14, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x14, + 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x12, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x3c, 0x0a, 0x18, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x15, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x81, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x53, 0x79, 0x6e, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x87, 0x01, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, + 0x79, 0x6e, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x22, 0xa2, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x1e, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, + 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, + 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xd7, 0x07, 0x0a, + 0x13, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0xdb, 0x01, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, 0x41, 0x43, 0x12, + 0x10, 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0x2f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x27, + 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, 0x73, 0x79, + 0x6e, 0x63, 0x12, 0xf6, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x89, 0x01, 0x92, 0x41, 0x57, 0x12, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x46, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x79, 0x6e, 0x63, + 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, 0x73, 0x79, 0x6e, 0x63, 0x3a, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xfa, 0x01, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x12, + 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, + 0x01, 0x92, 0x41, 0x67, 0x12, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x54, 0x47, 0x65, 0x74, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, + 0x74, 0x20, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2d, 0x73, 0x79, 0x6e, 0x63, 0x12, 0xeb, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, + 0x6e, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x64, 0x92, 0x41, 0x38, 0x12, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x1e, 0x4c, + 0x69, 0x73, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6f, 0x72, 0x67, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, 0x73, 0x79, 0x6e, 0x63, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x2d, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x42, 0xe9, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, + 0x63, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, + 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x47, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2f, + 0x76, 0x31, 0x3b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, + 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x45, 0x58, 0xaa, 0x02, 0x14, 0x53, 0x69, 0x66, 0x74, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x14, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, + 0x79, 0x6e, 0x63, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, + 0x3a, 0x3a, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_sift_external_sync_v1_external_sync_proto_rawDescOnce sync.Once + file_sift_external_sync_v1_external_sync_proto_rawDescData = file_sift_external_sync_v1_external_sync_proto_rawDesc +) + +func file_sift_external_sync_v1_external_sync_proto_rawDescGZIP() []byte { + file_sift_external_sync_v1_external_sync_proto_rawDescOnce.Do(func() { + file_sift_external_sync_v1_external_sync_proto_rawDescData = protoimpl.X.CompressGZIP(file_sift_external_sync_v1_external_sync_proto_rawDescData) + }) + return file_sift_external_sync_v1_external_sync_proto_rawDescData +} + +var file_sift_external_sync_v1_external_sync_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_sift_external_sync_v1_external_sync_proto_goTypes = []interface{}{ + (*ExternalSync)(nil), // 0: sift.external_sync.v1.ExternalSync + (*ExternalSyncToken)(nil), // 1: sift.external_sync.v1.ExternalSyncToken + (*SyncOrganizationRequest)(nil), // 2: sift.external_sync.v1.SyncOrganizationRequest + (*SyncOrganizationResponse)(nil), // 3: sift.external_sync.v1.SyncOrganizationResponse + (*GenerateTokenRequest)(nil), // 4: sift.external_sync.v1.GenerateTokenRequest + (*GenerateTokenResponse)(nil), // 5: sift.external_sync.v1.GenerateTokenResponse + (*GetExternalSyncRequest)(nil), // 6: sift.external_sync.v1.GetExternalSyncRequest + (*GetExternalSyncResponse)(nil), // 7: sift.external_sync.v1.GetExternalSyncResponse + (*ListExternalSyncTokensRequest)(nil), // 8: sift.external_sync.v1.ListExternalSyncTokensRequest + (*ListExternalSyncTokensResponse)(nil), // 9: sift.external_sync.v1.ListExternalSyncTokensResponse + (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (*v1.User)(nil), // 11: sift.common.type.v1.User + (*v2.UserGroup)(nil), // 12: sift.user_groups.v2.UserGroup +} +var file_sift_external_sync_v1_external_sync_proto_depIdxs = []int32{ + 10, // 0: sift.external_sync.v1.ExternalSync.most_recent_sync_date:type_name -> google.protobuf.Timestamp + 10, // 1: sift.external_sync.v1.ExternalSync.token_created_date:type_name -> google.protobuf.Timestamp + 10, // 2: sift.external_sync.v1.ExternalSyncToken.created_date:type_name -> google.protobuf.Timestamp + 0, // 3: sift.external_sync.v1.SyncOrganizationResponse.external_sync:type_name -> sift.external_sync.v1.ExternalSync + 11, // 4: sift.external_sync.v1.SyncOrganizationResponse.created_users:type_name -> sift.common.type.v1.User + 12, // 5: sift.external_sync.v1.SyncOrganizationResponse.created_user_groups:type_name -> sift.user_groups.v2.UserGroup + 0, // 6: sift.external_sync.v1.GenerateTokenResponse.external_sync:type_name -> sift.external_sync.v1.ExternalSync + 0, // 7: sift.external_sync.v1.GetExternalSyncResponse.external_sync:type_name -> sift.external_sync.v1.ExternalSync + 1, // 8: sift.external_sync.v1.ListExternalSyncTokensResponse.external_sync_tokens:type_name -> sift.external_sync.v1.ExternalSyncToken + 2, // 9: sift.external_sync.v1.ExternalSyncService.SyncOrganization:input_type -> sift.external_sync.v1.SyncOrganizationRequest + 4, // 10: sift.external_sync.v1.ExternalSyncService.GenerateToken:input_type -> sift.external_sync.v1.GenerateTokenRequest + 6, // 11: sift.external_sync.v1.ExternalSyncService.GetExternalSync:input_type -> sift.external_sync.v1.GetExternalSyncRequest + 8, // 12: sift.external_sync.v1.ExternalSyncService.ListExternalSyncTokens:input_type -> sift.external_sync.v1.ListExternalSyncTokensRequest + 3, // 13: sift.external_sync.v1.ExternalSyncService.SyncOrganization:output_type -> sift.external_sync.v1.SyncOrganizationResponse + 5, // 14: sift.external_sync.v1.ExternalSyncService.GenerateToken:output_type -> sift.external_sync.v1.GenerateTokenResponse + 7, // 15: sift.external_sync.v1.ExternalSyncService.GetExternalSync:output_type -> sift.external_sync.v1.GetExternalSyncResponse + 9, // 16: sift.external_sync.v1.ExternalSyncService.ListExternalSyncTokens:output_type -> sift.external_sync.v1.ListExternalSyncTokensResponse + 13, // [13:17] is the sub-list for method output_type + 9, // [9:13] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_sift_external_sync_v1_external_sync_proto_init() } +func file_sift_external_sync_v1_external_sync_proto_init() { + if File_sift_external_sync_v1_external_sync_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sift_external_sync_v1_external_sync_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalSync); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalSyncToken); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncOrganizationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncOrganizationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateTokenRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateTokenResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExternalSyncRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExternalSyncResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListExternalSyncTokensRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListExternalSyncTokensResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_sift_external_sync_v1_external_sync_proto_msgTypes[0].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_sift_external_sync_v1_external_sync_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_sift_external_sync_v1_external_sync_proto_goTypes, + DependencyIndexes: file_sift_external_sync_v1_external_sync_proto_depIdxs, + MessageInfos: file_sift_external_sync_v1_external_sync_proto_msgTypes, + }.Build() + File_sift_external_sync_v1_external_sync_proto = out.File + file_sift_external_sync_v1_external_sync_proto_rawDesc = nil + file_sift_external_sync_v1_external_sync_proto_goTypes = nil + file_sift_external_sync_v1_external_sync_proto_depIdxs = nil +} diff --git a/go/gen/sift/external_sync/v1/external_sync.pb.gw.go b/go/gen/sift/external_sync/v1/external_sync.pb.gw.go new file mode 100644 index 000000000..c6a704edd --- /dev/null +++ b/go/gen/sift/external_sync/v1/external_sync.pb.gw.go @@ -0,0 +1,412 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: sift/external_sync/v1/external_sync.proto + +/* +Package external_syncv1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package external_syncv1 + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_ExternalSyncService_SyncOrganization_0(ctx context.Context, marshaler runtime.Marshaler, client ExternalSyncServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SyncOrganizationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SyncOrganization(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ExternalSyncService_SyncOrganization_0(ctx context.Context, marshaler runtime.Marshaler, server ExternalSyncServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SyncOrganizationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SyncOrganization(ctx, &protoReq) + return msg, metadata, err + +} + +func request_ExternalSyncService_GenerateToken_0(ctx context.Context, marshaler runtime.Marshaler, client ExternalSyncServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GenerateTokenRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GenerateToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ExternalSyncService_GenerateToken_0(ctx context.Context, marshaler runtime.Marshaler, server ExternalSyncServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GenerateTokenRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GenerateToken(ctx, &protoReq) + return msg, metadata, err + +} + +func request_ExternalSyncService_GetExternalSync_0(ctx context.Context, marshaler runtime.Marshaler, client ExternalSyncServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetExternalSyncRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetExternalSync(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ExternalSyncService_GetExternalSync_0(ctx context.Context, marshaler runtime.Marshaler, server ExternalSyncServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetExternalSyncRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetExternalSync(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_ExternalSyncService_ListExternalSyncTokens_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_ExternalSyncService_ListExternalSyncTokens_0(ctx context.Context, marshaler runtime.Marshaler, client ExternalSyncServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListExternalSyncTokensRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ExternalSyncService_ListExternalSyncTokens_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListExternalSyncTokens(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ExternalSyncService_ListExternalSyncTokens_0(ctx context.Context, marshaler runtime.Marshaler, server ExternalSyncServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListExternalSyncTokensRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ExternalSyncService_ListExternalSyncTokens_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListExternalSyncTokens(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterExternalSyncServiceHandlerServer registers the http handlers for service ExternalSyncService to "mux". +// UnaryRPC :call ExternalSyncServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterExternalSyncServiceHandlerFromEndpoint instead. +func RegisterExternalSyncServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ExternalSyncServiceServer) error { + + mux.Handle("POST", pattern_ExternalSyncService_SyncOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/SyncOrganization", runtime.WithHTTPPathPattern("/api/v1/external-sync")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ExternalSyncService_SyncOrganization_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_SyncOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ExternalSyncService_GenerateToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/GenerateToken", runtime.WithHTTPPathPattern("/api/v1/external-sync:generate-token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ExternalSyncService_GenerateToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_GenerateToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ExternalSyncService_GetExternalSync_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/GetExternalSync", runtime.WithHTTPPathPattern("/api/v1/external-sync")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ExternalSyncService_GetExternalSync_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_GetExternalSync_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ExternalSyncService_ListExternalSyncTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens", runtime.WithHTTPPathPattern("/api/v1/external-sync:list-tokens")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ExternalSyncService_ListExternalSyncTokens_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_ListExternalSyncTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterExternalSyncServiceHandlerFromEndpoint is same as RegisterExternalSyncServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterExternalSyncServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterExternalSyncServiceHandler(ctx, mux, conn) +} + +// RegisterExternalSyncServiceHandler registers the http handlers for service ExternalSyncService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterExternalSyncServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterExternalSyncServiceHandlerClient(ctx, mux, NewExternalSyncServiceClient(conn)) +} + +// RegisterExternalSyncServiceHandlerClient registers the http handlers for service ExternalSyncService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ExternalSyncServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ExternalSyncServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "ExternalSyncServiceClient" to call the correct interceptors. +func RegisterExternalSyncServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ExternalSyncServiceClient) error { + + mux.Handle("POST", pattern_ExternalSyncService_SyncOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/SyncOrganization", runtime.WithHTTPPathPattern("/api/v1/external-sync")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ExternalSyncService_SyncOrganization_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_SyncOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ExternalSyncService_GenerateToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/GenerateToken", runtime.WithHTTPPathPattern("/api/v1/external-sync:generate-token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ExternalSyncService_GenerateToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_GenerateToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ExternalSyncService_GetExternalSync_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/GetExternalSync", runtime.WithHTTPPathPattern("/api/v1/external-sync")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ExternalSyncService_GetExternalSync_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_GetExternalSync_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ExternalSyncService_ListExternalSyncTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens", runtime.WithHTTPPathPattern("/api/v1/external-sync:list-tokens")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ExternalSyncService_ListExternalSyncTokens_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExternalSyncService_ListExternalSyncTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_ExternalSyncService_SyncOrganization_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "external-sync"}, "")) + + pattern_ExternalSyncService_GenerateToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "external-sync"}, "generate-token")) + + pattern_ExternalSyncService_GetExternalSync_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "external-sync"}, "")) + + pattern_ExternalSyncService_ListExternalSyncTokens_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "external-sync"}, "list-tokens")) +) + +var ( + forward_ExternalSyncService_SyncOrganization_0 = runtime.ForwardResponseMessage + + forward_ExternalSyncService_GenerateToken_0 = runtime.ForwardResponseMessage + + forward_ExternalSyncService_GetExternalSync_0 = runtime.ForwardResponseMessage + + forward_ExternalSyncService_ListExternalSyncTokens_0 = runtime.ForwardResponseMessage +) diff --git a/go/gen/sift/external_sync/v1/external_sync_vtproto.pb.go b/go/gen/sift/external_sync/v1/external_sync_vtproto.pb.go new file mode 100644 index 000000000..3257e25ba --- /dev/null +++ b/go/gen/sift/external_sync/v1/external_sync_vtproto.pb.go @@ -0,0 +1,5064 @@ +// Code generated by protoc-gen-go-vtproto. DO NOT EDIT. +// protoc-gen-go-vtproto version: v0.6.0 +// source: sift/external_sync/v1/external_sync.proto + +package external_syncv1 + +import ( + context "context" + fmt "fmt" + protohelpers "github.com/planetscale/vtprotobuf/protohelpers" + timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" + v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" + v2 "github.com/sift-stack/sift/go/gen/sift/user_groups/v2" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + proto "google.golang.org/protobuf/proto" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + io "io" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +func (m *ExternalSync) CloneVT() *ExternalSync { + if m == nil { + return (*ExternalSync)(nil) + } + r := new(ExternalSync) + r.OrganizationId = m.OrganizationId + r.MostRecentSyncDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.MostRecentSyncDate).CloneVT()) + r.ScimServerUrl = m.ScimServerUrl + r.TokenCreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.TokenCreatedDate).CloneVT()) + r.TokenLifetimeSeconds = m.TokenLifetimeSeconds + if rhs := m.MostRecentSyncByUserId; rhs != nil { + tmpVal := *rhs + r.MostRecentSyncByUserId = &tmpVal + } + if rhs := m.MostRecentTokenByUserId; rhs != nil { + tmpVal := *rhs + r.MostRecentTokenByUserId = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExternalSync) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExternalSyncToken) CloneVT() *ExternalSyncToken { + if m == nil { + return (*ExternalSyncToken)(nil) + } + r := new(ExternalSyncToken) + r.TokenId = m.TokenId + r.LifetimeSeconds = m.LifetimeSeconds + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExternalSyncToken) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SyncOrganizationRequest) CloneVT() *SyncOrganizationRequest { + if m == nil { + return (*SyncOrganizationRequest)(nil) + } + r := new(SyncOrganizationRequest) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SyncOrganizationRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SyncOrganizationResponse) CloneVT() *SyncOrganizationResponse { + if m == nil { + return (*SyncOrganizationResponse)(nil) + } + r := new(SyncOrganizationResponse) + r.ExternalSync = m.ExternalSync.CloneVT() + r.ExistingUserCount = m.ExistingUserCount + r.ExistingGroupCount = m.ExistingGroupCount + if rhs := m.AddedToOrganizationUserIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.AddedToOrganizationUserIds = tmpContainer + } + if rhs := m.CreatedUsers; rhs != nil { + tmpContainer := make([]*v1.User, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v1.User }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v1.User) + } + } + r.CreatedUsers = tmpContainer + } + if rhs := m.DeactivatedUserIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.DeactivatedUserIds = tmpContainer + } + if rhs := m.CreatedUserGroups; rhs != nil { + tmpContainer := make([]*v2.UserGroup, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v2.UserGroup }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v2.UserGroup) + } + } + r.CreatedUserGroups = tmpContainer + } + if rhs := m.DeletedUserGroupNames; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.DeletedUserGroupNames = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SyncOrganizationResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GenerateTokenRequest) CloneVT() *GenerateTokenRequest { + if m == nil { + return (*GenerateTokenRequest)(nil) + } + r := new(GenerateTokenRequest) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GenerateTokenRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GenerateTokenResponse) CloneVT() *GenerateTokenResponse { + if m == nil { + return (*GenerateTokenResponse)(nil) + } + r := new(GenerateTokenResponse) + r.ExternalSync = m.ExternalSync.CloneVT() + r.Token = m.Token + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GenerateTokenResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetExternalSyncRequest) CloneVT() *GetExternalSyncRequest { + if m == nil { + return (*GetExternalSyncRequest)(nil) + } + r := new(GetExternalSyncRequest) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetExternalSyncRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetExternalSyncResponse) CloneVT() *GetExternalSyncResponse { + if m == nil { + return (*GetExternalSyncResponse)(nil) + } + r := new(GetExternalSyncResponse) + r.Success = m.Success + r.ExternalSync = m.ExternalSync.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetExternalSyncResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListExternalSyncTokensRequest) CloneVT() *ListExternalSyncTokensRequest { + if m == nil { + return (*ListExternalSyncTokensRequest)(nil) + } + r := new(ListExternalSyncTokensRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.Filter = m.Filter + r.OrderBy = m.OrderBy + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListExternalSyncTokensRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListExternalSyncTokensResponse) CloneVT() *ListExternalSyncTokensResponse { + if m == nil { + return (*ListExternalSyncTokensResponse)(nil) + } + r := new(ListExternalSyncTokensResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.ExternalSyncTokens; rhs != nil { + tmpContainer := make([]*ExternalSyncToken, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.ExternalSyncTokens = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListExternalSyncTokensResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (this *ExternalSync) EqualVT(that *ExternalSync) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + if !(*timestamppb1.Timestamp)(this.MostRecentSyncDate).EqualVT((*timestamppb1.Timestamp)(that.MostRecentSyncDate)) { + return false + } + if p, q := this.MostRecentSyncByUserId, that.MostRecentSyncByUserId; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if this.ScimServerUrl != that.ScimServerUrl { + return false + } + if !(*timestamppb1.Timestamp)(this.TokenCreatedDate).EqualVT((*timestamppb1.Timestamp)(that.TokenCreatedDate)) { + return false + } + if this.TokenLifetimeSeconds != that.TokenLifetimeSeconds { + return false + } + if p, q := this.MostRecentTokenByUserId, that.MostRecentTokenByUserId; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExternalSync) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExternalSync) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExternalSyncToken) EqualVT(that *ExternalSyncToken) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.TokenId != that.TokenId { + return false + } + if this.LifetimeSeconds != that.LifetimeSeconds { + return false + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExternalSyncToken) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExternalSyncToken) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *SyncOrganizationRequest) EqualVT(that *SyncOrganizationRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *SyncOrganizationRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*SyncOrganizationRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *SyncOrganizationResponse) EqualVT(that *SyncOrganizationResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.ExternalSync.EqualVT(that.ExternalSync) { + return false + } + if this.ExistingUserCount != that.ExistingUserCount { + return false + } + if len(this.AddedToOrganizationUserIds) != len(that.AddedToOrganizationUserIds) { + return false + } + for i, vx := range this.AddedToOrganizationUserIds { + vy := that.AddedToOrganizationUserIds[i] + if vx != vy { + return false + } + } + if len(this.CreatedUsers) != len(that.CreatedUsers) { + return false + } + for i, vx := range this.CreatedUsers { + vy := that.CreatedUsers[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v1.User{} + } + if q == nil { + q = &v1.User{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v1.User) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if len(this.DeactivatedUserIds) != len(that.DeactivatedUserIds) { + return false + } + for i, vx := range this.DeactivatedUserIds { + vy := that.DeactivatedUserIds[i] + if vx != vy { + return false + } + } + if this.ExistingGroupCount != that.ExistingGroupCount { + return false + } + if len(this.CreatedUserGroups) != len(that.CreatedUserGroups) { + return false + } + for i, vx := range this.CreatedUserGroups { + vy := that.CreatedUserGroups[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v2.UserGroup{} + } + if q == nil { + q = &v2.UserGroup{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v2.UserGroup) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if len(this.DeletedUserGroupNames) != len(that.DeletedUserGroupNames) { + return false + } + for i, vx := range this.DeletedUserGroupNames { + vy := that.DeletedUserGroupNames[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *SyncOrganizationResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*SyncOrganizationResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GenerateTokenRequest) EqualVT(that *GenerateTokenRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GenerateTokenRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GenerateTokenRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GenerateTokenResponse) EqualVT(that *GenerateTokenResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.ExternalSync.EqualVT(that.ExternalSync) { + return false + } + if this.Token != that.Token { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GenerateTokenResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GenerateTokenResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetExternalSyncRequest) EqualVT(that *GetExternalSyncRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetExternalSyncRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetExternalSyncRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetExternalSyncResponse) EqualVT(that *GetExternalSyncResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Success != that.Success { + return false + } + if !this.ExternalSync.EqualVT(that.ExternalSync) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetExternalSyncResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetExternalSyncResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListExternalSyncTokensRequest) EqualVT(that *ListExternalSyncTokensRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListExternalSyncTokensRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListExternalSyncTokensRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListExternalSyncTokensResponse) EqualVT(that *ListExternalSyncTokensResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.ExternalSyncTokens) != len(that.ExternalSyncTokens) { + return false + } + for i, vx := range this.ExternalSyncTokens { + vy := that.ExternalSyncTokens[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &ExternalSyncToken{} + } + if q == nil { + q = &ExternalSyncToken{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListExternalSyncTokensResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListExternalSyncTokensResponse) + if !ok { + return false + } + return this.EqualVT(that) +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// ExternalSyncServiceClient is the client API for ExternalSyncService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ExternalSyncServiceClient interface { + SyncOrganization(ctx context.Context, in *SyncOrganizationRequest, opts ...grpc.CallOption) (*SyncOrganizationResponse, error) + GenerateToken(ctx context.Context, in *GenerateTokenRequest, opts ...grpc.CallOption) (*GenerateTokenResponse, error) + GetExternalSync(ctx context.Context, in *GetExternalSyncRequest, opts ...grpc.CallOption) (*GetExternalSyncResponse, error) + ListExternalSyncTokens(ctx context.Context, in *ListExternalSyncTokensRequest, opts ...grpc.CallOption) (*ListExternalSyncTokensResponse, error) +} + +type externalSyncServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewExternalSyncServiceClient(cc grpc.ClientConnInterface) ExternalSyncServiceClient { + return &externalSyncServiceClient{cc} +} + +func (c *externalSyncServiceClient) SyncOrganization(ctx context.Context, in *SyncOrganizationRequest, opts ...grpc.CallOption) (*SyncOrganizationResponse, error) { + out := new(SyncOrganizationResponse) + err := c.cc.Invoke(ctx, "/sift.external_sync.v1.ExternalSyncService/SyncOrganization", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *externalSyncServiceClient) GenerateToken(ctx context.Context, in *GenerateTokenRequest, opts ...grpc.CallOption) (*GenerateTokenResponse, error) { + out := new(GenerateTokenResponse) + err := c.cc.Invoke(ctx, "/sift.external_sync.v1.ExternalSyncService/GenerateToken", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *externalSyncServiceClient) GetExternalSync(ctx context.Context, in *GetExternalSyncRequest, opts ...grpc.CallOption) (*GetExternalSyncResponse, error) { + out := new(GetExternalSyncResponse) + err := c.cc.Invoke(ctx, "/sift.external_sync.v1.ExternalSyncService/GetExternalSync", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *externalSyncServiceClient) ListExternalSyncTokens(ctx context.Context, in *ListExternalSyncTokensRequest, opts ...grpc.CallOption) (*ListExternalSyncTokensResponse, error) { + out := new(ListExternalSyncTokensResponse) + err := c.cc.Invoke(ctx, "/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ExternalSyncServiceServer is the server API for ExternalSyncService service. +// All implementations must embed UnimplementedExternalSyncServiceServer +// for forward compatibility +type ExternalSyncServiceServer interface { + SyncOrganization(context.Context, *SyncOrganizationRequest) (*SyncOrganizationResponse, error) + GenerateToken(context.Context, *GenerateTokenRequest) (*GenerateTokenResponse, error) + GetExternalSync(context.Context, *GetExternalSyncRequest) (*GetExternalSyncResponse, error) + ListExternalSyncTokens(context.Context, *ListExternalSyncTokensRequest) (*ListExternalSyncTokensResponse, error) + mustEmbedUnimplementedExternalSyncServiceServer() +} + +// UnimplementedExternalSyncServiceServer must be embedded to have forward compatible implementations. +type UnimplementedExternalSyncServiceServer struct { +} + +func (UnimplementedExternalSyncServiceServer) SyncOrganization(context.Context, *SyncOrganizationRequest) (*SyncOrganizationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SyncOrganization not implemented") +} +func (UnimplementedExternalSyncServiceServer) GenerateToken(context.Context, *GenerateTokenRequest) (*GenerateTokenResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateToken not implemented") +} +func (UnimplementedExternalSyncServiceServer) GetExternalSync(context.Context, *GetExternalSyncRequest) (*GetExternalSyncResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetExternalSync not implemented") +} +func (UnimplementedExternalSyncServiceServer) ListExternalSyncTokens(context.Context, *ListExternalSyncTokensRequest) (*ListExternalSyncTokensResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListExternalSyncTokens not implemented") +} +func (UnimplementedExternalSyncServiceServer) mustEmbedUnimplementedExternalSyncServiceServer() {} + +// UnsafeExternalSyncServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ExternalSyncServiceServer will +// result in compilation errors. +type UnsafeExternalSyncServiceServer interface { + mustEmbedUnimplementedExternalSyncServiceServer() +} + +func RegisterExternalSyncServiceServer(s grpc.ServiceRegistrar, srv ExternalSyncServiceServer) { + s.RegisterService(&ExternalSyncService_ServiceDesc, srv) +} + +func _ExternalSyncService_SyncOrganization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SyncOrganizationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExternalSyncServiceServer).SyncOrganization(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.external_sync.v1.ExternalSyncService/SyncOrganization", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExternalSyncServiceServer).SyncOrganization(ctx, req.(*SyncOrganizationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExternalSyncService_GenerateToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateTokenRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExternalSyncServiceServer).GenerateToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.external_sync.v1.ExternalSyncService/GenerateToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExternalSyncServiceServer).GenerateToken(ctx, req.(*GenerateTokenRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExternalSyncService_GetExternalSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetExternalSyncRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExternalSyncServiceServer).GetExternalSync(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.external_sync.v1.ExternalSyncService/GetExternalSync", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExternalSyncServiceServer).GetExternalSync(ctx, req.(*GetExternalSyncRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExternalSyncService_ListExternalSyncTokens_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListExternalSyncTokensRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExternalSyncServiceServer).ListExternalSyncTokens(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExternalSyncServiceServer).ListExternalSyncTokens(ctx, req.(*ListExternalSyncTokensRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ExternalSyncService_ServiceDesc is the grpc.ServiceDesc for ExternalSyncService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ExternalSyncService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "sift.external_sync.v1.ExternalSyncService", + HandlerType: (*ExternalSyncServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SyncOrganization", + Handler: _ExternalSyncService_SyncOrganization_Handler, + }, + { + MethodName: "GenerateToken", + Handler: _ExternalSyncService_GenerateToken_Handler, + }, + { + MethodName: "GetExternalSync", + Handler: _ExternalSyncService_GetExternalSync_Handler, + }, + { + MethodName: "ListExternalSyncTokens", + Handler: _ExternalSyncService_ListExternalSyncTokens_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "sift/external_sync/v1/external_sync.proto", +} + +func (m *ExternalSync) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalSync) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExternalSync) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.MostRecentTokenByUserId != nil { + i -= len(*m.MostRecentTokenByUserId) + copy(dAtA[i:], *m.MostRecentTokenByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.MostRecentTokenByUserId))) + i-- + dAtA[i] = 0x3a + } + if m.TokenLifetimeSeconds != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TokenLifetimeSeconds)) + i-- + dAtA[i] = 0x30 + } + if m.TokenCreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.TokenCreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if len(m.ScimServerUrl) > 0 { + i -= len(m.ScimServerUrl) + copy(dAtA[i:], m.ScimServerUrl) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ScimServerUrl))) + i-- + dAtA[i] = 0x22 + } + if m.MostRecentSyncByUserId != nil { + i -= len(*m.MostRecentSyncByUserId) + copy(dAtA[i:], *m.MostRecentSyncByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.MostRecentSyncByUserId))) + i-- + dAtA[i] = 0x1a + } + if m.MostRecentSyncDate != nil { + size, err := (*timestamppb1.Timestamp)(m.MostRecentSyncDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ExternalSyncToken) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalSyncToken) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExternalSyncToken) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x22 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.LifetimeSeconds != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LifetimeSeconds)) + i-- + dAtA[i] = 0x10 + } + if len(m.TokenId) > 0 { + i -= len(m.TokenId) + copy(dAtA[i:], m.TokenId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TokenId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SyncOrganizationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SyncOrganizationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SyncOrganizationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *SyncOrganizationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SyncOrganizationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SyncOrganizationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.DeletedUserGroupNames) > 0 { + for iNdEx := len(m.DeletedUserGroupNames) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DeletedUserGroupNames[iNdEx]) + copy(dAtA[i:], m.DeletedUserGroupNames[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeletedUserGroupNames[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if len(m.CreatedUserGroups) > 0 { + for iNdEx := len(m.CreatedUserGroups) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.CreatedUserGroups[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.CreatedUserGroups[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x3a + } + } + if m.ExistingGroupCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ExistingGroupCount)) + i-- + dAtA[i] = 0x30 + } + if len(m.DeactivatedUserIds) > 0 { + for iNdEx := len(m.DeactivatedUserIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DeactivatedUserIds[iNdEx]) + copy(dAtA[i:], m.DeactivatedUserIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeactivatedUserIds[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(m.CreatedUsers) > 0 { + for iNdEx := len(m.CreatedUsers) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.CreatedUsers[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.CreatedUsers[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.AddedToOrganizationUserIds) > 0 { + for iNdEx := len(m.AddedToOrganizationUserIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AddedToOrganizationUserIds[iNdEx]) + copy(dAtA[i:], m.AddedToOrganizationUserIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AddedToOrganizationUserIds[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.ExistingUserCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ExistingUserCount)) + i-- + dAtA[i] = 0x10 + } + if m.ExternalSync != nil { + size, err := m.ExternalSync.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenerateTokenRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateTokenRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GenerateTokenRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *GenerateTokenResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateTokenResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GenerateTokenResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Token) > 0 { + i -= len(m.Token) + copy(dAtA[i:], m.Token) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Token))) + i-- + dAtA[i] = 0x12 + } + if m.ExternalSync != nil { + size, err := m.ExternalSync.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetExternalSyncRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetExternalSyncRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetExternalSyncRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *GetExternalSyncResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetExternalSyncResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetExternalSyncResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.ExternalSync != nil { + size, err := m.ExternalSync.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Success { + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListExternalSyncTokensRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListExternalSyncTokensRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListExternalSyncTokensRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListExternalSyncTokensResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListExternalSyncTokensResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListExternalSyncTokensResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.ExternalSyncTokens) > 0 { + for iNdEx := len(m.ExternalSyncTokens) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ExternalSyncTokens[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ExternalSync) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalSync) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ExternalSync) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.MostRecentTokenByUserId != nil { + i -= len(*m.MostRecentTokenByUserId) + copy(dAtA[i:], *m.MostRecentTokenByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.MostRecentTokenByUserId))) + i-- + dAtA[i] = 0x3a + } + if m.TokenLifetimeSeconds != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TokenLifetimeSeconds)) + i-- + dAtA[i] = 0x30 + } + if m.TokenCreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.TokenCreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if len(m.ScimServerUrl) > 0 { + i -= len(m.ScimServerUrl) + copy(dAtA[i:], m.ScimServerUrl) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ScimServerUrl))) + i-- + dAtA[i] = 0x22 + } + if m.MostRecentSyncByUserId != nil { + i -= len(*m.MostRecentSyncByUserId) + copy(dAtA[i:], *m.MostRecentSyncByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.MostRecentSyncByUserId))) + i-- + dAtA[i] = 0x1a + } + if m.MostRecentSyncDate != nil { + size, err := (*timestamppb1.Timestamp)(m.MostRecentSyncDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ExternalSyncToken) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalSyncToken) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ExternalSyncToken) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x22 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.LifetimeSeconds != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LifetimeSeconds)) + i-- + dAtA[i] = 0x10 + } + if len(m.TokenId) > 0 { + i -= len(m.TokenId) + copy(dAtA[i:], m.TokenId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TokenId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SyncOrganizationRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SyncOrganizationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SyncOrganizationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *SyncOrganizationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SyncOrganizationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SyncOrganizationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.DeletedUserGroupNames) > 0 { + for iNdEx := len(m.DeletedUserGroupNames) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DeletedUserGroupNames[iNdEx]) + copy(dAtA[i:], m.DeletedUserGroupNames[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeletedUserGroupNames[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if len(m.CreatedUserGroups) > 0 { + for iNdEx := len(m.CreatedUserGroups) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.CreatedUserGroups[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.CreatedUserGroups[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x3a + } + } + if m.ExistingGroupCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ExistingGroupCount)) + i-- + dAtA[i] = 0x30 + } + if len(m.DeactivatedUserIds) > 0 { + for iNdEx := len(m.DeactivatedUserIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DeactivatedUserIds[iNdEx]) + copy(dAtA[i:], m.DeactivatedUserIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeactivatedUserIds[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(m.CreatedUsers) > 0 { + for iNdEx := len(m.CreatedUsers) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.CreatedUsers[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.CreatedUsers[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.AddedToOrganizationUserIds) > 0 { + for iNdEx := len(m.AddedToOrganizationUserIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AddedToOrganizationUserIds[iNdEx]) + copy(dAtA[i:], m.AddedToOrganizationUserIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AddedToOrganizationUserIds[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.ExistingUserCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ExistingUserCount)) + i-- + dAtA[i] = 0x10 + } + if m.ExternalSync != nil { + size, err := m.ExternalSync.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenerateTokenRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateTokenRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GenerateTokenRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *GenerateTokenResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateTokenResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GenerateTokenResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Token) > 0 { + i -= len(m.Token) + copy(dAtA[i:], m.Token) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Token))) + i-- + dAtA[i] = 0x12 + } + if m.ExternalSync != nil { + size, err := m.ExternalSync.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetExternalSyncRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetExternalSyncRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetExternalSyncRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *GetExternalSyncResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetExternalSyncResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetExternalSyncResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.ExternalSync != nil { + size, err := m.ExternalSync.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Success { + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListExternalSyncTokensRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListExternalSyncTokensRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListExternalSyncTokensRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListExternalSyncTokensResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListExternalSyncTokensResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListExternalSyncTokensResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.ExternalSyncTokens) > 0 { + for iNdEx := len(m.ExternalSyncTokens) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ExternalSyncTokens[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ExternalSync) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.MostRecentSyncDate != nil { + l = (*timestamppb1.Timestamp)(m.MostRecentSyncDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.MostRecentSyncByUserId != nil { + l = len(*m.MostRecentSyncByUserId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ScimServerUrl) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.TokenCreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.TokenCreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.TokenLifetimeSeconds != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.TokenLifetimeSeconds)) + } + if m.MostRecentTokenByUserId != nil { + l = len(*m.MostRecentTokenByUserId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ExternalSyncToken) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TokenId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.LifetimeSeconds != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.LifetimeSeconds)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *SyncOrganizationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *SyncOrganizationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ExternalSync != nil { + l = m.ExternalSync.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ExistingUserCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.ExistingUserCount)) + } + if len(m.AddedToOrganizationUserIds) > 0 { + for _, s := range m.AddedToOrganizationUserIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.CreatedUsers) > 0 { + for _, e := range m.CreatedUsers { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.DeactivatedUserIds) > 0 { + for _, s := range m.DeactivatedUserIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.ExistingGroupCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.ExistingGroupCount)) + } + if len(m.CreatedUserGroups) > 0 { + for _, e := range m.CreatedUserGroups { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.DeletedUserGroupNames) > 0 { + for _, s := range m.DeletedUserGroupNames { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GenerateTokenRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *GenerateTokenResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ExternalSync != nil { + l = m.ExternalSync.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Token) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetExternalSyncRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *GetExternalSyncResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Success { + n += 2 + } + if m.ExternalSync != nil { + l = m.ExternalSync.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListExternalSyncTokensRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListExternalSyncTokensResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ExternalSyncTokens) > 0 { + for _, e := range m.ExternalSyncTokens { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ExternalSync) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalSync: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalSync: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MostRecentSyncDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MostRecentSyncDate == nil { + m.MostRecentSyncDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.MostRecentSyncDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MostRecentSyncByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.MostRecentSyncByUserId = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScimServerUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ScimServerUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenCreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TokenCreatedDate == nil { + m.TokenCreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.TokenCreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenLifetimeSeconds", wireType) + } + m.TokenLifetimeSeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TokenLifetimeSeconds |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MostRecentTokenByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.MostRecentTokenByUserId = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalSyncToken) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalSyncToken: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalSyncToken: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TokenId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LifetimeSeconds", wireType) + } + m.LifetimeSeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LifetimeSeconds |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SyncOrganizationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SyncOrganizationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SyncOrganizationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SyncOrganizationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SyncOrganizationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SyncOrganizationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSync", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExternalSync == nil { + m.ExternalSync = &ExternalSync{} + } + if err := m.ExternalSync.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExistingUserCount", wireType) + } + m.ExistingUserCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExistingUserCount |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedToOrganizationUserIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddedToOrganizationUserIds = append(m.AddedToOrganizationUserIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedUsers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedUsers = append(m.CreatedUsers, &v1.User{}) + if unmarshal, ok := interface{}(m.CreatedUsers[len(m.CreatedUsers)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.CreatedUsers[len(m.CreatedUsers)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeactivatedUserIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DeactivatedUserIds = append(m.DeactivatedUserIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExistingGroupCount", wireType) + } + m.ExistingGroupCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExistingGroupCount |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedUserGroups", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedUserGroups = append(m.CreatedUserGroups, &v2.UserGroup{}) + if unmarshal, ok := interface{}(m.CreatedUserGroups[len(m.CreatedUserGroups)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.CreatedUserGroups[len(m.CreatedUserGroups)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeletedUserGroupNames", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DeletedUserGroupNames = append(m.DeletedUserGroupNames, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateTokenRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateTokenRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateTokenRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateTokenResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateTokenResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateTokenResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSync", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExternalSync == nil { + m.ExternalSync = &ExternalSync{} + } + if err := m.ExternalSync.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Token = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetExternalSyncRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetExternalSyncRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetExternalSyncRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetExternalSyncResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetExternalSyncResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetExternalSyncResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSync", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExternalSync == nil { + m.ExternalSync = &ExternalSync{} + } + if err := m.ExternalSync.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListExternalSyncTokensRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListExternalSyncTokensRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListExternalSyncTokensRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListExternalSyncTokensResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListExternalSyncTokensResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListExternalSyncTokensResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSyncTokens", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExternalSyncTokens = append(m.ExternalSyncTokens, &ExternalSyncToken{}) + if err := m.ExternalSyncTokens[len(m.ExternalSyncTokens)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalSync) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalSync: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalSync: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MostRecentSyncDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MostRecentSyncDate == nil { + m.MostRecentSyncDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.MostRecentSyncDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MostRecentSyncByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.MostRecentSyncByUserId = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScimServerUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ScimServerUrl = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenCreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TokenCreatedDate == nil { + m.TokenCreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.TokenCreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenLifetimeSeconds", wireType) + } + m.TokenLifetimeSeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TokenLifetimeSeconds |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MostRecentTokenByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.MostRecentTokenByUserId = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalSyncToken) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalSyncToken: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalSyncToken: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.TokenId = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LifetimeSeconds", wireType) + } + m.LifetimeSeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LifetimeSeconds |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SyncOrganizationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SyncOrganizationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SyncOrganizationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SyncOrganizationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SyncOrganizationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SyncOrganizationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSync", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExternalSync == nil { + m.ExternalSync = &ExternalSync{} + } + if err := m.ExternalSync.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExistingUserCount", wireType) + } + m.ExistingUserCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExistingUserCount |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedToOrganizationUserIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AddedToOrganizationUserIds = append(m.AddedToOrganizationUserIds, stringValue) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedUsers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedUsers = append(m.CreatedUsers, &v1.User{}) + if unmarshal, ok := interface{}(m.CreatedUsers[len(m.CreatedUsers)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.CreatedUsers[len(m.CreatedUsers)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeactivatedUserIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.DeactivatedUserIds = append(m.DeactivatedUserIds, stringValue) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExistingGroupCount", wireType) + } + m.ExistingGroupCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExistingGroupCount |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedUserGroups", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedUserGroups = append(m.CreatedUserGroups, &v2.UserGroup{}) + if unmarshal, ok := interface{}(m.CreatedUserGroups[len(m.CreatedUserGroups)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.CreatedUserGroups[len(m.CreatedUserGroups)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeletedUserGroupNames", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.DeletedUserGroupNames = append(m.DeletedUserGroupNames, stringValue) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateTokenRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateTokenRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateTokenRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateTokenResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateTokenResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateTokenResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSync", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExternalSync == nil { + m.ExternalSync = &ExternalSync{} + } + if err := m.ExternalSync.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Token = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetExternalSyncRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetExternalSyncRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetExternalSyncRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetExternalSyncResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetExternalSyncResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetExternalSyncResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSync", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExternalSync == nil { + m.ExternalSync = &ExternalSync{} + } + if err := m.ExternalSync.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListExternalSyncTokensRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListExternalSyncTokensRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListExternalSyncTokensRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListExternalSyncTokensResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListExternalSyncTokensResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListExternalSyncTokensResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalSyncTokens", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExternalSyncTokens = append(m.ExternalSyncTokens, &ExternalSyncToken{}) + if err := m.ExternalSyncTokens[len(m.ExternalSyncTokens)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/go/gen/sift/ingestion_configs/v1/ingestion_configs.pb.go b/go/gen/sift/ingestion_configs/v1/ingestion_configs.pb.go index 282a98db8..a04234963 100644 --- a/go/gen/sift/ingestion_configs/v1/ingestion_configs.pb.go +++ b/go/gen/sift/ingestion_configs/v1/ingestion_configs.pb.go @@ -332,7 +332,7 @@ func (x *GetIngestionConfigResponse) GetIngestionConfig() *IngestionConfig { return nil } -// The request for a call to `IngestionConfigService_ListIngestionConfigs` to retrieve ingestion configs. +// The request for a call to `IngestionConfigService_CreateIngestionConfig` to create an ingestion configs. type CreateIngestionConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/go/gen/sift/ingestion_configs/v2/ingestion_configs.pb.go b/go/gen/sift/ingestion_configs/v2/ingestion_configs.pb.go index 0e9f558f6..ddbc62d03 100644 --- a/go/gen/sift/ingestion_configs/v2/ingestion_configs.pb.go +++ b/go/gen/sift/ingestion_configs/v2/ingestion_configs.pb.go @@ -324,7 +324,7 @@ func (x *GetIngestionConfigResponse) GetIngestionConfig() *IngestionConfig { return nil } -// The request for a call to `IngestionConfigService_ListIngestionConfigs` to retrieve ingestion configs. +// The request for a call to `IngestionConfigService_CreateIngestionConfig` to retrieve ingestion configs. type CreateIngestionConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/go/gen/sift/jobs/v1/jobs.pb.go b/go/gen/sift/jobs/v1/jobs.pb.go index 9de2744b0..735a9ab88 100644 --- a/go/gen/sift/jobs/v1/jobs.pb.go +++ b/go/gen/sift/jobs/v1/jobs.pb.go @@ -9,6 +9,7 @@ package jobsv1 import ( _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" + v1 "github.com/sift-stack/sift/go/gen/sift/exports/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" @@ -30,6 +31,7 @@ const ( JobType_JOB_TYPE_UNSPECIFIED JobType = 0 JobType_JOB_TYPE_RULE_EVALUATION JobType = 1 JobType_JOB_TYPE_DATA_IMPORT JobType = 2 + JobType_JOB_TYPE_DATA_EXPORT JobType = 3 ) // Enum value maps for JobType. @@ -38,11 +40,13 @@ var ( 0: "JOB_TYPE_UNSPECIFIED", 1: "JOB_TYPE_RULE_EVALUATION", 2: "JOB_TYPE_DATA_IMPORT", + 3: "JOB_TYPE_DATA_EXPORT", } JobType_value = map[string]int32{ "JOB_TYPE_UNSPECIFIED": 0, "JOB_TYPE_RULE_EVALUATION": 1, "JOB_TYPE_DATA_IMPORT": 2, + "JOB_TYPE_DATA_EXPORT": 3, } ) @@ -150,6 +154,8 @@ type Job struct { CompletedDate *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=completed_date,json=completedDate,proto3" json:"completed_date,omitempty"` JobType JobType `protobuf:"varint,10,opt,name=job_type,json=jobType,proto3,enum=sift.jobs.v1.JobType" json:"job_type,omitempty"` JobStatus JobStatus `protobuf:"varint,11,opt,name=job_status,json=jobStatus,proto3,enum=sift.jobs.v1.JobStatus" json:"job_status,omitempty"` + JobStatusDetails *JobStatusDetails `protobuf:"bytes,12,opt,name=job_status_details,json=jobStatusDetails,proto3" json:"job_status_details,omitempty"` + JobDetails *JobDetails `protobuf:"bytes,13,opt,name=job_details,json=jobDetails,proto3" json:"job_details,omitempty"` } func (x *Job) Reset() { @@ -254,6 +260,499 @@ func (x *Job) GetJobStatus() JobStatus { return JobStatus_JOB_STATUS_UNSPECIFIED } +func (x *Job) GetJobStatusDetails() *JobStatusDetails { + if x != nil { + return x.JobStatusDetails + } + return nil +} + +func (x *Job) GetJobDetails() *JobDetails { + if x != nil { + return x.JobDetails + } + return nil +} + +type JobStatusDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Status: + // + // *JobStatusDetails_RuleEvaluation + // *JobStatusDetails_DataImport + // *JobStatusDetails_DataExport + Status isJobStatusDetails_Status `protobuf_oneof:"status"` +} + +func (x *JobStatusDetails) Reset() { + *x = JobStatusDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobStatusDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobStatusDetails) ProtoMessage() {} + +func (x *JobStatusDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JobStatusDetails.ProtoReflect.Descriptor instead. +func (*JobStatusDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{1} +} + +func (m *JobStatusDetails) GetStatus() isJobStatusDetails_Status { + if m != nil { + return m.Status + } + return nil +} + +func (x *JobStatusDetails) GetRuleEvaluation() *RuleEvaluationStatusDetails { + if x, ok := x.GetStatus().(*JobStatusDetails_RuleEvaluation); ok { + return x.RuleEvaluation + } + return nil +} + +func (x *JobStatusDetails) GetDataImport() *DataImportStatusDetails { + if x, ok := x.GetStatus().(*JobStatusDetails_DataImport); ok { + return x.DataImport + } + return nil +} + +func (x *JobStatusDetails) GetDataExport() *DataExportStatusDetails { + if x, ok := x.GetStatus().(*JobStatusDetails_DataExport); ok { + return x.DataExport + } + return nil +} + +type isJobStatusDetails_Status interface { + isJobStatusDetails_Status() +} + +type JobStatusDetails_RuleEvaluation struct { + RuleEvaluation *RuleEvaluationStatusDetails `protobuf:"bytes,1,opt,name=rule_evaluation,json=ruleEvaluation,proto3,oneof"` +} + +type JobStatusDetails_DataImport struct { + DataImport *DataImportStatusDetails `protobuf:"bytes,2,opt,name=data_import,json=dataImport,proto3,oneof"` +} + +type JobStatusDetails_DataExport struct { + DataExport *DataExportStatusDetails `protobuf:"bytes,3,opt,name=data_export,json=dataExport,proto3,oneof"` +} + +func (*JobStatusDetails_RuleEvaluation) isJobStatusDetails_Status() {} + +func (*JobStatusDetails_DataImport) isJobStatusDetails_Status() {} + +func (*JobStatusDetails_DataExport) isJobStatusDetails_Status() {} + +type RuleEvaluationStatusDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RuleEvaluationStatusDetails) Reset() { + *x = RuleEvaluationStatusDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RuleEvaluationStatusDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuleEvaluationStatusDetails) ProtoMessage() {} + +func (x *RuleEvaluationStatusDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RuleEvaluationStatusDetails.ProtoReflect.Descriptor instead. +func (*RuleEvaluationStatusDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{2} +} + +type DataImportStatusDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PointsProcessed uint64 `protobuf:"varint,1,opt,name=points_processed,json=pointsProcessed,proto3" json:"points_processed,omitempty"` + PointsTotal uint64 `protobuf:"varint,2,opt,name=points_total,json=pointsTotal,proto3" json:"points_total,omitempty"` +} + +func (x *DataImportStatusDetails) Reset() { + *x = DataImportStatusDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataImportStatusDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataImportStatusDetails) ProtoMessage() {} + +func (x *DataImportStatusDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataImportStatusDetails.ProtoReflect.Descriptor instead. +func (*DataImportStatusDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{3} +} + +func (x *DataImportStatusDetails) GetPointsProcessed() uint64 { + if x != nil { + return x.PointsProcessed + } + return 0 +} + +func (x *DataImportStatusDetails) GetPointsTotal() uint64 { + if x != nil { + return x.PointsTotal + } + return 0 +} + +type DataExportStatusDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrorMessage string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (x *DataExportStatusDetails) Reset() { + *x = DataExportStatusDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataExportStatusDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataExportStatusDetails) ProtoMessage() {} + +func (x *DataExportStatusDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataExportStatusDetails.ProtoReflect.Descriptor instead. +func (*DataExportStatusDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{4} +} + +func (x *DataExportStatusDetails) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +type DataExportJobDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Request *v1.ExportDataRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"` + StorageKey string `protobuf:"bytes,2,opt,name=storage_key,json=storageKey,proto3" json:"storage_key,omitempty"` +} + +func (x *DataExportJobDetails) Reset() { + *x = DataExportJobDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataExportJobDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataExportJobDetails) ProtoMessage() {} + +func (x *DataExportJobDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataExportJobDetails.ProtoReflect.Descriptor instead. +func (*DataExportJobDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{5} +} + +func (x *DataExportJobDetails) GetRequest() *v1.ExportDataRequest { + if x != nil { + return x.Request + } + return nil +} + +func (x *DataExportJobDetails) GetStorageKey() string { + if x != nil { + return x.StorageKey + } + return "" +} + +type JobDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Details: + // + // *JobDetails_RuleEvaluation + // *JobDetails_DataImport + // *JobDetails_DataExport + Details isJobDetails_Details `protobuf_oneof:"details"` +} + +func (x *JobDetails) Reset() { + *x = JobDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobDetails) ProtoMessage() {} + +func (x *JobDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JobDetails.ProtoReflect.Descriptor instead. +func (*JobDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{6} +} + +func (m *JobDetails) GetDetails() isJobDetails_Details { + if m != nil { + return m.Details + } + return nil +} + +func (x *JobDetails) GetRuleEvaluation() *RuleEvaluationJobDetails { + if x, ok := x.GetDetails().(*JobDetails_RuleEvaluation); ok { + return x.RuleEvaluation + } + return nil +} + +func (x *JobDetails) GetDataImport() *DataImportJobDetails { + if x, ok := x.GetDetails().(*JobDetails_DataImport); ok { + return x.DataImport + } + return nil +} + +func (x *JobDetails) GetDataExport() *DataExportJobDetails { + if x, ok := x.GetDetails().(*JobDetails_DataExport); ok { + return x.DataExport + } + return nil +} + +type isJobDetails_Details interface { + isJobDetails_Details() +} + +type JobDetails_RuleEvaluation struct { + RuleEvaluation *RuleEvaluationJobDetails `protobuf:"bytes,1,opt,name=rule_evaluation,json=ruleEvaluation,proto3,oneof"` +} + +type JobDetails_DataImport struct { + DataImport *DataImportJobDetails `protobuf:"bytes,2,opt,name=data_import,json=dataImport,proto3,oneof"` +} + +type JobDetails_DataExport struct { + DataExport *DataExportJobDetails `protobuf:"bytes,3,opt,name=data_export,json=dataExport,proto3,oneof"` +} + +func (*JobDetails_RuleEvaluation) isJobDetails_Details() {} + +func (*JobDetails_DataImport) isJobDetails_Details() {} + +func (*JobDetails_DataExport) isJobDetails_Details() {} + +type RuleEvaluationJobDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReportId string `protobuf:"bytes,1,opt,name=report_id,json=reportId,proto3" json:"report_id,omitempty"` +} + +func (x *RuleEvaluationJobDetails) Reset() { + *x = RuleEvaluationJobDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RuleEvaluationJobDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuleEvaluationJobDetails) ProtoMessage() {} + +func (x *RuleEvaluationJobDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RuleEvaluationJobDetails.ProtoReflect.Descriptor instead. +func (*RuleEvaluationJobDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{7} +} + +func (x *RuleEvaluationJobDetails) GetReportId() string { + if x != nil { + return x.ReportId + } + return "" +} + +type DataImportJobDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DataImportId string `protobuf:"bytes,1,opt,name=data_import_id,json=dataImportId,proto3" json:"data_import_id,omitempty"` +} + +func (x *DataImportJobDetails) Reset() { + *x = DataImportJobDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataImportJobDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataImportJobDetails) ProtoMessage() {} + +func (x *DataImportJobDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataImportJobDetails.ProtoReflect.Descriptor instead. +func (*DataImportJobDetails) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{8} +} + +func (x *DataImportJobDetails) GetDataImportId() string { + if x != nil { + return x.DataImportId + } + return "" +} + type ListJobsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -270,7 +769,7 @@ type ListJobsRequest struct { PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `job_id`, `created_by_user_id`, `modified_by_user_id`, `created_date`, `modified_date`, `started_date`, `completed_date` + // `job_id`, `created_by_user_id`, `modified_by_user_id`, `created_date`, `modified_date`, `started_date`, `completed_date`, and `job_status` // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -287,7 +786,7 @@ type ListJobsRequest struct { func (x *ListJobsRequest) Reset() { *x = ListJobsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[1] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -300,7 +799,7 @@ func (x *ListJobsRequest) String() string { func (*ListJobsRequest) ProtoMessage() {} func (x *ListJobsRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[1] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -313,7 +812,7 @@ func (x *ListJobsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListJobsRequest.ProtoReflect.Descriptor instead. func (*ListJobsRequest) Descriptor() ([]byte, []int) { - return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{1} + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{9} } func (x *ListJobsRequest) GetPageSize() uint32 { @@ -363,7 +862,7 @@ type ListJobsResponse struct { func (x *ListJobsResponse) Reset() { *x = ListJobsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[2] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -376,7 +875,7 @@ func (x *ListJobsResponse) String() string { func (*ListJobsResponse) ProtoMessage() {} func (x *ListJobsResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[2] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -389,7 +888,7 @@ func (x *ListJobsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListJobsResponse.ProtoReflect.Descriptor instead. func (*ListJobsResponse) Descriptor() ([]byte, []int) { - return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{2} + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{10} } func (x *ListJobsResponse) GetJobs() []*Job { @@ -417,7 +916,7 @@ type CancelJobRequest struct { func (x *CancelJobRequest) Reset() { *x = CancelJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[3] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -430,7 +929,7 @@ func (x *CancelJobRequest) String() string { func (*CancelJobRequest) ProtoMessage() {} func (x *CancelJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[3] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -443,7 +942,7 @@ func (x *CancelJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelJobRequest.ProtoReflect.Descriptor instead. func (*CancelJobRequest) Descriptor() ([]byte, []int) { - return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{3} + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{11} } func (x *CancelJobRequest) GetJobId() string { @@ -462,7 +961,7 @@ type CancelJobResponse struct { func (x *CancelJobResponse) Reset() { *x = CancelJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[4] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -475,7 +974,7 @@ func (x *CancelJobResponse) String() string { func (*CancelJobResponse) ProtoMessage() {} func (x *CancelJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_jobs_v1_jobs_proto_msgTypes[4] + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -488,7 +987,101 @@ func (x *CancelJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelJobResponse.ProtoReflect.Descriptor instead. func (*CancelJobResponse) Descriptor() ([]byte, []int) { - return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{4} + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{12} +} + +type RetryJobRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` +} + +func (x *RetryJobRequest) Reset() { + *x = RetryJobRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RetryJobRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RetryJobRequest) ProtoMessage() {} + +func (x *RetryJobRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RetryJobRequest.ProtoReflect.Descriptor instead. +func (*RetryJobRequest) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{13} +} + +func (x *RetryJobRequest) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +type RetryJobResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Job *Job `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"` +} + +func (x *RetryJobResponse) Reset() { + *x = RetryJobResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RetryJobResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RetryJobResponse) ProtoMessage() {} + +func (x *RetryJobResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_jobs_v1_jobs_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RetryJobResponse.ProtoReflect.Descriptor instead. +func (*RetryJobResponse) Descriptor() ([]byte, []int) { + return file_sift_jobs_v1_jobs_proto_rawDescGZIP(), []int{14} +} + +func (x *RetryJobResponse) GetJob() *Job { + if x != nil { + return x.Job + } + return nil } var File_sift_jobs_v1_jobs_proto protoreflect.FileDescriptor @@ -505,103 +1098,194 @@ var file_sift_jobs_v1_jobs_proto_rawDesc = []byte{ 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x04, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, - 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x06, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe4, 0x05, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x1a, + 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, + 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 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, 0x42, 0x06, + 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a, - 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x09, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, - 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0a, - 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, - 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x4c, 0x69, - 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, - 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x61, - 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0x2e, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, - 0x64, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x5f, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, - 0x1c, 0x0a, 0x18, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, - 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, - 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, - 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0xc6, 0x01, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x16, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, - 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, - 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, 0x15, - 0x0a, 0x11, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, - 0x1f, 0x0a, 0x1b, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, - 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x06, - 0x32, 0xaa, 0x02, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x78, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, - 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x92, 0x41, 0x16, 0x12, - 0x08, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x1a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x20, - 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x09, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, - 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, - 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x09, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x1a, 0x1f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x20, 0x6a, 0x6f, 0x62, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, - 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, - 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0xb9, 0x01, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x38, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x6a, 0x6f, + 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, + 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x12, 0x6a, 0x6f, + 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, + 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6a, 0x6f, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3e, 0x0a, + 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x86, 0x02, + 0x0a, 0x10, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x54, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, + 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, + 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x08, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x71, 0x0a, 0x17, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x43, 0x0a, 0x17, 0x44, 0x61, 0x74, 0x61, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x75, 0x0a, + 0x14, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x4b, 0x65, 0x79, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, + 0x00, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x45, 0x0a, + 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, + 0x3c, 0x0a, 0x18, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x41, 0x0a, + 0x14, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x61, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x6a, 0x6f, 0x62, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, + 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2e, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x0a, + 0x0f, 0x52, 0x65, 0x74, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x10, + 0x52, 0x65, 0x74, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x23, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, + 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x2a, 0x79, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1c, 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, + 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, + 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4d, + 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x03, + 0x2a, 0xc6, 0x01, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, + 0x0a, 0x16, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, + 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, + 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x17, + 0x0a, 0x13, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, + 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4a, 0x4f, 0x42, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x18, + 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, + 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x4a, 0x4f, 0x42, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x52, 0x45, + 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x06, 0x32, 0xc1, 0x03, 0x0a, 0x0a, 0x4a, 0x6f, + 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, + 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x92, 0x41, 0x16, 0x12, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, + 0x62, 0x73, 0x1a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, + 0x62, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, + 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, + 0x62, 0x1a, 0x1f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x6a, 0x6f, + 0x62, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0x3a, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x94, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x72, 0x79, + 0x4a, 0x6f, 0x62, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x49, 0x92, 0x41, 0x23, 0x12, 0x08, 0x52, 0x65, 0x74, 0x72, 0x79, 0x4a, 0x6f, + 0x62, 0x1a, 0x17, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6a, 0x6f, 0x62, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, + 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x42, 0xb9, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x4a, 0x6f, 0x62, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, @@ -630,34 +1314,57 @@ func file_sift_jobs_v1_jobs_proto_rawDescGZIP() []byte { } var file_sift_jobs_v1_jobs_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_sift_jobs_v1_jobs_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_sift_jobs_v1_jobs_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_sift_jobs_v1_jobs_proto_goTypes = []interface{}{ - (JobType)(0), // 0: sift.jobs.v1.JobType - (JobStatus)(0), // 1: sift.jobs.v1.JobStatus - (*Job)(nil), // 2: sift.jobs.v1.Job - (*ListJobsRequest)(nil), // 3: sift.jobs.v1.ListJobsRequest - (*ListJobsResponse)(nil), // 4: sift.jobs.v1.ListJobsResponse - (*CancelJobRequest)(nil), // 5: sift.jobs.v1.CancelJobRequest - (*CancelJobResponse)(nil), // 6: sift.jobs.v1.CancelJobResponse - (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp + (JobType)(0), // 0: sift.jobs.v1.JobType + (JobStatus)(0), // 1: sift.jobs.v1.JobStatus + (*Job)(nil), // 2: sift.jobs.v1.Job + (*JobStatusDetails)(nil), // 3: sift.jobs.v1.JobStatusDetails + (*RuleEvaluationStatusDetails)(nil), // 4: sift.jobs.v1.RuleEvaluationStatusDetails + (*DataImportStatusDetails)(nil), // 5: sift.jobs.v1.DataImportStatusDetails + (*DataExportStatusDetails)(nil), // 6: sift.jobs.v1.DataExportStatusDetails + (*DataExportJobDetails)(nil), // 7: sift.jobs.v1.DataExportJobDetails + (*JobDetails)(nil), // 8: sift.jobs.v1.JobDetails + (*RuleEvaluationJobDetails)(nil), // 9: sift.jobs.v1.RuleEvaluationJobDetails + (*DataImportJobDetails)(nil), // 10: sift.jobs.v1.DataImportJobDetails + (*ListJobsRequest)(nil), // 11: sift.jobs.v1.ListJobsRequest + (*ListJobsResponse)(nil), // 12: sift.jobs.v1.ListJobsResponse + (*CancelJobRequest)(nil), // 13: sift.jobs.v1.CancelJobRequest + (*CancelJobResponse)(nil), // 14: sift.jobs.v1.CancelJobResponse + (*RetryJobRequest)(nil), // 15: sift.jobs.v1.RetryJobRequest + (*RetryJobResponse)(nil), // 16: sift.jobs.v1.RetryJobResponse + (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp + (*v1.ExportDataRequest)(nil), // 18: sift.exports.v1.ExportDataRequest } var file_sift_jobs_v1_jobs_proto_depIdxs = []int32{ - 7, // 0: sift.jobs.v1.Job.created_date:type_name -> google.protobuf.Timestamp - 7, // 1: sift.jobs.v1.Job.modified_date:type_name -> google.protobuf.Timestamp - 7, // 2: sift.jobs.v1.Job.started_date:type_name -> google.protobuf.Timestamp - 7, // 3: sift.jobs.v1.Job.completed_date:type_name -> google.protobuf.Timestamp - 0, // 4: sift.jobs.v1.Job.job_type:type_name -> sift.jobs.v1.JobType - 1, // 5: sift.jobs.v1.Job.job_status:type_name -> sift.jobs.v1.JobStatus - 2, // 6: sift.jobs.v1.ListJobsResponse.jobs:type_name -> sift.jobs.v1.Job - 3, // 7: sift.jobs.v1.JobService.ListJobs:input_type -> sift.jobs.v1.ListJobsRequest - 5, // 8: sift.jobs.v1.JobService.CancelJob:input_type -> sift.jobs.v1.CancelJobRequest - 4, // 9: sift.jobs.v1.JobService.ListJobs:output_type -> sift.jobs.v1.ListJobsResponse - 6, // 10: sift.jobs.v1.JobService.CancelJob:output_type -> sift.jobs.v1.CancelJobResponse - 9, // [9:11] is the sub-list for method output_type - 7, // [7:9] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 17, // 0: sift.jobs.v1.Job.created_date:type_name -> google.protobuf.Timestamp + 17, // 1: sift.jobs.v1.Job.modified_date:type_name -> google.protobuf.Timestamp + 17, // 2: sift.jobs.v1.Job.started_date:type_name -> google.protobuf.Timestamp + 17, // 3: sift.jobs.v1.Job.completed_date:type_name -> google.protobuf.Timestamp + 0, // 4: sift.jobs.v1.Job.job_type:type_name -> sift.jobs.v1.JobType + 1, // 5: sift.jobs.v1.Job.job_status:type_name -> sift.jobs.v1.JobStatus + 3, // 6: sift.jobs.v1.Job.job_status_details:type_name -> sift.jobs.v1.JobStatusDetails + 8, // 7: sift.jobs.v1.Job.job_details:type_name -> sift.jobs.v1.JobDetails + 4, // 8: sift.jobs.v1.JobStatusDetails.rule_evaluation:type_name -> sift.jobs.v1.RuleEvaluationStatusDetails + 5, // 9: sift.jobs.v1.JobStatusDetails.data_import:type_name -> sift.jobs.v1.DataImportStatusDetails + 6, // 10: sift.jobs.v1.JobStatusDetails.data_export:type_name -> sift.jobs.v1.DataExportStatusDetails + 18, // 11: sift.jobs.v1.DataExportJobDetails.request:type_name -> sift.exports.v1.ExportDataRequest + 9, // 12: sift.jobs.v1.JobDetails.rule_evaluation:type_name -> sift.jobs.v1.RuleEvaluationJobDetails + 10, // 13: sift.jobs.v1.JobDetails.data_import:type_name -> sift.jobs.v1.DataImportJobDetails + 7, // 14: sift.jobs.v1.JobDetails.data_export:type_name -> sift.jobs.v1.DataExportJobDetails + 2, // 15: sift.jobs.v1.ListJobsResponse.jobs:type_name -> sift.jobs.v1.Job + 2, // 16: sift.jobs.v1.RetryJobResponse.job:type_name -> sift.jobs.v1.Job + 11, // 17: sift.jobs.v1.JobService.ListJobs:input_type -> sift.jobs.v1.ListJobsRequest + 13, // 18: sift.jobs.v1.JobService.CancelJob:input_type -> sift.jobs.v1.CancelJobRequest + 15, // 19: sift.jobs.v1.JobService.RetryJob:input_type -> sift.jobs.v1.RetryJobRequest + 12, // 20: sift.jobs.v1.JobService.ListJobs:output_type -> sift.jobs.v1.ListJobsResponse + 14, // 21: sift.jobs.v1.JobService.CancelJob:output_type -> sift.jobs.v1.CancelJobResponse + 16, // 22: sift.jobs.v1.JobService.RetryJob:output_type -> sift.jobs.v1.RetryJobResponse + 20, // [20:23] is the sub-list for method output_type + 17, // [17:20] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_sift_jobs_v1_jobs_proto_init() } @@ -679,7 +1386,7 @@ func file_sift_jobs_v1_jobs_proto_init() { } } file_sift_jobs_v1_jobs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListJobsRequest); i { + switch v := v.(*JobStatusDetails); i { case 0: return &v.state case 1: @@ -691,7 +1398,7 @@ func file_sift_jobs_v1_jobs_proto_init() { } } file_sift_jobs_v1_jobs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListJobsResponse); i { + switch v := v.(*RuleEvaluationStatusDetails); i { case 0: return &v.state case 1: @@ -703,7 +1410,7 @@ func file_sift_jobs_v1_jobs_proto_init() { } } file_sift_jobs_v1_jobs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CancelJobRequest); i { + switch v := v.(*DataImportStatusDetails); i { case 0: return &v.state case 1: @@ -715,6 +1422,102 @@ func file_sift_jobs_v1_jobs_proto_init() { } } file_sift_jobs_v1_jobs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataExportStatusDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataExportJobDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RuleEvaluationJobDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataImportJobDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListJobsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListJobsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CancelJobRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelJobResponse); i { case 0: return &v.state @@ -726,6 +1529,40 @@ func file_sift_jobs_v1_jobs_proto_init() { return nil } } + file_sift_jobs_v1_jobs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RetryJobRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RetryJobResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_sift_jobs_v1_jobs_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*JobStatusDetails_RuleEvaluation)(nil), + (*JobStatusDetails_DataImport)(nil), + (*JobStatusDetails_DataExport)(nil), + } + file_sift_jobs_v1_jobs_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*JobDetails_RuleEvaluation)(nil), + (*JobDetails_DataImport)(nil), + (*JobDetails_DataExport)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -733,7 +1570,7 @@ func file_sift_jobs_v1_jobs_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_jobs_v1_jobs_proto_rawDesc, NumEnums: 2, - NumMessages: 5, + NumMessages: 15, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/jobs/v1/jobs.pb.gw.go b/go/gen/sift/jobs/v1/jobs.pb.gw.go index db8ba6980..6e166a517 100644 --- a/go/gen/sift/jobs/v1/jobs.pb.gw.go +++ b/go/gen/sift/jobs/v1/jobs.pb.gw.go @@ -119,6 +119,58 @@ func local_request_JobService_CancelJob_0(ctx context.Context, marshaler runtime } +func request_JobService_RetryJob_0(ctx context.Context, marshaler runtime.Marshaler, client JobServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RetryJobRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["job_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "job_id") + } + + protoReq.JobId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "job_id", err) + } + + msg, err := client.RetryJob(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_JobService_RetryJob_0(ctx context.Context, marshaler runtime.Marshaler, server JobServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RetryJobRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["job_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "job_id") + } + + protoReq.JobId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "job_id", err) + } + + msg, err := server.RetryJob(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterJobServiceHandlerServer registers the http handlers for service JobService to "mux". // UnaryRPC :call JobServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -175,6 +227,31 @@ func RegisterJobServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_JobService_RetryJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.jobs.v1.JobService/RetryJob", runtime.WithHTTPPathPattern("/api/v1/jobs/{job_id}:retry")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_JobService_RetryJob_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_JobService_RetryJob_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -260,6 +337,28 @@ func RegisterJobServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_JobService_RetryJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.jobs.v1.JobService/RetryJob", runtime.WithHTTPPathPattern("/api/v1/jobs/{job_id}:retry")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_JobService_RetryJob_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_JobService_RetryJob_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -267,10 +366,14 @@ var ( pattern_JobService_ListJobs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "jobs"}, "")) pattern_JobService_CancelJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "jobs", "job_id"}, "cancel")) + + pattern_JobService_RetryJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "jobs", "job_id"}, "retry")) ) var ( forward_JobService_ListJobs_0 = runtime.ForwardResponseMessage forward_JobService_CancelJob_0 = runtime.ForwardResponseMessage + + forward_JobService_RetryJob_0 = runtime.ForwardResponseMessage ) diff --git a/go/gen/sift/jobs/v1/jobs_vtproto.pb.go b/go/gen/sift/jobs/v1/jobs_vtproto.pb.go index b01c7d483..823ffab70 100644 --- a/go/gen/sift/jobs/v1/jobs_vtproto.pb.go +++ b/go/gen/sift/jobs/v1/jobs_vtproto.pb.go @@ -9,6 +9,7 @@ import ( fmt "fmt" protohelpers "github.com/planetscale/vtprotobuf/protohelpers" timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" + v1 "github.com/sift-stack/sift/go/gen/sift/exports/v1" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -41,6 +42,8 @@ func (m *Job) CloneVT() *Job { r.CompletedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CompletedDate).CloneVT()) r.JobType = m.JobType r.JobStatus = m.JobStatus + r.JobStatusDetails = m.JobStatusDetails.CloneVT() + r.JobDetails = m.JobDetails.CloneVT() if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -52,6 +55,209 @@ func (m *Job) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *JobStatusDetails) CloneVT() *JobStatusDetails { + if m == nil { + return (*JobStatusDetails)(nil) + } + r := new(JobStatusDetails) + if m.Status != nil { + r.Status = m.Status.(interface { + CloneVT() isJobStatusDetails_Status + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *JobStatusDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *JobStatusDetails_RuleEvaluation) CloneVT() isJobStatusDetails_Status { + if m == nil { + return (*JobStatusDetails_RuleEvaluation)(nil) + } + r := new(JobStatusDetails_RuleEvaluation) + r.RuleEvaluation = m.RuleEvaluation.CloneVT() + return r +} + +func (m *JobStatusDetails_DataImport) CloneVT() isJobStatusDetails_Status { + if m == nil { + return (*JobStatusDetails_DataImport)(nil) + } + r := new(JobStatusDetails_DataImport) + r.DataImport = m.DataImport.CloneVT() + return r +} + +func (m *JobStatusDetails_DataExport) CloneVT() isJobStatusDetails_Status { + if m == nil { + return (*JobStatusDetails_DataExport)(nil) + } + r := new(JobStatusDetails_DataExport) + r.DataExport = m.DataExport.CloneVT() + return r +} + +func (m *RuleEvaluationStatusDetails) CloneVT() *RuleEvaluationStatusDetails { + if m == nil { + return (*RuleEvaluationStatusDetails)(nil) + } + r := new(RuleEvaluationStatusDetails) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RuleEvaluationStatusDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DataImportStatusDetails) CloneVT() *DataImportStatusDetails { + if m == nil { + return (*DataImportStatusDetails)(nil) + } + r := new(DataImportStatusDetails) + r.PointsProcessed = m.PointsProcessed + r.PointsTotal = m.PointsTotal + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *DataImportStatusDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DataExportStatusDetails) CloneVT() *DataExportStatusDetails { + if m == nil { + return (*DataExportStatusDetails)(nil) + } + r := new(DataExportStatusDetails) + r.ErrorMessage = m.ErrorMessage + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *DataExportStatusDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DataExportJobDetails) CloneVT() *DataExportJobDetails { + if m == nil { + return (*DataExportJobDetails)(nil) + } + r := new(DataExportJobDetails) + r.StorageKey = m.StorageKey + if rhs := m.Request; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface{ CloneVT() *v1.ExportDataRequest }); ok { + r.Request = vtpb.CloneVT() + } else { + r.Request = proto.Clone(rhs).(*v1.ExportDataRequest) + } + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *DataExportJobDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *JobDetails) CloneVT() *JobDetails { + if m == nil { + return (*JobDetails)(nil) + } + r := new(JobDetails) + if m.Details != nil { + r.Details = m.Details.(interface{ CloneVT() isJobDetails_Details }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *JobDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *JobDetails_RuleEvaluation) CloneVT() isJobDetails_Details { + if m == nil { + return (*JobDetails_RuleEvaluation)(nil) + } + r := new(JobDetails_RuleEvaluation) + r.RuleEvaluation = m.RuleEvaluation.CloneVT() + return r +} + +func (m *JobDetails_DataImport) CloneVT() isJobDetails_Details { + if m == nil { + return (*JobDetails_DataImport)(nil) + } + r := new(JobDetails_DataImport) + r.DataImport = m.DataImport.CloneVT() + return r +} + +func (m *JobDetails_DataExport) CloneVT() isJobDetails_Details { + if m == nil { + return (*JobDetails_DataExport)(nil) + } + r := new(JobDetails_DataExport) + r.DataExport = m.DataExport.CloneVT() + return r +} + +func (m *RuleEvaluationJobDetails) CloneVT() *RuleEvaluationJobDetails { + if m == nil { + return (*RuleEvaluationJobDetails)(nil) + } + r := new(RuleEvaluationJobDetails) + r.ReportId = m.ReportId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RuleEvaluationJobDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DataImportJobDetails) CloneVT() *DataImportJobDetails { + if m == nil { + return (*DataImportJobDetails)(nil) + } + r := new(DataImportJobDetails) + r.DataImportId = m.DataImportId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *DataImportJobDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *ListJobsRequest) CloneVT() *ListJobsRequest { if m == nil { return (*ListJobsRequest)(nil) @@ -130,6 +336,40 @@ func (m *CancelJobResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *RetryJobRequest) CloneVT() *RetryJobRequest { + if m == nil { + return (*RetryJobRequest)(nil) + } + r := new(RetryJobRequest) + r.JobId = m.JobId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RetryJobRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *RetryJobResponse) CloneVT() *RetryJobResponse { + if m == nil { + return (*RetryJobResponse)(nil) + } + r := new(RetryJobResponse) + r.Job = m.Job.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RetryJobResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (this *Job) EqualVT(that *Job) bool { if this == that { return true @@ -166,6 +406,12 @@ func (this *Job) EqualVT(that *Job) bool { if this.JobStatus != that.JobStatus { return false } + if !this.JobStatusDetails.EqualVT(that.JobStatusDetails) { + return false + } + if !this.JobDetails.EqualVT(that.JobDetails) { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -176,124 +422,494 @@ func (this *Job) EqualMessageVT(thatMsg proto.Message) bool { } return this.EqualVT(that) } -func (this *ListJobsRequest) EqualVT(that *ListJobsRequest) bool { +func (this *JobStatusDetails) EqualVT(that *JobStatusDetails) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.PageSize != that.PageSize { + if this.Status == nil && that.Status != nil { return false + } else if this.Status != nil { + if that.Status == nil { + return false + } + if !this.Status.(interface { + EqualVT(isJobStatusDetails_Status) bool + }).EqualVT(that.Status) { + return false + } } - if this.PageToken != that.PageToken { + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *JobStatusDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*JobStatusDetails) + if !ok { return false } - if this.Filter != that.Filter { + return this.EqualVT(that) +} +func (this *JobStatusDetails_RuleEvaluation) EqualVT(thatIface isJobStatusDetails_Status) bool { + that, ok := thatIface.(*JobStatusDetails_RuleEvaluation) + if !ok { return false } - if this.OrganizationId != that.OrganizationId { + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { return false } - if this.OrderBy != that.OrderBy { + if p, q := this.RuleEvaluation, that.RuleEvaluation; p != q { + if p == nil { + p = &RuleEvaluationStatusDetails{} + } + if q == nil { + q = &RuleEvaluationStatusDetails{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *JobStatusDetails_DataImport) EqualVT(thatIface isJobStatusDetails_Status) bool { + that, ok := thatIface.(*JobStatusDetails_DataImport) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.DataImport, that.DataImport; p != q { + if p == nil { + p = &DataImportStatusDetails{} + } + if q == nil { + q = &DataImportStatusDetails{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *JobStatusDetails_DataExport) EqualVT(thatIface isJobStatusDetails_Status) bool { + that, ok := thatIface.(*JobStatusDetails_DataExport) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.DataExport, that.DataExport; p != q { + if p == nil { + p = &DataExportStatusDetails{} + } + if q == nil { + q = &DataExportStatusDetails{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *RuleEvaluationStatusDetails) EqualVT(that *RuleEvaluationStatusDetails) bool { + if this == that { + return true + } else if this == nil || that == nil { return false } return string(this.unknownFields) == string(that.unknownFields) } -func (this *ListJobsRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*ListJobsRequest) +func (this *RuleEvaluationStatusDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RuleEvaluationStatusDetails) if !ok { return false } return this.EqualVT(that) } -func (this *ListJobsResponse) EqualVT(that *ListJobsResponse) bool { +func (this *DataImportStatusDetails) EqualVT(that *DataImportStatusDetails) bool { if this == that { return true } else if this == nil || that == nil { return false } - if len(this.Jobs) != len(that.Jobs) { + if this.PointsProcessed != that.PointsProcessed { return false } - for i, vx := range this.Jobs { - vy := that.Jobs[i] - if p, q := vx, vy; p != q { - if p == nil { - p = &Job{} - } - if q == nil { - q = &Job{} - } - if !p.EqualVT(q) { - return false - } - } - } - if this.NextPageToken != that.NextPageToken { + if this.PointsTotal != that.PointsTotal { return false } return string(this.unknownFields) == string(that.unknownFields) } -func (this *ListJobsResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*ListJobsResponse) +func (this *DataImportStatusDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*DataImportStatusDetails) if !ok { return false } return this.EqualVT(that) } -func (this *CancelJobRequest) EqualVT(that *CancelJobRequest) bool { +func (this *DataExportStatusDetails) EqualVT(that *DataExportStatusDetails) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.JobId != that.JobId { + if this.ErrorMessage != that.ErrorMessage { return false } return string(this.unknownFields) == string(that.unknownFields) } -func (this *CancelJobRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*CancelJobRequest) +func (this *DataExportStatusDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*DataExportStatusDetails) if !ok { return false } return this.EqualVT(that) } -func (this *CancelJobResponse) EqualVT(that *CancelJobResponse) bool { +func (this *DataExportJobDetails) EqualVT(that *DataExportJobDetails) bool { if this == that { return true } else if this == nil || that == nil { return false } + if equal, ok := interface{}(this.Request).(interface { + EqualVT(*v1.ExportDataRequest) bool + }); ok { + if !equal.EqualVT(that.Request) { + return false + } + } else if !proto.Equal(this.Request, that.Request) { + return false + } + if this.StorageKey != that.StorageKey { + return false + } return string(this.unknownFields) == string(that.unknownFields) } -func (this *CancelJobResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*CancelJobResponse) +func (this *DataExportJobDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*DataExportJobDetails) if !ok { return false } return this.EqualVT(that) } - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -// JobServiceClient is the client API for JobService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type JobServiceClient interface { +func (this *JobDetails) EqualVT(that *JobDetails) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Details == nil && that.Details != nil { + return false + } else if this.Details != nil { + if that.Details == nil { + return false + } + if !this.Details.(interface { + EqualVT(isJobDetails_Details) bool + }).EqualVT(that.Details) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *JobDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*JobDetails) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *JobDetails_RuleEvaluation) EqualVT(thatIface isJobDetails_Details) bool { + that, ok := thatIface.(*JobDetails_RuleEvaluation) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.RuleEvaluation, that.RuleEvaluation; p != q { + if p == nil { + p = &RuleEvaluationJobDetails{} + } + if q == nil { + q = &RuleEvaluationJobDetails{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *JobDetails_DataImport) EqualVT(thatIface isJobDetails_Details) bool { + that, ok := thatIface.(*JobDetails_DataImport) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.DataImport, that.DataImport; p != q { + if p == nil { + p = &DataImportJobDetails{} + } + if q == nil { + q = &DataImportJobDetails{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *JobDetails_DataExport) EqualVT(thatIface isJobDetails_Details) bool { + that, ok := thatIface.(*JobDetails_DataExport) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.DataExport, that.DataExport; p != q { + if p == nil { + p = &DataExportJobDetails{} + } + if q == nil { + q = &DataExportJobDetails{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *RuleEvaluationJobDetails) EqualVT(that *RuleEvaluationJobDetails) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.ReportId != that.ReportId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RuleEvaluationJobDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RuleEvaluationJobDetails) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *DataImportJobDetails) EqualVT(that *DataImportJobDetails) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.DataImportId != that.DataImportId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *DataImportJobDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*DataImportJobDetails) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListJobsRequest) EqualVT(that *ListJobsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListJobsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListJobsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListJobsResponse) EqualVT(that *ListJobsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Jobs) != len(that.Jobs) { + return false + } + for i, vx := range this.Jobs { + vy := that.Jobs[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Job{} + } + if q == nil { + q = &Job{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListJobsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListJobsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CancelJobRequest) EqualVT(that *CancelJobRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.JobId != that.JobId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CancelJobRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CancelJobRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CancelJobResponse) EqualVT(that *CancelJobResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CancelJobResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CancelJobResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *RetryJobRequest) EqualVT(that *RetryJobRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.JobId != that.JobId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RetryJobRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RetryJobRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *RetryJobResponse) EqualVT(that *RetryJobResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Job.EqualVT(that.Job) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RetryJobResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RetryJobResponse) + if !ok { + return false + } + return this.EqualVT(that) +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// JobServiceClient is the client API for JobService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type JobServiceClient interface { // List jobs. ListJobs(ctx context.Context, in *ListJobsRequest, opts ...grpc.CallOption) (*ListJobsResponse, error) // Requests cancellation of an active job. If the job hasn't started yet, it will be cancelled immediately. // Jobs that are already finished, failed, or cancelled are not affected. // Cancelled jobs have implementation-based behavior, but in every case it's valid to cancel a job at any time. CancelJob(ctx context.Context, in *CancelJobRequest, opts ...grpc.CallOption) (*CancelJobResponse, error) + // Requests a retry of a job. + // Jobs that are finished, in progress or in the process of being cancelled are not affected. + RetryJob(ctx context.Context, in *RetryJobRequest, opts ...grpc.CallOption) (*RetryJobResponse, error) } type jobServiceClient struct { @@ -322,6 +938,15 @@ func (c *jobServiceClient) CancelJob(ctx context.Context, in *CancelJobRequest, return out, nil } +func (c *jobServiceClient) RetryJob(ctx context.Context, in *RetryJobRequest, opts ...grpc.CallOption) (*RetryJobResponse, error) { + out := new(RetryJobResponse) + err := c.cc.Invoke(ctx, "/sift.jobs.v1.JobService/RetryJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // JobServiceServer is the server API for JobService service. // All implementations must embed UnimplementedJobServiceServer // for forward compatibility @@ -332,6 +957,9 @@ type JobServiceServer interface { // Jobs that are already finished, failed, or cancelled are not affected. // Cancelled jobs have implementation-based behavior, but in every case it's valid to cancel a job at any time. CancelJob(context.Context, *CancelJobRequest) (*CancelJobResponse, error) + // Requests a retry of a job. + // Jobs that are finished, in progress or in the process of being cancelled are not affected. + RetryJob(context.Context, *RetryJobRequest) (*RetryJobResponse, error) mustEmbedUnimplementedJobServiceServer() } @@ -345,6 +973,9 @@ func (UnimplementedJobServiceServer) ListJobs(context.Context, *ListJobsRequest) func (UnimplementedJobServiceServer) CancelJob(context.Context, *CancelJobRequest) (*CancelJobResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelJob not implemented") } +func (UnimplementedJobServiceServer) RetryJob(context.Context, *RetryJobRequest) (*RetryJobResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RetryJob not implemented") +} func (UnimplementedJobServiceServer) mustEmbedUnimplementedJobServiceServer() {} // UnsafeJobServiceServer may be embedded to opt out of forward compatibility for this service. @@ -394,6 +1025,24 @@ func _JobService_CancelJob_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _JobService_RetryJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RetryJobRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(JobServiceServer).RetryJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.jobs.v1.JobService/RetryJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(JobServiceServer).RetryJob(ctx, req.(*RetryJobRequest)) + } + return interceptor(ctx, in, info, handler) +} + // JobService_ServiceDesc is the grpc.ServiceDesc for JobService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -409,6 +1058,10 @@ var JobService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CancelJob", Handler: _JobService_CancelJob_Handler, }, + { + MethodName: "RetryJob", + Handler: _JobService_RetryJob_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "sift/jobs/v1/jobs.proto", @@ -444,8 +1097,28 @@ func (m *Job) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.JobStatus != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.JobStatus)) + if m.JobDetails != nil { + size, err := m.JobDetails.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x6a + } + if m.JobStatusDetails != nil { + size, err := m.JobStatusDetails.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 + } + if m.JobStatus != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.JobStatus)) i-- dAtA[i] = 0x58 } @@ -525,7 +1198,7 @@ func (m *Job) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ListJobsRequest) MarshalVT() (dAtA []byte, err error) { +func (m *JobStatusDetails) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -538,12 +1211,12 @@ func (m *ListJobsRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListJobsRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *JobStatusDetails) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListJobsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *JobStatusDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -555,43 +1228,109 @@ func (m *ListJobsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrderBy) > 0 { - i -= len(m.OrderBy) - copy(dAtA[i:], m.OrderBy) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + if vtmsg, ok := m.Status.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *JobStatusDetails_RuleEvaluation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *JobStatusDetails_RuleEvaluation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RuleEvaluation != nil { + size, err := m.RuleEvaluation.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x32 + dAtA[i] = 0xa } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + return len(dAtA) - i, nil +} +func (m *JobStatusDetails_DataImport) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *JobStatusDetails_DataImport) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataImport != nil { + size, err := m.DataImport.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x12 } - if len(m.Filter) > 0 { - i -= len(m.Filter) - copy(dAtA[i:], m.Filter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + return len(dAtA) - i, nil +} +func (m *JobStatusDetails_DataExport) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *JobStatusDetails_DataExport) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataExport != nil { + size, err := m.DataExport.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x1a } - if len(m.PageToken) > 0 { - i -= len(m.PageToken) - copy(dAtA[i:], m.PageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) - i-- - dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *RuleEvaluationStatusDetails) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.PageSize != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) - i-- - dAtA[i] = 0x8 + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RuleEvaluationStatusDetails) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RuleEvaluationStatusDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } return len(dAtA) - i, nil } -func (m *ListJobsResponse) MarshalVT() (dAtA []byte, err error) { +func (m *DataImportStatusDetails) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -604,12 +1343,12 @@ func (m *ListJobsResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListJobsResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *DataImportStatusDetails) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListJobsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *DataImportStatusDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -621,29 +1360,20 @@ func (m *ListJobsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.NextPageToken) > 0 { - i -= len(m.NextPageToken) - copy(dAtA[i:], m.NextPageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + if m.PointsTotal != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PointsTotal)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if len(m.Jobs) > 0 { - for iNdEx := len(m.Jobs) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Jobs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } + if m.PointsProcessed != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PointsProcessed)) + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *CancelJobRequest) MarshalVT() (dAtA []byte, err error) { +func (m *DataExportStatusDetails) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -656,12 +1386,12 @@ func (m *CancelJobRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CancelJobRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *DataExportStatusDetails) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *CancelJobRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *DataExportStatusDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -673,17 +1403,17 @@ func (m *CancelJobRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.JobId) > 0 { - i -= len(m.JobId) - copy(dAtA[i:], m.JobId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.JobId))) + if len(m.ErrorMessage) > 0 { + i -= len(m.ErrorMessage) + copy(dAtA[i:], m.ErrorMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ErrorMessage))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *CancelJobResponse) MarshalVT() (dAtA []byte, err error) { +func (m *DataExportJobDetails) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -696,12 +1426,12 @@ func (m *CancelJobResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CancelJobResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *DataExportJobDetails) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *CancelJobResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *DataExportJobDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -713,28 +1443,57 @@ func (m *CancelJobResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.StorageKey) > 0 { + i -= len(m.StorageKey) + copy(dAtA[i:], m.StorageKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.StorageKey))) + i-- + dAtA[i] = 0x12 + } + if m.Request != nil { + if vtmsg, ok := interface{}(m.Request).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Request) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *Job) MarshalVTStrict() (dAtA []byte, err error) { +func (m *JobDetails) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Job) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *JobDetails) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Job) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *JobDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -746,106 +1505,94 @@ func (m *Job) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.JobStatus != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.JobStatus)) - i-- - dAtA[i] = 0x58 - } - if m.JobType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.JobType)) - i-- - dAtA[i] = 0x50 - } - if m.CompletedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CompletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if vtmsg, ok := m.Details.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x4a } - if m.StartedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.StartedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + return len(dAtA) - i, nil +} + +func (m *JobDetails_RuleEvaluation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *JobDetails_RuleEvaluation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RuleEvaluation != nil { + size, err := m.RuleEvaluation.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x42 + dAtA[i] = 0xa } - if m.ModifiedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + return len(dAtA) - i, nil +} +func (m *JobDetails_DataImport) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *JobDetails_DataImport) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataImport != nil { + size, err := m.DataImport.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x3a + dAtA[i] = 0x12 } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + return len(dAtA) - i, nil +} +func (m *JobDetails_DataExport) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *JobDetails_DataExport) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataExport != nil { + size, err := m.DataExport.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x32 - } - if len(m.ModifiedByUserId) > 0 { - i -= len(m.ModifiedByUserId) - copy(dAtA[i:], m.ModifiedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) - i-- - dAtA[i] = 0x2a - } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) - i-- - dAtA[i] = 0x22 - } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) - i-- - dAtA[i] = 0x12 - } - if len(m.JobId) > 0 { - i -= len(m.JobId) - copy(dAtA[i:], m.JobId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.JobId))) - i-- - dAtA[i] = 0xa + dAtA[i] = 0x1a } return len(dAtA) - i, nil } - -func (m *ListJobsRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *RuleEvaluationJobDetails) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *ListJobsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RuleEvaluationJobDetails) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListJobsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *RuleEvaluationJobDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -857,10 +1604,90 @@ func (m *ListJobsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrderBy) > 0 { - i -= len(m.OrderBy) - copy(dAtA[i:], m.OrderBy) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + if len(m.ReportId) > 0 { + i -= len(m.ReportId) + copy(dAtA[i:], m.ReportId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ReportId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DataImportJobDetails) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DataImportJobDetails) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DataImportJobDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.DataImportId) > 0 { + i -= len(m.DataImportId) + copy(dAtA[i:], m.DataImportId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DataImportId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListJobsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListJobsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListJobsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) i-- dAtA[i] = 0x32 } @@ -893,25 +1720,25 @@ func (m *ListJobsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *ListJobsResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ListJobsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *ListJobsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ListJobsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListJobsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ListJobsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -932,7 +1759,7 @@ func (m *ListJobsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error } if len(m.Jobs) > 0 { for iNdEx := len(m.Jobs) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Jobs[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + size, err := m.Jobs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -945,25 +1772,25 @@ func (m *ListJobsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *CancelJobRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *CancelJobRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *CancelJobRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *CancelJobRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *CancelJobRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *CancelJobRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -985,25 +1812,25 @@ func (m *CancelJobRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *CancelJobResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *CancelJobResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *CancelJobResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *CancelJobResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *CancelJobResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *CancelJobResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1018,128 +1845,3238 @@ func (m *CancelJobResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *Job) SizeVT() (n int) { +func (m *RetryJobRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RetryJobRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RetryJobRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.JobId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - l = len(m.OrganizationId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.JobId) > 0 { + i -= len(m.JobId) + copy(dAtA[i:], m.JobId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.JobId))) + i-- + dAtA[i] = 0xa } - l = len(m.CreatedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *RetryJobResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - l = len(m.ModifiedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err } - if m.CreatedDate != nil { - l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return dAtA[:n], nil +} + +func (m *RetryJobResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RetryJobResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil } - if m.ModifiedDate != nil { - l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.StartedDate != nil { - l = (*timestamppb1.Timestamp)(m.StartedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.Job != nil { + size, err := m.Job.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - if m.CompletedDate != nil { - l = (*timestamppb1.Timestamp)(m.CompletedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *Job) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.JobType != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.JobType)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Job) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Job) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.JobDetails != nil { + size, err := m.JobDetails.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x6a + } + if m.JobStatusDetails != nil { + size, err := m.JobStatusDetails.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 } if m.JobStatus != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.JobStatus)) + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.JobStatus)) + i-- + dAtA[i] = 0x58 + } + if m.JobType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.JobType)) + i-- + dAtA[i] = 0x50 + } + if m.CompletedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CompletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.StartedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.StartedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x2a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x22 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x12 + } + if len(m.JobId) > 0 { + i -= len(m.JobId) + copy(dAtA[i:], m.JobId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.JobId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *JobStatusDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *JobStatusDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobStatusDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Status.(*JobStatusDetails_DataExport); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Status.(*JobStatusDetails_DataImport); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Status.(*JobStatusDetails_RuleEvaluation); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *JobStatusDetails_RuleEvaluation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobStatusDetails_RuleEvaluation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RuleEvaluation != nil { + size, err := m.RuleEvaluation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *JobStatusDetails_DataImport) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobStatusDetails_DataImport) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataImport != nil { + size, err := m.DataImport.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *JobStatusDetails_DataExport) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobStatusDetails_DataExport) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataExport != nil { + size, err := m.DataExport.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *RuleEvaluationStatusDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RuleEvaluationStatusDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RuleEvaluationStatusDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *DataImportStatusDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DataImportStatusDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DataImportStatusDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PointsTotal != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PointsTotal)) + i-- + dAtA[i] = 0x10 + } + if m.PointsProcessed != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PointsProcessed)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DataExportStatusDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DataExportStatusDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DataExportStatusDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ErrorMessage) > 0 { + i -= len(m.ErrorMessage) + copy(dAtA[i:], m.ErrorMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ErrorMessage))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DataExportJobDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DataExportJobDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DataExportJobDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.StorageKey) > 0 { + i -= len(m.StorageKey) + copy(dAtA[i:], m.StorageKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.StorageKey))) + i-- + dAtA[i] = 0x12 + } + if m.Request != nil { + if vtmsg, ok := interface{}(m.Request).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Request) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *JobDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *JobDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Details.(*JobDetails_DataExport); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Details.(*JobDetails_DataImport); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Details.(*JobDetails_RuleEvaluation); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *JobDetails_RuleEvaluation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobDetails_RuleEvaluation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RuleEvaluation != nil { + size, err := m.RuleEvaluation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *JobDetails_DataImport) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobDetails_DataImport) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataImport != nil { + size, err := m.DataImport.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *JobDetails_DataExport) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *JobDetails_DataExport) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DataExport != nil { + size, err := m.DataExport.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *RuleEvaluationJobDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RuleEvaluationJobDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RuleEvaluationJobDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ReportId) > 0 { + i -= len(m.ReportId) + copy(dAtA[i:], m.ReportId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ReportId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DataImportJobDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DataImportJobDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DataImportJobDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.DataImportId) > 0 { + i -= len(m.DataImportId) + copy(dAtA[i:], m.DataImportId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DataImportId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListJobsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListJobsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListJobsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x32 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListJobsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListJobsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListJobsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Jobs) > 0 { + for iNdEx := len(m.Jobs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Jobs[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CancelJobRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CancelJobRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CancelJobRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.JobId) > 0 { + i -= len(m.JobId) + copy(dAtA[i:], m.JobId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.JobId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CancelJobResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CancelJobResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CancelJobResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *RetryJobRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RetryJobRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RetryJobRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.JobId) > 0 { + i -= len(m.JobId) + copy(dAtA[i:], m.JobId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.JobId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RetryJobResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RetryJobResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RetryJobResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Job != nil { + size, err := m.Job.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Job) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.JobId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.StartedDate != nil { + l = (*timestamppb1.Timestamp)(m.StartedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CompletedDate != nil { + l = (*timestamppb1.Timestamp)(m.CompletedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.JobType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.JobType)) + } + if m.JobStatus != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.JobStatus)) + } + if m.JobStatusDetails != nil { + l = m.JobStatusDetails.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.JobDetails != nil { + l = m.JobDetails.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *JobStatusDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Status.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *JobStatusDetails_RuleEvaluation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RuleEvaluation != nil { + l = m.RuleEvaluation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *JobStatusDetails_DataImport) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DataImport != nil { + l = m.DataImport.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *JobStatusDetails_DataExport) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DataExport != nil { + l = m.DataExport.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *RuleEvaluationStatusDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *DataImportStatusDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PointsProcessed != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PointsProcessed)) + } + if m.PointsTotal != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PointsTotal)) + } + n += len(m.unknownFields) + return n +} + +func (m *DataExportStatusDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ErrorMessage) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *DataExportJobDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Request != nil { + if size, ok := interface{}(m.Request).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Request) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.StorageKey) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *JobDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Details.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *JobDetails_RuleEvaluation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RuleEvaluation != nil { + l = m.RuleEvaluation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *JobDetails_DataImport) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DataImport != nil { + l = m.DataImport.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *JobDetails_DataExport) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DataExport != nil { + l = m.DataExport.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *RuleEvaluationJobDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ReportId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *DataImportJobDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DataImportId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListJobsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListJobsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Jobs) > 0 { + for _, e := range m.Jobs { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CancelJobRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.JobId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CancelJobResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *RetryJobRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.JobId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *RetryJobResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Job != nil { + l = m.Job.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *Job) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Job: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Job: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.JobId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartedDate == nil { + m.StartedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CompletedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CompletedDate == nil { + m.CompletedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CompletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field JobType", wireType) + } + m.JobType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.JobType |= JobType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field JobStatus", wireType) + } + m.JobStatus = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.JobStatus |= JobStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobStatusDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.JobStatusDetails == nil { + m.JobStatusDetails = &JobStatusDetails{} + } + if err := m.JobStatusDetails.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.JobDetails == nil { + m.JobDetails = &JobDetails{} + } + if err := m.JobDetails.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *JobStatusDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobStatusDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleEvaluation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Status.(*JobStatusDetails_RuleEvaluation); ok { + if err := oneof.RuleEvaluation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RuleEvaluationStatusDetails{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Status = &JobStatusDetails_RuleEvaluation{RuleEvaluation: v} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataImport", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Status.(*JobStatusDetails_DataImport); ok { + if err := oneof.DataImport.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataImportStatusDetails{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Status = &JobStatusDetails_DataImport{DataImport: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataExport", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Status.(*JobStatusDetails_DataExport); ok { + if err := oneof.DataExport.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataExportStatusDetails{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Status = &JobStatusDetails_DataExport{DataExport: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RuleEvaluationStatusDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RuleEvaluationStatusDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RuleEvaluationStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DataImportStatusDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DataImportStatusDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DataImportStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PointsProcessed", wireType) + } + m.PointsProcessed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PointsProcessed |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PointsTotal", wireType) + } + m.PointsTotal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PointsTotal |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DataExportStatusDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DataExportStatusDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DataExportStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ErrorMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DataExportJobDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DataExportJobDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DataExportJobDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Request == nil { + m.Request = &v1.ExportDataRequest{} + } + if unmarshal, ok := interface{}(m.Request).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Request); err != nil { + return err + } + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorageKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StorageKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *JobDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleEvaluation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Details.(*JobDetails_RuleEvaluation); ok { + if err := oneof.RuleEvaluation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RuleEvaluationJobDetails{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &JobDetails_RuleEvaluation{RuleEvaluation: v} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataImport", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Details.(*JobDetails_DataImport); ok { + if err := oneof.DataImport.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataImportJobDetails{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &JobDetails_DataImport{DataImport: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataExport", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Details.(*JobDetails_DataExport); ok { + if err := oneof.DataExport.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataExportJobDetails{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &JobDetails_DataExport{DataExport: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RuleEvaluationJobDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RuleEvaluationJobDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RuleEvaluationJobDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReportId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DataImportJobDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DataImportJobDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DataImportJobDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataImportId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataImportId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListJobsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListJobsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListJobsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListJobsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListJobsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListJobsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Jobs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Jobs = append(m.Jobs, &Job{}) + if err := m.Jobs[len(m.Jobs)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CancelJobRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CancelJobRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CancelJobRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.JobId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CancelJobResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CancelJobResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CancelJobResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } } - n += len(m.unknownFields) - return n -} -func (m *ListJobsRequest) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.PageSize != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) - } - l = len(m.PageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Filter) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.OrganizationId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.OrderBy) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - n += len(m.unknownFields) - return n + return nil } - -func (m *ListJobsResponse) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Jobs) > 0 { - for _, e := range m.Jobs { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) +func (m *RetryJobRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RetryJobRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RetryJobRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.JobId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy } } - l = len(m.NextPageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n -} -func (m *CancelJobRequest) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.JobId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - n += len(m.unknownFields) - return n + return nil } +func (m *RetryJobResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RetryJobResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RetryJobResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Job", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Job == nil { + m.Job = &Job{} + } + if err := m.Job.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } -func (m *CancelJobResponse) SizeVT() (n int) { - if m == nil { - return 0 + if iNdEx > l { + return io.ErrUnexpectedEOF } - var l int - _ = l - n += len(m.unknownFields) - return n + return nil } - -func (m *Job) UnmarshalVT(dAtA []byte) error { +func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1198,7 +5135,11 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.JobId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.JobId = stringValue iNdEx = postIndex case 2: if wireType != 2 { @@ -1230,7 +5171,11 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue iNdEx = postIndex case 4: if wireType != 2 { @@ -1262,7 +5207,11 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue iNdEx = postIndex case 5: if wireType != 2 { @@ -1294,7 +5243,11 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue iNdEx = postIndex case 6: if wireType != 2 { @@ -1328,7 +5281,7 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if m.CreatedDate == nil { m.CreatedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1364,7 +5317,7 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if m.ModifiedDate == nil { m.ModifiedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1400,7 +5353,7 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if m.StartedDate == nil { m.StartedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.StartedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.StartedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1436,7 +5389,7 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { if m.CompletedDate == nil { m.CompletedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.CompletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.CompletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1478,6 +5431,78 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { break } } + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobStatusDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.JobStatusDetails == nil { + m.JobStatusDetails = &JobStatusDetails{} + } + if err := m.JobStatusDetails.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.JobDetails == nil { + m.JobDetails = &JobDetails{} + } + if err := m.JobDetails.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -1500,7 +5525,7 @@ func (m *Job) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListJobsRequest) UnmarshalVT(dAtA []byte) error { +func (m *JobStatusDetails) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1523,36 +5548,17 @@ func (m *ListJobsRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListJobsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: JobStatusDetails: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListJobsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: JobStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) - } - m.PageSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleEvaluation", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -1562,61 +5568,38 @@ func (m *ListJobsRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if oneof, ok := m.Status.(*JobStatusDetails_RuleEvaluation); ok { + if err := oneof.RuleEvaluation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break + } else { + v := &RuleEvaluationStatusDetails{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } + m.Status = &JobStatusDetails_RuleEvaluation{RuleEvaluation: v} } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Filter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DataImport", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -1626,29 +5609,38 @@ func (m *ListJobsRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + if oneof, ok := m.Status.(*JobStatusDetails_DataImport); ok { + if err := oneof.DataImport.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataImportStatusDetails{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Status = &JobStatusDetails_DataImport{DataImport: v} + } iNdEx = postIndex - case 6: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DataExport", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -1658,23 +5650,32 @@ func (m *ListJobsRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderBy = string(dAtA[iNdEx:postIndex]) + if oneof, ok := m.Status.(*JobStatusDetails_DataExport); ok { + if err := oneof.DataExport.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataExportStatusDetails{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Status = &JobStatusDetails_DataExport{DataExport: v} + } iNdEx = postIndex default: iNdEx = preIndex @@ -1698,7 +5699,7 @@ func (m *ListJobsRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListJobsResponse) UnmarshalVT(dAtA []byte) error { +func (m *RuleEvaluationStatusDetails) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1721,78 +5722,12 @@ func (m *ListJobsResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListJobsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: RuleEvaluationStatusDetails: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListJobsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RuleEvaluationStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Jobs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Jobs = append(m.Jobs, &Job{}) - if err := m.Jobs[len(m.Jobs)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NextPageToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -1815,7 +5750,7 @@ func (m *ListJobsResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CancelJobRequest) UnmarshalVT(dAtA []byte) error { +func (m *DataImportStatusDetails) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1838,17 +5773,17 @@ func (m *CancelJobRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CancelJobRequest: wiretype end group for non-group") + return fmt.Errorf("proto: DataImportStatusDetails: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CancelJobRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DataImportStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PointsProcessed", wireType) } - var stringLen uint64 + m.PointsProcessed = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -1858,24 +5793,30 @@ func (m *CancelJobRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.PointsProcessed |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PointsTotal", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + m.PointsTotal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PointsTotal |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - m.JobId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -1898,7 +5839,7 @@ func (m *CancelJobRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CancelJobResponse) UnmarshalVT(dAtA []byte) error { +func (m *DataExportStatusDetails) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1921,12 +5862,48 @@ func (m *CancelJobResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CancelJobResponse: wiretype end group for non-group") + return fmt.Errorf("proto: DataExportStatusDetails: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CancelJobResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DataExportStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ErrorMessage = stringValue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -1949,7 +5926,7 @@ func (m *CancelJobResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *DataExportJobDetails) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1972,17 +5949,17 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Job: wiretype end group for non-group") + return fmt.Errorf("proto: DataExportJobDetails: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Job: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DataExportJobDetails: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -1992,31 +5969,39 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.Request == nil { + m.Request = &v1.ExportDataRequest{} + } + if unmarshal, ok := interface{}(m.Request).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Request); err != nil { + return err + } } - m.JobId = stringValue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StorageKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2048,49 +6033,64 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.OrganizationId = stringValue + m.StorageKey = stringValue iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *JobDetails) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - m.CreatedByUserId = stringValue - iNdEx = postIndex - case 5: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleEvaluation", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -2100,31 +6100,36 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Details.(*JobDetails_RuleEvaluation); ok { + if err := oneof.RuleEvaluation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RuleEvaluationJobDetails{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &JobDetails_RuleEvaluation{RuleEvaluation: v} } - m.ModifiedByUserId = stringValue iNdEx = postIndex - case 6: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DataImport", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2151,16 +6156,21 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if oneof, ok := m.Details.(*JobDetails_DataImport); ok { + if err := oneof.DataImport.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataImportJobDetails{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &JobDetails_DataImport{DataImport: v} } iNdEx = postIndex - case 7: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DataExport", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2187,18 +6197,74 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} + if oneof, ok := m.Details.(*JobDetails_DataExport); ok { + if err := oneof.DataExport.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DataExportJobDetails{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &JobDetails_DataExport{DataExport: v} } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { return err } - iNdEx = postIndex - case 8: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RuleEvaluationJobDetails) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RuleEvaluationJobDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RuleEvaluationJobDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -2208,33 +6274,84 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ReportId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DataImportJobDetails) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if m.StartedDate == nil { - m.StartedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 9: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DataImportJobDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DataImportJobDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CompletedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DataImportId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -2244,66 +6361,28 @@ func (m *Job) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.CompletedDate == nil { - m.CompletedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CompletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.DataImportId = stringValue iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field JobType", wireType) - } - m.JobType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.JobType |= JobType(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field JobStatus", wireType) - } - m.JobStatus = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.JobStatus |= JobStatus(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -2799,3 +6878,177 @@ func (m *CancelJobResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } +func (m *RetryJobRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RetryJobRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RetryJobRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.JobId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RetryJobResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RetryJobResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RetryJobResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Job", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Job == nil { + m.Job = &Job{} + } + if err := m.Job.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/go/gen/sift/metadata/v1/metadata.pb.go b/go/gen/sift/metadata/v1/metadata.pb.go index f44f871e6..ea14b9fe6 100644 --- a/go/gen/sift/metadata/v1/metadata.pb.go +++ b/go/gen/sift/metadata/v1/metadata.pb.go @@ -87,6 +87,8 @@ type MetadataKey struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Type MetadataKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=sift.metadata.v1.MetadataKeyType" json:"type,omitempty"` ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=archived_date,json=archivedDate,proto3" json:"archived_date,omitempty"` + // Whether the metadata key is archived. This is inferred from whether archived_date is set. + IsArchived bool `protobuf:"varint,4,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *MetadataKey) Reset() { @@ -142,6 +144,13 @@ func (x *MetadataKey) GetArchivedDate() *timestamppb.Timestamp { return nil } +func (x *MetadataKey) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type MetadataValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -155,6 +164,8 @@ type MetadataValue struct { // *MetadataValue_BooleanValue Value isMetadataValue_Value `protobuf_oneof:"value"` ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=archived_date,json=archivedDate,proto3" json:"archived_date,omitempty"` + // Whether the metadata value is archived. This is inferred from whether archived_date is set. + IsArchived bool `protobuf:"varint,6,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *MetadataValue) Reset() { @@ -231,6 +242,13 @@ func (x *MetadataValue) GetArchivedDate() *timestamppb.Timestamp { return nil } +func (x *MetadataValue) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type isMetadataValue_Value interface { isMetadataValue_Value() } @@ -462,7 +480,7 @@ type ListMetadataKeysRequest struct { PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `name`. + // `name`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -606,7 +624,7 @@ type ListMetadataValuesRequest struct { PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `value_string`, `value_number`, and `value_boolean`. + // `value_string`, `value_number`, `value_boolean`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -1484,7 +1502,7 @@ var file_sift_metadata_v1_metadata_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x6f, 0x74, 0x6f, 0x22, 0xce, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, @@ -1494,337 +1512,342 @@ var file_sift_metadata_v1_metadata_proto_rawDesc = []byte{ 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x85, - 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x34, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, - 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x61, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, + 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, + 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x22, 0xab, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, + 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0c, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, + 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, + 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, + 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, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, + 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x61, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, + 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x4b, 0x65, 0x79, 0x22, 0x62, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x22, 0x62, 0x0a, 0x19, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x22, 0x69, 0x0a, - 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6a, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x22, 0x69, 0x0a, 0x1a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x42, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6a, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, + 0x86, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, + 0x65, 0x79, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xcf, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x65, 0x0a, 0x1a, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, + 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, + 0x79, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x6d, 0x0a, 0x1c, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x22, 0x1f, 0x0a, 0x1d, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x97, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x75, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x75, 0x6e, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x55, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x1e, + 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, + 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x4b, 0x65, 0x79, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, - 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xcf, 0x01, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, - 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x2f, 0x0a, - 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8e, - 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, - 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, - 0x65, 0x0a, 0x1a, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x21, 0x0a, + 0x1f, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x64, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x1c, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x2e, 0x0a, 0x10, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, - 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, - 0x1f, 0x0a, 0x1d, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x6f, 0x0a, 0x1e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, + 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x22, 0x21, 0x0a, 0x1f, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, - 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8d, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x01, 0x0a, - 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8d, 0x01, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, - 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x8f, 0x01, 0x0a, - 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4b, 0x45, 0x59, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, - 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4b, 0x45, - 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x12, - 0x1d, 0x0a, 0x19, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4b, 0x45, 0x59, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x03, 0x32, 0xac, - 0x11, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x8f, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, + 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4b, 0x45, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1c, 0x0a, + 0x18, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x4d, + 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x03, 0x32, 0xac, 0x11, 0x0a, 0x0f, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbc, + 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4e, 0x92, 0x41, 0x2b, 0x12, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x1a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, - 0x73, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, - 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x10, 0x4c, - 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x92, 0x41, 0x27, 0x12, 0x10, 0x4c, 0x69, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x13, 0x4c, - 0x69, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, - 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x12, - 0xbe, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, + 0x41, 0x2b, 0x12, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x4b, 0x65, 0x79, 0x1a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x96, 0x01, + 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4d, 0x92, 0x41, 0x2b, 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x15, 0x4c, 0x69, 0x73, 0x74, - 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0xcc, 0x01, 0x0a, 0x13, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x92, 0x41, 0x2d, 0x12, 0x13, 0x41, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x1a, - 0x16, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, - 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, - 0xd8, 0x01, 0x0a, 0x15, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x31, 0x12, - 0x15, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x18, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x15, 0x55, - 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x31, 0x12, 0x15, 0x55, 0x6e, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, - 0x73, 0x1a, 0x18, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x47, 0x92, 0x41, 0x27, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x20, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x92, + 0x41, 0x2b, 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xcc, 0x01, 0x0a, + 0x13, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x58, 0x92, 0x41, 0x2d, 0x12, 0x13, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x16, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, + 0x79, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, + 0x65, 0x79, 0x73, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x15, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x92, 0x41, 0x35, 0x12, 0x17, 0x55, 0x6e, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x1a, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xc6, 0x01, 0x0a, - 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, - 0x65, 0x79, 0x73, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x31, 0x12, 0x15, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x1a, 0x18, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2f, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x15, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, - 0x92, 0x41, 0x2b, 0x12, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xd2, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2d, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5e, 0x92, 0x41, 0x31, 0x12, 0x15, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x18, 0x55, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, + 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x92, - 0x41, 0x2f, 0x12, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x11, 0x4c, - 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, + 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x64, 0x92, 0x41, 0x35, 0x12, 0x17, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x1a, 0x1a, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2f, 0x75, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xc6, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, + 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, + 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, + 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, + 0x65, 0x79, 0x73, 0x1a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, + 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0xd2, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x92, 0x41, 0x2f, 0x12, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x2d, 0x12, 0x11, - 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x1a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x20, 0x6b, 0x65, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x2d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x42, 0xdd, 0x01, - 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, - 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x4d, 0x58, 0xaa, 0x02, 0x10, 0x53, - 0x69, 0x66, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x14, 0x12, 0x12, 0x0a, 0x10, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x2d, 0x12, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x4c, + 0x69, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, + 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x6b, 0x65, 0x79, 0x2d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x42, 0xdd, 0x01, 0x0a, 0x14, 0x63, 0x6f, + 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x42, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x4d, 0x58, 0xaa, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x53, 0x69, + 0x66, 0x74, 0x5c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, + 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x3a, + 0x56, 0x31, 0x92, 0x41, 0x14, 0x12, 0x12, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/go/gen/sift/metadata/v1/metadata_vtproto.pb.go b/go/gen/sift/metadata/v1/metadata_vtproto.pb.go index f6b13eee1..b730dfab0 100644 --- a/go/gen/sift/metadata/v1/metadata_vtproto.pb.go +++ b/go/gen/sift/metadata/v1/metadata_vtproto.pb.go @@ -36,6 +36,7 @@ func (m *MetadataKey) CloneVT() *MetadataKey { r.Name = m.Name r.Type = m.Type r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.IsArchived = m.IsArchived if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -54,6 +55,7 @@ func (m *MetadataValue) CloneVT() *MetadataValue { r := new(MetadataValue) r.Key = m.Key.CloneVT() r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.IsArchived = m.IsArchived if m.Value != nil { r.Value = m.Value.(interface{ CloneVT() isMetadataValue_Value }).CloneVT() } @@ -565,6 +567,9 @@ func (this *MetadataKey) EqualVT(that *MetadataKey) bool { if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { return false } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -599,6 +604,9 @@ func (this *MetadataValue) EqualVT(that *MetadataValue) bool { if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { return false } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1757,6 +1765,16 @@ func (m *MetadataKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } if m.ArchivedDate != nil { size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -1821,6 +1839,16 @@ func (m *MetadataValue) MarshalToSizedBufferVT(dAtA []byte) (int, error) { } i -= size } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } if m.ArchivedDate != nil { size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -2965,6 +2993,16 @@ func (m *MetadataKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } if m.ArchivedDate != nil { size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { @@ -3020,6 +3058,16 @@ func (m *MetadataValue) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } if m.ArchivedDate != nil { size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { @@ -4172,6 +4220,9 @@ func (m *MetadataKey) SizeVT() (n int) { l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.IsArchived { + n += 2 + } n += len(m.unknownFields) return n } @@ -4193,6 +4244,9 @@ func (m *MetadataValue) SizeVT() (n int) { l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.IsArchived { + n += 2 + } n += len(m.unknownFields) return n } @@ -4717,6 +4771,26 @@ func (m *MetadataKey) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -4904,6 +4978,26 @@ func (m *MetadataValue) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -7262,6 +7356,26 @@ func (m *MetadataKey) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -7453,6 +7567,26 @@ func (m *MetadataValue) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/notifications/v1/notifications.pb.go b/go/gen/sift/notifications/v1/notifications.pb.go index 05c6c6b7b..efeb8f180 100644 --- a/go/gen/sift/notifications/v1/notifications.pb.go +++ b/go/gen/sift/notifications/v1/notifications.pb.go @@ -34,6 +34,7 @@ const ( NotificationKind_NOTIFICATION_KIND_CONDITION_TRIGGERED NotificationKind = 4 NotificationKind_NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED NotificationKind = 5 NotificationKind_NOTIFICATION_KIND_REPORT_READY NotificationKind = 6 + NotificationKind_NOTIFICATION_KIND_DATA_EXPORT_READY NotificationKind = 7 ) // Enum value maps for NotificationKind. @@ -46,6 +47,7 @@ var ( 4: "NOTIFICATION_KIND_CONDITION_TRIGGERED", 5: "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED", 6: "NOTIFICATION_KIND_REPORT_READY", + 7: "NOTIFICATION_KIND_DATA_EXPORT_READY", } NotificationKind_value = map[string]int32{ "NOTIFICATION_KIND_UNSPECIFIED": 0, @@ -55,6 +57,7 @@ var ( "NOTIFICATION_KIND_CONDITION_TRIGGERED": 4, "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED": 5, "NOTIFICATION_KIND_REPORT_READY": 6, + "NOTIFICATION_KIND_DATA_EXPORT_READY": 7, } ) @@ -604,7 +607,7 @@ var file_sift_notifications_v1_notifications_proto_rawDesc = []byte{ 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0xb2, 0x02, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0xdb, 0x02, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, @@ -623,65 +626,68 @@ var file_sift_notifications_v1_notifications_proto_rawDesc = []byte{ 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x06, 0x32, 0x85, 0x05, 0x0a, - 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, + 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x59, 0x10, 0x07, 0x32, 0x85, 0x05, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xde, 0x01, + 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, 0x41, 0x46, 0x12, 0x11, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x31, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xc6, + 0x02, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, - 0x41, 0x46, 0x12, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x31, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xc6, 0x02, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x01, 0x92, 0x41, 0x88, 0x01, 0x12, 0x18, 0x42, 0x61, 0x74, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, - 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x44, - 0x92, 0x41, 0x41, 0x12, 0x3f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x2d, 0x61, 0x70, 0x70, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0x89, 0x02, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x42, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x47, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, - 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, - 0x31, 0x3b, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x53, 0x4e, 0x58, 0xaa, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x53, 0x69, - 0x66, 0x74, 0x3a, 0x3a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x18, 0x12, 0x16, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x01, 0x92, + 0x41, 0x88, 0x01, 0x12, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x6c, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, + 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, + 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x60, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x26, 0x3a, 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x44, 0x92, 0x41, 0x41, 0x12, 0x3f, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, + 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x2d, 0x61, 0x70, 0x70, 0x20, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0x89, 0x02, + 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x12, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x47, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, + 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x4e, 0x58, + 0xaa, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x21, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, + 0x18, 0x12, 0x16, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/go/gen/sift/options/v1/safe_to_log.pb.go b/go/gen/sift/options/v1/safe_to_log.pb.go new file mode 100644 index 000000000..2e4de0b18 --- /dev/null +++ b/go/gen/sift/options/v1/safe_to_log.pb.go @@ -0,0 +1,103 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: sift/options/v1/safe_to_log.proto + +package optionsv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_sift_options_v1_safe_to_log_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 70000, + Name: "sift.options.v1.safe_to_log", + Tag: "varint,70000,opt,name=safe_to_log", + Filename: "sift/options/v1/safe_to_log.proto", + }, +} + +// Extension fields to descriptorpb.MessageOptions. +var ( + // optional bool safe_to_log = 70000; + E_SafeToLog = &file_sift_options_v1_safe_to_log_proto_extTypes[0] +) + +var File_sift_options_v1_safe_to_log_proto protoreflect.FileDescriptor + +var file_sift_options_v1_safe_to_log_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x41, 0x0a, 0x0b, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, + 0x6f, 0x5f, 0x6c, 0x6f, 0x67, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0xa2, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x73, 0x61, 0x66, 0x65, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x42, 0xc0, 0x01, 0x0a, 0x13, 0x63, 0x6f, + 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x42, 0x0e, 0x53, 0x61, 0x66, 0x65, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x53, 0x4f, 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, + 0x3a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var file_sift_options_v1_safe_to_log_proto_goTypes = []interface{}{ + (*descriptorpb.MessageOptions)(nil), // 0: google.protobuf.MessageOptions +} +var file_sift_options_v1_safe_to_log_proto_depIdxs = []int32{ + 0, // 0: sift.options.v1.safe_to_log:extendee -> google.protobuf.MessageOptions + 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 + 0, // [0:1] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_sift_options_v1_safe_to_log_proto_init() } +func file_sift_options_v1_safe_to_log_proto_init() { + if File_sift_options_v1_safe_to_log_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_sift_options_v1_safe_to_log_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_sift_options_v1_safe_to_log_proto_goTypes, + DependencyIndexes: file_sift_options_v1_safe_to_log_proto_depIdxs, + ExtensionInfos: file_sift_options_v1_safe_to_log_proto_extTypes, + }.Build() + File_sift_options_v1_safe_to_log_proto = out.File + file_sift_options_v1_safe_to_log_proto_rawDesc = nil + file_sift_options_v1_safe_to_log_proto_goTypes = nil + file_sift_options_v1_safe_to_log_proto_depIdxs = nil +} diff --git a/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.go b/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.go index 6d7d35053..3a1f0726c 100644 --- a/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.go +++ b/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.go @@ -816,9 +816,9 @@ var file_sift_protobuf_descriptors_v2_protobuf_descriptors_proto_rawDesc = []byt 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x8f, 0x0d, 0x0a, 0x19, 0x50, 0x72, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x95, 0x0d, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbd, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x50, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc0, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x3a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, @@ -827,7 +827,7 @@ var file_sift_protobuf_descriptors_v2_protobuf_descriptors_proto_rawDesc = []byt 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x01, 0x92, 0x41, 0x7f, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x92, 0x41, 0x7f, 0x12, 0x15, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x1a, 0x33, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x74, @@ -836,113 +836,113 @@ var file_sift_protobuf_descriptors_v2_protobuf_descriptors_proto_rawDesc = []byt 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x73, 0x3a, 0x61, 0x64, 0x64, 0x12, 0xb9, 0x03, 0x0a, 0x24, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x49, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4a, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x01, 0x92, 0x41, 0xbd, 0x01, 0x12, 0x24, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x53, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x2a, 0x40, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x32, 0x22, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x3a, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x12, 0xfb, 0x02, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x61, 0x64, 0x64, 0x12, 0xbc, 0x03, 0x0a, 0x24, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x49, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4a, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xfc, 0x01, 0x92, 0x41, 0xbd, + 0x01, 0x12, 0x24, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x53, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x20, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x2a, 0x40, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x56, 0x32, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2d, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0xfb, 0x02, 0x0a, 0x19, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x01, 0x92, 0x41, 0xb4, 0x01, 0x12, + 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x60, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x64, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x60, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2e, 0x2a, 0x35, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2d, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x12, 0xc8, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, + 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x3f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xdc, 0x01, 0x92, 0x41, 0xb4, 0x01, 0x12, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x60, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x60, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2e, 0x2a, 0x35, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0xc8, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, 0x01, 0x92, 0x41, 0x87, - 0x01, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x37, 0x52, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x76, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x2e, 0x2a, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0xac, 0x01, 0x92, - 0x41, 0xa8, 0x01, 0x12, 0x5b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x1a, 0x49, 0x0a, 0x28, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, - 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x1d, 0x2f, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc3, 0x02, 0x0a, 0x20, - 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x74, 0x1a, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, - 0x42, 0x18, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x55, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, - 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, - 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x50, 0x58, 0xaa, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, - 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x27, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x50, 0x72, 0x6f, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xaf, 0x01, 0x92, 0x41, 0x87, 0x01, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, - 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x1d, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, - 0x41, 0x1f, 0x12, 0x1d, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x1a, 0x37, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x2a, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x56, 0x32, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x73, 0x1a, 0xac, 0x01, 0x92, 0x41, 0xa8, 0x01, 0x12, 0x5b, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x1a, 0x49, 0x0a, 0x28, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x12, 0x1d, 0x2f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0xc3, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x18, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x55, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, + 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2f, + 0x76, 0x32, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x50, 0x58, 0xaa, + 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x1b, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x27, 0x53, 0x69, + 0x66, 0x74, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x1f, 0x12, 0x1d, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x20, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x20, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.gw.go b/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.gw.go index b4cdca64a..44eabc010 100644 --- a/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.gw.go +++ b/go/gen/sift/protobuf_descriptors/v2/protobuf_descriptors.pb.gw.go @@ -31,18 +31,15 @@ var _ = runtime.String var _ = utilities.NewDoubleArray var _ = metadata.Join -var ( - filter_ProtobufDescriptorService_AddProtobufDescriptor_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - func request_ProtobufDescriptorService_AddProtobufDescriptor_0(ctx context.Context, marshaler runtime.Marshaler, client ProtobufDescriptorServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq AddProtobufDescriptorRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProtobufDescriptorService_AddProtobufDescriptor_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -55,10 +52,11 @@ func local_request_ProtobufDescriptorService_AddProtobufDescriptor_0(ctx context var protoReq AddProtobufDescriptorRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProtobufDescriptorService_AddProtobufDescriptor_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -67,18 +65,15 @@ func local_request_ProtobufDescriptorService_AddProtobufDescriptor_0(ctx context } -var ( - filter_ProtobufDescriptorService_CheckProtobufDescriptorCompatibility_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - func request_ProtobufDescriptorService_CheckProtobufDescriptorCompatibility_0(ctx context.Context, marshaler runtime.Marshaler, client ProtobufDescriptorServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CheckProtobufDescriptorCompatibilityRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProtobufDescriptorService_CheckProtobufDescriptorCompatibility_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -91,10 +86,11 @@ func local_request_ProtobufDescriptorService_CheckProtobufDescriptorCompatibilit var protoReq CheckProtobufDescriptorCompatibilityRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProtobufDescriptorService_CheckProtobufDescriptorCompatibility_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } diff --git a/go/gen/sift/remote_files/v1/remote_files.pb.go b/go/gen/sift/remote_files/v1/remote_files.pb.go index d477dcb84..89b75654d 100644 --- a/go/gen/sift/remote_files/v1/remote_files.pb.go +++ b/go/gen/sift/remote_files/v1/remote_files.pb.go @@ -32,6 +32,7 @@ const ( EntityType_ENTITY_TYPE_ANNOTATION EntityType = 2 EntityType_ENTITY_TYPE_ASSET EntityType = 3 EntityType_ENTITY_TYPE_ANNOTATION_LOG EntityType = 4 + EntityType_ENTITY_TYPE_TEST_REPORT EntityType = 5 ) // Enum value maps for EntityType. @@ -42,6 +43,7 @@ var ( 2: "ENTITY_TYPE_ANNOTATION", 3: "ENTITY_TYPE_ASSET", 4: "ENTITY_TYPE_ANNOTATION_LOG", + 5: "ENTITY_TYPE_TEST_REPORT", } EntityType_value = map[string]int32{ "ENTITY_TYPE_UNSPECIFIED": 0, @@ -49,6 +51,7 @@ var ( "ENTITY_TYPE_ANNOTATION": 2, "ENTITY_TYPE_ASSET": 3, "ENTITY_TYPE_ANNOTATION_LOG": 4, + "ENTITY_TYPE_TEST_REPORT": 5, } ) @@ -1521,7 +1524,7 @@ var file_sift_remote_files_v1_remote_files_proto_rawDesc = []byte{ 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x2a, 0x91, 0x01, 0x0a, 0x0a, 0x45, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x2a, 0xae, 0x01, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, @@ -1530,124 +1533,126 @@ var file_sift_remote_files_v1_remote_files_proto_rawDesc = []byte{ 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x45, 0x54, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, - 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x04, 0x32, 0xbf, - 0x0c, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x58, 0x92, 0x41, 0x28, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x1a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x10, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2d, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x92, - 0x41, 0x29, 0x12, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x1a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0xb4, 0x01, 0x0a, 0x0f, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2c, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x92, 0x41, 0x25, - 0x12, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x1a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x12, 0x84, 0x02, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, 0x01, 0x92, 0x41, 0x6e, 0x12, 0x10, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x1a, 0x5a, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, - 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, - 0x01, 0x2a, 0x32, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0xcc, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2d, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, - 0x29, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x1a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, - 0x2a, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8f, 0x02, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, + 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x04, 0x12, 0x1b, + 0x0a, 0x17, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, + 0x53, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x32, 0xbf, 0x0c, 0x0a, 0x11, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x92, 0x41, + 0x28, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x1a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, + 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x92, 0x41, 0x29, 0x12, + 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, + 0x65, 0x1a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, + 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0xb4, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x92, 0x41, 0x25, 0x12, 0x0f, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x84, + 0x02, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x90, 0x01, 0x92, 0x41, 0x6e, 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x1a, 0x5a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x32, + 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0xcc, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, 0x29, 0x12, 0x10, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x1a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x2a, 0x25, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8f, 0x02, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x12, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, - 0x92, 0x41, 0x5b, 0x12, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x41, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x45, 0x61, 0x63, 0x68, 0x20, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x84, 0x02, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, - 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x3c, 0x12, 0x10, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x1a, 0x28, 0x47, 0x65, - 0x74, 0x73, 0x20, 0x61, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x55, 0x52, - 0x4c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2d, 0x75, 0x72, 0x6c, - 0x42, 0xfa, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, - 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, - 0x13, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x53, 0x69, 0x66, - 0x74, 0x5c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x53, - 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x16, 0x12, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x92, 0x41, 0x5b, + 0x12, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x41, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x45, 0x61, 0x63, 0x68, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x84, 0x02, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x55, 0x72, 0x6c, 0x12, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x3c, 0x12, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x1a, 0x28, 0x47, 0x65, 0x74, 0x73, 0x20, + 0x61, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2d, 0x75, 0x72, 0x6c, 0x42, 0xfa, 0x01, + 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x13, 0x53, 0x69, + 0x66, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x13, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, + 0x3a, 0x3a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x3a, 0x3a, 0x56, + 0x31, 0x92, 0x41, 0x16, 0x12, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/go/gen/sift/remote_files/v1/remote_files_vtproto.pb.go b/go/gen/sift/remote_files/v1/remote_files_vtproto.pb.go index 976cf6dbe..219cdf9e6 100644 --- a/go/gen/sift/remote_files/v1/remote_files_vtproto.pb.go +++ b/go/gen/sift/remote_files/v1/remote_files_vtproto.pb.go @@ -1081,7 +1081,7 @@ const _ = grpc.SupportPackageIsVersion7 type RemoteFileServiceClient interface { // Retrieve a remote file. GetRemoteFile(ctx context.Context, in *GetRemoteFileRequest, opts ...grpc.CallOption) (*GetRemoteFileResponse, error) - // Create a remote file. + // Create a remote file. Note that this does not perform the actual file upload. CreateRemoteFile(ctx context.Context, in *CreateRemoteFileRequest, opts ...grpc.CallOption) (*CreateRemoteFileResponse, error) // List remote files. ListRemoteFiles(ctx context.Context, in *ListRemoteFilesRequest, opts ...grpc.CallOption) (*ListRemoteFilesResponse, error) @@ -1172,7 +1172,7 @@ func (c *remoteFileServiceClient) GetRemoteFileDownloadUrl(ctx context.Context, type RemoteFileServiceServer interface { // Retrieve a remote file. GetRemoteFile(context.Context, *GetRemoteFileRequest) (*GetRemoteFileResponse, error) - // Create a remote file. + // Create a remote file. Note that this does not perform the actual file upload. CreateRemoteFile(context.Context, *CreateRemoteFileRequest) (*CreateRemoteFileResponse, error) // List remote files. ListRemoteFiles(context.Context, *ListRemoteFilesRequest) (*ListRemoteFilesResponse, error) diff --git a/go/gen/sift/report_templates/v1/report_templates.pb.go b/go/gen/sift/report_templates/v1/report_templates.pb.go index 6f27a2966..e476feeeb 100644 --- a/go/gen/sift/report_templates/v1/report_templates.pb.go +++ b/go/gen/sift/report_templates/v1/report_templates.pb.go @@ -43,6 +43,8 @@ type ReportTemplate struct { Rules []*ReportTemplateRule `protobuf:"bytes,11,rep,name=rules,proto3" json:"rules,omitempty"` Tags []*ReportTemplateTag `protobuf:"bytes,12,rep,name=tags,proto3" json:"tags,omitempty"` Metadata []*v1.MetadataValue `protobuf:"bytes,13,rep,name=metadata,proto3" json:"metadata,omitempty"` + // Whether the report template is archived. This is inferred from whether archived_date is set. + IsArchived bool `protobuf:"varint,14,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *ReportTemplate) Reset() { @@ -168,6 +170,13 @@ func (x *ReportTemplate) GetMetadata() []*v1.MetadataValue { return nil } +func (x *ReportTemplate) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type ReportTemplateRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -690,7 +699,7 @@ type ListReportTemplatesRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `report_template_id`, `tag_id`, `tag_name`, `client_key`, `metadata`, and `name`. + // Available fields to filter by are `report_template_id`, `tag_id`, `tag_name`, `client_key`, `metadata`, `name` and 'is_archived'. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/report_templates#report_template). Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -849,7 +858,7 @@ type UpdateReportTemplateRequest struct { // The report template to update. ReportTemplate *ReportTemplate `protobuf:"bytes,1,opt,name=report_template,json=reportTemplate,proto3" json:"report_template,omitempty"` - // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `tags`, `rules`, and `metadata`. + // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `rules`, and `metadata`. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } @@ -967,7 +976,7 @@ var file_sift_report_templates_v1_report_templates_proto_rawDesc = []byte{ 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9c, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x06, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, @@ -1014,224 +1023,226 @@ var file_sift_report_templates_v1_report_templates_proto_rawDesc = []byte{ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0xb8, 0x01, - 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, - 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x33, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, - 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9f, 0x01, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, - 0x79, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, - 0x73, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x04, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, + 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x33, + 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x73, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x04, 0x0a, 0x1b, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, + 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x70, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x12, 0x0a, 0x10, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x44, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x56, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x5e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, - 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, - 0x64, 0x73, 0x12, 0x70, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x12, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x0a, 0x22, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, - 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, - 0x56, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x76, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, - 0xfc, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x2d, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1e, - 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x9a, - 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, - 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb7, 0x01, 0x0a, 0x1b, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x0f, 0x72, + 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2d, + 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, + 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x76, 0x0a, + 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, + 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x42, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x76, 0x0a, 0x1c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x76, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x32, 0x9f, 0x08, - 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xac, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x92, 0x41, 0x30, 0x12, 0x11, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, - 0x1b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x74, 0x5a, 0x43, 0x12, 0x41, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x12, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xde, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, - 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, - 0x92, 0x41, 0x31, 0x12, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, + 0x61, 0x74, 0x65, 0x32, 0x9f, 0x08, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xac, 0x02, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x92, + 0x41, 0x30, 0x12, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x1b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, + 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x5a, 0x43, 0x12, 0x41, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x12, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, - 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xde, 0x01, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, - 0x2d, 0x12, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x9e, - 0x02, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x92, 0x41, 0x70, 0x12, 0x14, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x1a, 0x58, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, - 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x32, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, - 0x9e, 0x02, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x92, 0x41, 0x31, 0x12, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, + 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, + 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xd4, 0x01, + 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x42, 0x14, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x17, - 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2d, 0x12, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x16, 0x4c, 0x69, + 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x12, 0x9e, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x35, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x92, + 0x41, 0x70, 0x12, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x58, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x32, 0x18, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x9e, 0x02, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x14, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x53, 0x52, 0x58, 0xaa, 0x02, 0x17, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x23, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, - 0x3a, 0x56, 0x31, 0x92, 0x41, 0x1a, 0x12, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, + 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x1a, 0x12, 0x18, 0x0a, 0x16, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/report_templates/v1/report_templates_vtproto.pb.go b/go/gen/sift/report_templates/v1/report_templates_vtproto.pb.go index 77a125a41..0b1e1e0f9 100644 --- a/go/gen/sift/report_templates/v1/report_templates_vtproto.pb.go +++ b/go/gen/sift/report_templates/v1/report_templates_vtproto.pb.go @@ -42,6 +42,7 @@ func (m *ReportTemplate) CloneVT() *ReportTemplate { r.ModifiedByUserId = m.ModifiedByUserId r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.IsArchived = m.IsArchived if rhs := m.ClientKey; rhs != nil { tmpVal := *rhs r.ClientKey = &tmpVal @@ -455,6 +456,9 @@ func (this *ReportTemplate) EqualVT(that *ReportTemplate) bool { } } } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1094,6 +1098,16 @@ func (m *ReportTemplate) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x70 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -1942,6 +1956,16 @@ func (m *ReportTemplate) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x70 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -2835,6 +2859,9 @@ func (m *ReportTemplate) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.IsArchived { + n += 2 + } n += len(m.unknownFields) return n } @@ -3588,6 +3615,26 @@ func (m *ReportTemplate) UnmarshalVT(dAtA []byte) error { } } iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -5729,6 +5776,26 @@ func (m *ReportTemplate) UnmarshalVTUnsafe(dAtA []byte) error { } } iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/reports/v1/reports.pb.go b/go/gen/sift/reports/v1/reports.pb.go index c4cf6b081..3d8b2aa9e 100644 --- a/go/gen/sift/reports/v1/reports.pb.go +++ b/go/gen/sift/reports/v1/reports.pb.go @@ -107,6 +107,7 @@ type Report struct { JobId *string `protobuf:"bytes,14,opt,name=job_id,json=jobId,proto3,oneof" json:"job_id,omitempty"` ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=archived_date,json=archivedDate,proto3,oneof" json:"archived_date,omitempty"` Metadata []*v1.MetadataValue `protobuf:"bytes,16,rep,name=metadata,proto3" json:"metadata,omitempty"` + IsArchived bool `protobuf:"varint,17,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *Report) Reset() { @@ -253,6 +254,13 @@ func (x *Report) GetMetadata() []*v1.MetadataValue { return nil } +func (x *Report) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type ReportRuleSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1425,7 +1433,7 @@ type ListReportsRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, and `archived_date`. + // Available fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/reports#report). Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -1756,7 +1764,7 @@ type UpdateReportRequest struct { // The report to update. Report *Report `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"` - // The list of fields to be updated. The fields available to be updated are `archived_date` and `metadata`. + // The list of fields to be updated. The fields available to be updated are `archived_date`, `is_archived`, and `metadata`. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } @@ -1863,7 +1871,7 @@ var file_sift_reports_v1_reports_proto_rawDesc = []byte{ 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x07, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, + 0x6f, 0x74, 0x6f, 0x22, 0xad, 0x07, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, @@ -1915,362 +1923,365 @@ var file_sift_reports_v1_reports_proto_rawDesc = []byte{ 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, - 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0xe6, 0x05, - 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, - 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2b, - 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, - 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, - 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x38, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x75, - 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, - 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x22, - 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x22, 0xe6, 0x05, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x65, 0x6e, + 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, + 0x75, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x42, + 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, + 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, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x0c, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 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, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x0e, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x2b, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0xe6, 0x03, 0x0a, 0x17, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x4b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x2b, 0x0a, 0x09, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x67, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe6, 0x03, 0x0a, 0x17, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x42, 0x0a, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x04, - 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x76, 0x65, - 0x12, 0x4e, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x00, + 0x52, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x12, 0x4e, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x12, 0x48, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x48, 0x00, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x08, 0x63, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x20, 0x0a, 0x1e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x1d, - 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x22, 0x71, 0x0a, - 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, + 0x12, 0x45, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, + 0x69, 0x76, 0x65, 0x22, 0x71, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0xc9, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, + 0x72, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x65, 0x64, 0x22, 0xc8, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, - 0x22, 0xc9, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, - 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, - 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, - 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0x21, 0x0a, 0x1f, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x22, - 0xc8, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, - 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, - 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, - 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x64, - 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0xd2, 0x03, 0x0a, 0x13, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, - 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, - 0x1f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x6f, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x5a, 0x0a, - 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, + 0x22, 0xd2, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x1f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0xd9, 0x02, 0x0a, 0x1c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, - 0x12, 0x5f, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, + 0x16, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, + 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x22, 0x5a, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, + 0xd9, 0x02, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, + 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, + 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a, 0x1a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4e, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, - 0x73, 0x42, 0x12, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, - 0x49, 0x64, 0x73, 0x22, 0x4e, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, - 0x65, 0x79, 0x73, 0x22, 0x34, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, - 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, - 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x70, 0x0a, 0x13, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x36, - 0x0a, 0x12, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x13, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, - 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x13, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, - 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x34, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, + 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, + 0x49, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x16, 0x0a, 0x14, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, - 0x1a, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, - 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x32, 0x84, 0x0a, 0x0a, 0x0d, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x45, 0x92, 0x41, 0x1f, 0x12, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x1a, 0x12, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x36, 0x0a, 0x12, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x13, + 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x22, 0x37, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, + 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x73, 0x6b, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, + 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, + 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x02, + 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, + 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, + 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x32, + 0x84, 0x0a, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x99, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x92, 0x41, 0x1f, 0x12, 0x09, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x12, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, + 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9a, 0x01, + 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, - 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, + 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, - 0x1a, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x12, 0x90, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, - 0x1c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x0d, - 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x12, 0xc2, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, - 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xe7, 0x01, 0x92, 0x41, 0xba, 0x01, 0x12, 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x1a, 0xaa, 0x01, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x75, 0x70, 0x2d, 0x74, 0x6f, 0x2d, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x12, 0xc4, 0x02, 0x0a, 0x0c, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, 0x92, 0x41, 0xb8, 0x01, 0x12, 0x0c, - 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xa7, 0x01, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x69, 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, - 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x61, 0x76, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x22, 0x2f, 0x61, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x1a, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, 0x1c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0xc2, 0x02, 0x0a, 0x0b, 0x52, + 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, + 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x01, 0x92, 0x41, 0xba, 0x01, 0x12, 0x0b, 0x52, 0x65, + 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xaa, 0x01, 0x52, 0x65, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x75, + 0x70, 0x2d, 0x74, 0x6f, 0x2d, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x42, 0xd3, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, - 0x66, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, - 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, - 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, - 0x31, 0x92, 0x41, 0x12, 0x12, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x12, + 0xc4, 0x02, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, + 0x92, 0x41, 0xb8, 0x01, 0x12, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x1a, 0xa7, 0x01, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f, + 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x69, 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, + 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x24, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0xd3, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, + 0x31, 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, + 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x12, 0x12, 0x10, 0x0a, 0x0e, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/reports/v1/reports_vtproto.pb.go b/go/gen/sift/reports/v1/reports_vtproto.pb.go index da24707b9..a0bb8f79e 100644 --- a/go/gen/sift/reports/v1/reports_vtproto.pb.go +++ b/go/gen/sift/reports/v1/reports_vtproto.pb.go @@ -44,6 +44,7 @@ func (m *Report) CloneVT() *Report { r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.IsArchived = m.IsArchived if rhs := m.Description; rhs != nil { tmpVal := *rhs r.Description = &tmpVal @@ -806,6 +807,9 @@ func (this *Report) EqualVT(that *Report) bool { } } } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -2023,6 +2027,18 @@ func (m *Report) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -3643,6 +3659,18 @@ func (m *Report) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -5358,6 +5386,9 @@ func (m *Report) SizeVT() (n int) { n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.IsArchived { + n += 3 + } n += len(m.unknownFields) return n } @@ -6523,6 +6554,26 @@ func (m *Report) UnmarshalVT(dAtA []byte) error { } } iNdEx = postIndex + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -10422,6 +10473,26 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } } iNdEx = postIndex + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/roles/v2/roles.pb.go b/go/gen/sift/roles/v2/roles.pb.go index 16240bd53..0630a51d5 100644 --- a/go/gen/sift/roles/v2/roles.pb.go +++ b/go/gen/sift/roles/v2/roles.pb.go @@ -30,6 +30,7 @@ type Role struct { RoleId string `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + RoleOrder int32 `protobuf:"varint,4,opt,name=role_order,json=roleOrder,proto3" json:"role_order,omitempty"` } func (x *Role) Reset() { @@ -85,6 +86,13 @@ func (x *Role) GetDescription() string { return "" } +func (x *Role) GetRoleOrder() int32 { + if x != nil { + return x.RoleOrder + } + return 0 +} + type ListRolesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -97,7 +105,6 @@ type ListRolesRequest struct { PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // A page token, received from a previous `ListRoles` call. // Provide this to retrieve the subsequent page. - // // When paginating, all other parameters provided to `ListRoles` must match // the call that provided the page token. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` @@ -241,53 +248,55 @@ var file_sift_roles_v2_roles_proto_rawDesc = []byte{ 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x55, 0x0a, 0x04, 0x52, 0x6f, 0x6c, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 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, 0x8b, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, - 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x66, - 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xc7, 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, + 0x8b, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x66, 0x0a, + 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x32, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xc7, 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, + 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x4f, 0x12, 0x09, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x1a, 0x29, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, - 0x65, 0x73, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x2e, 0x2a, 0x17, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, - 0x42, 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, - 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, - 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x3a, 0x56, - 0x32, 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x65, 0x20, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x4f, 0x12, 0x09, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x1a, 0x29, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x73, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x2e, 0x2a, 0x17, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, + 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x42, + 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x6f, 0x6c, 0x65, + 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, + 0x52, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x2e, + 0x56, 0x32, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x5c, + 0x56, 0x32, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x5c, + 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x32, + 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/roles/v2/roles_vtproto.pb.go b/go/gen/sift/roles/v2/roles_vtproto.pb.go index 9affaa077..a4eb7012e 100644 --- a/go/gen/sift/roles/v2/roles_vtproto.pb.go +++ b/go/gen/sift/roles/v2/roles_vtproto.pb.go @@ -32,6 +32,7 @@ func (m *Role) CloneVT() *Role { r.RoleId = m.RoleId r.Name = m.Name r.Description = m.Description + r.RoleOrder = m.RoleOrder if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -102,6 +103,9 @@ func (this *Role) EqualVT(that *Role) bool { if this.Description != that.Description { return false } + if this.RoleOrder != that.RoleOrder { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -298,6 +302,11 @@ func (m *Role) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.RoleOrder != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RoleOrder)) + i-- + dAtA[i] = 0x20 + } if len(m.Description) > 0 { i -= len(m.Description) copy(dAtA[i:], m.Description) @@ -463,6 +472,11 @@ func (m *Role) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.RoleOrder != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RoleOrder)) + i-- + dAtA[i] = 0x20 + } if len(m.Description) > 0 { i -= len(m.Description) copy(dAtA[i:], m.Description) @@ -616,6 +630,9 @@ func (m *Role) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.RoleOrder != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RoleOrder)) + } n += len(m.unknownFields) return n } @@ -790,6 +807,25 @@ func (m *Role) UnmarshalVT(dAtA []byte) error { } m.Description = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleOrder", wireType) + } + m.RoleOrder = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RoleOrder |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -1232,6 +1268,25 @@ func (m *Role) UnmarshalVTUnsafe(dAtA []byte) error { } m.Description = stringValue iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleOrder", wireType) + } + m.RoleOrder = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RoleOrder |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go b/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go index c9f3a1cf0..10e60210c 100644 --- a/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go +++ b/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go @@ -802,101 +802,6 @@ func (x *EvaluateRulesFromRuleConfigs) GetConfigs() []*v11.UpdateRuleRequest { return nil } -type RulePreviewOutput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RuleName string `protobuf:"bytes,1,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` - RuleId string `protobuf:"bytes,2,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` - RuleVersionId string `protobuf:"bytes,3,opt,name=rule_version_id,json=ruleVersionId,proto3" json:"rule_version_id,omitempty"` - AssetId string `protobuf:"bytes,4,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` - ExitCode int32 `protobuf:"varint,5,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` - Stdout string `protobuf:"bytes,6,opt,name=stdout,proto3" json:"stdout,omitempty"` - Stderr string `protobuf:"bytes,7,opt,name=stderr,proto3" json:"stderr,omitempty"` -} - -func (x *RulePreviewOutput) Reset() { - *x = RulePreviewOutput{} - if protoimpl.UnsafeEnabled { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RulePreviewOutput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RulePreviewOutput) ProtoMessage() {} - -func (x *RulePreviewOutput) ProtoReflect() protoreflect.Message { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RulePreviewOutput.ProtoReflect.Descriptor instead. -func (*RulePreviewOutput) Descriptor() ([]byte, []int) { - return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{10} -} - -func (x *RulePreviewOutput) GetRuleName() string { - if x != nil { - return x.RuleName - } - return "" -} - -func (x *RulePreviewOutput) GetRuleId() string { - if x != nil { - return x.RuleId - } - return "" -} - -func (x *RulePreviewOutput) GetRuleVersionId() string { - if x != nil { - return x.RuleVersionId - } - return "" -} - -func (x *RulePreviewOutput) GetAssetId() string { - if x != nil { - return x.AssetId - } - return "" -} - -func (x *RulePreviewOutput) GetExitCode() int32 { - if x != nil { - return x.ExitCode - } - return 0 -} - -func (x *RulePreviewOutput) GetStdout() string { - if x != nil { - return x.Stdout - } - return "" -} - -func (x *RulePreviewOutput) GetStderr() string { - if x != nil { - return x.Stderr - } - return "" -} - type EvaluateRulesPreviewResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -904,13 +809,12 @@ type EvaluateRulesPreviewResponse struct { CreatedAnnotationCount int32 `protobuf:"varint,1,opt,name=created_annotation_count,json=createdAnnotationCount,proto3" json:"created_annotation_count,omitempty"` DryRunAnnotations []*v11.DryRunAnnotation `protobuf:"bytes,2,rep,name=dry_run_annotations,json=dryRunAnnotations,proto3" json:"dry_run_annotations,omitempty"` - RuleOutputs []*RulePreviewOutput `protobuf:"bytes,3,rep,name=rule_outputs,json=ruleOutputs,proto3" json:"rule_outputs,omitempty"` } func (x *EvaluateRulesPreviewResponse) Reset() { *x = EvaluateRulesPreviewResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[11] + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -923,7 +827,7 @@ func (x *EvaluateRulesPreviewResponse) String() string { func (*EvaluateRulesPreviewResponse) ProtoMessage() {} func (x *EvaluateRulesPreviewResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[11] + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -936,7 +840,7 @@ func (x *EvaluateRulesPreviewResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluateRulesPreviewResponse.ProtoReflect.Descriptor instead. func (*EvaluateRulesPreviewResponse) Descriptor() ([]byte, []int) { - return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{11} + return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{10} } func (x *EvaluateRulesPreviewResponse) GetCreatedAnnotationCount() int32 { @@ -953,13 +857,6 @@ func (x *EvaluateRulesPreviewResponse) GetDryRunAnnotations() []*v11.DryRunAnnot return nil } -func (x *EvaluateRulesPreviewResponse) GetRuleOutputs() []*RulePreviewOutput { - if x != nil { - return x.RuleOutputs - } - return nil -} - var File_sift_rule_evaluation_v1_rule_evaluation_proto protoreflect.FileDescriptor var file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDesc = []byte{ @@ -1139,110 +1036,90 @@ var file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDesc = []byte{ 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0xe8, - 0x01, 0x0a, 0x11, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x75, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0xfd, 0x01, 0x0a, 0x1c, 0x45, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x18, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, - 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x50, - 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x0b, 0x72, 0x75, - 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x32, 0xd8, 0x06, 0x0a, 0x15, 0x52, 0x75, - 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0xc3, 0x02, 0x0a, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, 0x92, 0x41, 0xa7, 0x01, 0x12, 0x0d, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x95, 0x01, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, - 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x20, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x44, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xda, 0x02, 0x0a, 0x14, 0x45, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0xae, + 0x01, 0x0a, 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3d, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, + 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, 0x52, + 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x72, + 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, + 0xd8, 0x06, 0x0a, 0x15, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x02, 0x0a, 0x0d, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, 0x92, 0x41, 0xa7, + 0x01, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x1a, 0x95, 0x01, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, + 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x44, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, + 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0xda, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xd4, 0x01, 0x92, 0x41, 0xa1, 0x01, 0x12, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x88, 0x01, 0x50, - 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, - 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, - 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, - 0x72, 0x75, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, - 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, - 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x9b, 0x01, 0x92, 0x41, 0x97, 0x01, 0x12, 0x1a, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, - 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, - 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, - 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, - 0x31, 0x31, 0x30, 0x32, 0x42, 0x97, 0x02, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4b, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, - 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, - 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, - 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, - 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, - 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, - 0x92, 0x41, 0x1b, 0x12, 0x19, 0x0a, 0x17, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x01, 0x92, 0x41, 0xa1, 0x01, 0x12, 0x14, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x65, 0x77, 0x1a, 0x88, 0x01, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x20, 0x64, + 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x67, 0x61, 0x69, + 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x9b, 0x01, 0x92, + 0x41, 0x97, 0x01, 0x12, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, + 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, + 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0x97, 0x02, 0x0a, 0x1b, 0x63, + 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x52, 0x75, 0x6c, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, + 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, 0x6c, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, + 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x53, 0x69, + 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x1b, 0x12, 0x19, 0x0a, 0x17, 0x52, 0x75, 0x6c, + 0x65, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1257,7 +1134,7 @@ func file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP() []byte { return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescData } -var file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_sift_rule_evaluation_v1_rule_evaluation_proto_goTypes = []interface{}{ (*EvaluateRulesRequest)(nil), // 0: sift.rule_evaluation.v1.EvaluateRulesRequest (*RunTimeRange)(nil), // 1: sift.rule_evaluation.v1.RunTimeRange @@ -1269,50 +1146,48 @@ var file_sift_rule_evaluation_v1_rule_evaluation_proto_goTypes = []interface{}{ (*EvaluateRulesResponse)(nil), // 7: sift.rule_evaluation.v1.EvaluateRulesResponse (*EvaluateRulesPreviewRequest)(nil), // 8: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest (*EvaluateRulesFromRuleConfigs)(nil), // 9: sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs - (*RulePreviewOutput)(nil), // 10: sift.rule_evaluation.v1.RulePreviewOutput - (*EvaluateRulesPreviewResponse)(nil), // 11: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse - (*v1.ResourceIdentifier)(nil), // 12: sift.common.type.v1.ResourceIdentifier - (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp - (*v1.NamedResources)(nil), // 14: sift.common.type.v1.NamedResources - (*v1.ResourceIdentifiers)(nil), // 15: sift.common.type.v1.ResourceIdentifiers - (*v11.UpdateRuleRequest)(nil), // 16: sift.rules.v1.UpdateRuleRequest - (*v11.DryRunAnnotation)(nil), // 17: sift.rules.v1.DryRunAnnotation + (*EvaluateRulesPreviewResponse)(nil), // 10: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse + (*v1.ResourceIdentifier)(nil), // 11: sift.common.type.v1.ResourceIdentifier + (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp + (*v1.NamedResources)(nil), // 13: sift.common.type.v1.NamedResources + (*v1.ResourceIdentifiers)(nil), // 14: sift.common.type.v1.ResourceIdentifiers + (*v11.UpdateRuleRequest)(nil), // 15: sift.rules.v1.UpdateRuleRequest + (*v11.DryRunAnnotation)(nil), // 16: sift.rules.v1.DryRunAnnotation } var file_sift_rule_evaluation_v1_rule_evaluation_proto_depIdxs = []int32{ - 12, // 0: sift.rule_evaluation.v1.EvaluateRulesRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier + 11, // 0: sift.rule_evaluation.v1.EvaluateRulesRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier 2, // 1: sift.rule_evaluation.v1.EvaluateRulesRequest.assets:type_name -> sift.rule_evaluation.v1.AssetsTimeRange 1, // 2: sift.rule_evaluation.v1.EvaluateRulesRequest.run_time_range:type_name -> sift.rule_evaluation.v1.RunTimeRange 3, // 3: sift.rule_evaluation.v1.EvaluateRulesRequest.rules:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions 5, // 4: sift.rule_evaluation.v1.EvaluateRulesRequest.rule_versions:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleVersions 4, // 5: sift.rule_evaluation.v1.EvaluateRulesRequest.report_template:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate 6, // 6: sift.rule_evaluation.v1.EvaluateRulesRequest.annotation_options:type_name -> sift.rule_evaluation.v1.EvaluateRulesAnnotationOptions - 12, // 7: sift.rule_evaluation.v1.RunTimeRange.run:type_name -> sift.common.type.v1.ResourceIdentifier - 13, // 8: sift.rule_evaluation.v1.RunTimeRange.start_time:type_name -> google.protobuf.Timestamp - 13, // 9: sift.rule_evaluation.v1.RunTimeRange.end_time:type_name -> google.protobuf.Timestamp - 14, // 10: sift.rule_evaluation.v1.AssetsTimeRange.assets:type_name -> sift.common.type.v1.NamedResources - 13, // 11: sift.rule_evaluation.v1.AssetsTimeRange.start_time:type_name -> google.protobuf.Timestamp - 13, // 12: sift.rule_evaluation.v1.AssetsTimeRange.end_time:type_name -> google.protobuf.Timestamp - 15, // 13: sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions.rules:type_name -> sift.common.type.v1.ResourceIdentifiers - 12, // 14: sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate.report_template:type_name -> sift.common.type.v1.ResourceIdentifier - 14, // 15: sift.rule_evaluation.v1.EvaluateRulesAnnotationOptions.tags:type_name -> sift.common.type.v1.NamedResources - 12, // 16: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier + 11, // 7: sift.rule_evaluation.v1.RunTimeRange.run:type_name -> sift.common.type.v1.ResourceIdentifier + 12, // 8: sift.rule_evaluation.v1.RunTimeRange.start_time:type_name -> google.protobuf.Timestamp + 12, // 9: sift.rule_evaluation.v1.RunTimeRange.end_time:type_name -> google.protobuf.Timestamp + 13, // 10: sift.rule_evaluation.v1.AssetsTimeRange.assets:type_name -> sift.common.type.v1.NamedResources + 12, // 11: sift.rule_evaluation.v1.AssetsTimeRange.start_time:type_name -> google.protobuf.Timestamp + 12, // 12: sift.rule_evaluation.v1.AssetsTimeRange.end_time:type_name -> google.protobuf.Timestamp + 14, // 13: sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions.rules:type_name -> sift.common.type.v1.ResourceIdentifiers + 11, // 14: sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate.report_template:type_name -> sift.common.type.v1.ResourceIdentifier + 13, // 15: sift.rule_evaluation.v1.EvaluateRulesAnnotationOptions.tags:type_name -> sift.common.type.v1.NamedResources + 11, // 16: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier 1, // 17: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run_time_range:type_name -> sift.rule_evaluation.v1.RunTimeRange 3, // 18: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rules:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions 5, // 19: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rule_versions:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleVersions 4, // 20: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.report_template:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate 9, // 21: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rule_configs:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs - 16, // 22: sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs.configs:type_name -> sift.rules.v1.UpdateRuleRequest - 17, // 23: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation - 10, // 24: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse.rule_outputs:type_name -> sift.rule_evaluation.v1.RulePreviewOutput - 0, // 25: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:input_type -> sift.rule_evaluation.v1.EvaluateRulesRequest - 8, // 26: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:input_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewRequest - 7, // 27: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:output_type -> sift.rule_evaluation.v1.EvaluateRulesResponse - 11, // 28: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:output_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewResponse - 27, // [27:29] is the sub-list for method output_type - 25, // [25:27] 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 + 15, // 22: sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs.configs:type_name -> sift.rules.v1.UpdateRuleRequest + 16, // 23: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation + 0, // 24: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:input_type -> sift.rule_evaluation.v1.EvaluateRulesRequest + 8, // 25: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:input_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewRequest + 7, // 26: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:output_type -> sift.rule_evaluation.v1.EvaluateRulesResponse + 10, // 27: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:output_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewResponse + 26, // [26:28] is the sub-list for method output_type + 24, // [24:26] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_sift_rule_evaluation_v1_rule_evaluation_proto_init() } @@ -1442,18 +1317,6 @@ func file_sift_rule_evaluation_v1_rule_evaluation_proto_init() { } } file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RulePreviewOutput); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvaluateRulesPreviewResponse); i { case 0: return &v.state @@ -1491,7 +1354,7 @@ func file_sift_rule_evaluation_v1_rule_evaluation_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDesc, NumEnums: 0, - NumMessages: 12, + NumMessages: 11, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go b/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go index 803b8333a..686676810 100644 --- a/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go +++ b/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go @@ -410,29 +410,6 @@ func (m *EvaluateRulesFromRuleConfigs) CloneMessageVT() proto.Message { return m.CloneVT() } -func (m *RulePreviewOutput) CloneVT() *RulePreviewOutput { - if m == nil { - return (*RulePreviewOutput)(nil) - } - r := new(RulePreviewOutput) - r.RuleName = m.RuleName - r.RuleId = m.RuleId - r.RuleVersionId = m.RuleVersionId - r.AssetId = m.AssetId - r.ExitCode = m.ExitCode - r.Stdout = m.Stdout - r.Stderr = m.Stderr - if len(m.unknownFields) > 0 { - r.unknownFields = make([]byte, len(m.unknownFields)) - copy(r.unknownFields, m.unknownFields) - } - return r -} - -func (m *RulePreviewOutput) CloneMessageVT() proto.Message { - return m.CloneVT() -} - func (m *EvaluateRulesPreviewResponse) CloneVT() *EvaluateRulesPreviewResponse { if m == nil { return (*EvaluateRulesPreviewResponse)(nil) @@ -450,13 +427,6 @@ func (m *EvaluateRulesPreviewResponse) CloneVT() *EvaluateRulesPreviewResponse { } r.DryRunAnnotations = tmpContainer } - if rhs := m.RuleOutputs; rhs != nil { - tmpContainer := make([]*RulePreviewOutput, len(rhs)) - for k, v := range rhs { - tmpContainer[k] = v.CloneVT() - } - r.RuleOutputs = tmpContainer - } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -1111,43 +1081,6 @@ func (this *EvaluateRulesFromRuleConfigs) EqualMessageVT(thatMsg proto.Message) } return this.EqualVT(that) } -func (this *RulePreviewOutput) EqualVT(that *RulePreviewOutput) bool { - if this == that { - return true - } else if this == nil || that == nil { - return false - } - if this.RuleName != that.RuleName { - return false - } - if this.RuleId != that.RuleId { - return false - } - if this.RuleVersionId != that.RuleVersionId { - return false - } - if this.AssetId != that.AssetId { - return false - } - if this.ExitCode != that.ExitCode { - return false - } - if this.Stdout != that.Stdout { - return false - } - if this.Stderr != that.Stderr { - return false - } - return string(this.unknownFields) == string(that.unknownFields) -} - -func (this *RulePreviewOutput) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*RulePreviewOutput) - if !ok { - return false - } - return this.EqualVT(that) -} func (this *EvaluateRulesPreviewResponse) EqualVT(that *EvaluateRulesPreviewResponse) bool { if this == that { return true @@ -1180,23 +1113,6 @@ func (this *EvaluateRulesPreviewResponse) EqualVT(that *EvaluateRulesPreviewResp } } } - if len(this.RuleOutputs) != len(that.RuleOutputs) { - return false - } - for i, vx := range this.RuleOutputs { - vy := that.RuleOutputs[i] - if p, q := vx, vy; p != q { - if p == nil { - p = &RulePreviewOutput{} - } - if q == nil { - q = &RulePreviewOutput{} - } - if !p.EqualVT(q) { - return false - } - } - } return string(this.unknownFields) == string(that.unknownFields) } @@ -2207,86 +2123,6 @@ func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVT(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *RulePreviewOutput) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RulePreviewOutput) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *RulePreviewOutput) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if len(m.Stderr) > 0 { - i -= len(m.Stderr) - copy(dAtA[i:], m.Stderr) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Stderr))) - i-- - dAtA[i] = 0x3a - } - if len(m.Stdout) > 0 { - i -= len(m.Stdout) - copy(dAtA[i:], m.Stdout) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Stdout))) - i-- - dAtA[i] = 0x32 - } - if m.ExitCode != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ExitCode)) - i-- - dAtA[i] = 0x28 - } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0x22 - } - if len(m.RuleVersionId) > 0 { - i -= len(m.RuleVersionId) - copy(dAtA[i:], m.RuleVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) - i-- - dAtA[i] = 0x1a - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleName) > 0 { - i -= len(m.RuleName) - copy(dAtA[i:], m.RuleName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleName))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *EvaluateRulesPreviewResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -2317,18 +2153,6 @@ func (m *EvaluateRulesPreviewResponse) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleOutputs) > 0 { - for iNdEx := len(m.RuleOutputs) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.RuleOutputs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - } if len(m.DryRunAnnotations) > 0 { for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.DryRunAnnotations[iNdEx]).(interface { @@ -3284,86 +3108,6 @@ func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVTStrict(dAtA []byte) return len(dAtA) - i, nil } -func (m *RulePreviewOutput) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RulePreviewOutput) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *RulePreviewOutput) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if len(m.Stderr) > 0 { - i -= len(m.Stderr) - copy(dAtA[i:], m.Stderr) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Stderr))) - i-- - dAtA[i] = 0x3a - } - if len(m.Stdout) > 0 { - i -= len(m.Stdout) - copy(dAtA[i:], m.Stdout) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Stdout))) - i-- - dAtA[i] = 0x32 - } - if m.ExitCode != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ExitCode)) - i-- - dAtA[i] = 0x28 - } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0x22 - } - if len(m.RuleVersionId) > 0 { - i -= len(m.RuleVersionId) - copy(dAtA[i:], m.RuleVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) - i-- - dAtA[i] = 0x1a - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleName) > 0 { - i -= len(m.RuleName) - copy(dAtA[i:], m.RuleName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleName))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *EvaluateRulesPreviewResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -3394,18 +3138,6 @@ func (m *EvaluateRulesPreviewResponse) MarshalToSizedBufferVTStrict(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleOutputs) > 0 { - for iNdEx := len(m.RuleOutputs) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.RuleOutputs[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - } if len(m.DryRunAnnotations) > 0 { for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.DryRunAnnotations[iNdEx]).(interface { @@ -3826,43 +3558,6 @@ func (m *EvaluateRulesFromRuleConfigs) SizeVT() (n int) { return n } -func (m *RulePreviewOutput) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.RuleName) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.RuleVersionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.AssetId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ExitCode != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.ExitCode)) - } - l = len(m.Stdout) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Stderr) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n -} - func (m *EvaluateRulesPreviewResponse) SizeVT() (n int) { if m == nil { return 0 @@ -3884,12 +3579,6 @@ func (m *EvaluateRulesPreviewResponse) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - if len(m.RuleOutputs) > 0 { - for _, e := range m.RuleOutputs { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - } n += len(m.unknownFields) return n } @@ -5605,7 +5294,7 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RulePreviewOutput) UnmarshalVT(dAtA []byte) error { +func (m *EvaluateRulesPreviewResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5628,17 +5317,17 @@ func (m *RulePreviewOutput) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RulePreviewOutput: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesPreviewResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RulePreviewOutput: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesPreviewResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleName", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) } - var stringLen uint64 + m.CreatedAnnotationCount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5648,29 +5337,16 @@ func (m *RulePreviewOutput) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.CreatedAnnotationCount |= int32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DryRunAnnotations", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -5680,926 +5356,33 @@ func (m *RulePreviewOutput) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.DryRunAnnotations = append(m.DryRunAnnotations, &v11.DryRunAnnotation{}) + if unmarshal, ok := interface{}(m.DryRunAnnotations[len(m.DryRunAnnotations)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.DryRunAnnotations[len(m.DryRunAnnotations)-1]); err != nil { + return err } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleVersionId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AssetId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExitCode", wireType) - } - m.ExitCode = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ExitCode |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Stdout = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Stderr = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluateRulesPreviewResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesPreviewResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesPreviewResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) - } - m.CreatedAnnotationCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CreatedAnnotationCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DryRunAnnotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DryRunAnnotations = append(m.DryRunAnnotations, &v11.DryRunAnnotation{}) - if unmarshal, ok := interface{}(m.DryRunAnnotations[len(m.DryRunAnnotations)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.DryRunAnnotations[len(m.DryRunAnnotations)-1]); err != nil { - return err - } - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleOutputs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleOutputs = append(m.RuleOutputs, &RulePreviewOutput{}) - if err := m.RuleOutputs[len(m.RuleOutputs)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Time.(*EvaluateRulesRequest_Run); ok { - if unmarshal, ok := interface{}(oneof.Run).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { - return err - } - } - } else { - v := &v1.ResourceIdentifier{} - if unmarshal, ok := interface{}(v).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { - return err - } - } - m.Time = &EvaluateRulesRequest_Run{Run: v} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Time.(*EvaluateRulesRequest_Assets); ok { - if err := oneof.Assets.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &AssetsTimeRange{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Time = &EvaluateRulesRequest_Assets{Assets: v} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Mode.(*EvaluateRulesRequest_Rules); ok { - if err := oneof.Rules.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &EvaluateRulesFromCurrentRuleVersions{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Mode = &EvaluateRulesRequest_Rules{Rules: v} - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Mode.(*EvaluateRulesRequest_RuleVersions); ok { - if err := oneof.RuleVersions.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &EvaluateRulesFromRuleVersions{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Mode = &EvaluateRulesRequest_RuleVersions{RuleVersions: v} - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Mode.(*EvaluateRulesRequest_ReportTemplate); ok { - if err := oneof.ReportTemplate.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &EvaluateRulesFromReportTemplate{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Mode = &EvaluateRulesRequest_ReportTemplate{ReportTemplate: v} - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationOptions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AnnotationOptions == nil { - m.AnnotationOptions = &EvaluateRulesAnnotationOptions{} - } - if err := m.AnnotationOptions.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.OrganizationId = stringValue - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - s := stringValue - m.ReportName = &s - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunTimeRange", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Time.(*EvaluateRulesRequest_RunTimeRange); ok { - if err := oneof.RunTimeRange.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &RunTimeRange{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Time = &EvaluateRulesRequest_RunTimeRange{RunTimeRange: v} - } - iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllApplicableRules", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Mode = &EvaluateRulesRequest_AllApplicableRules{AllApplicableRules: b} - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RunTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RunTimeRange: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RunTimeRange: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Run == nil { - m.Run = &v1.ResourceIdentifier{} - } - if unmarshal, ok := interface{}(m.Run).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Run); err != nil { - return err - } - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } iNdEx = postIndex default: iNdEx = preIndex @@ -6623,7 +5406,7 @@ func (m *RunTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *AssetsTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *EvaluateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6646,15 +5429,15 @@ func (m *AssetsTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AssetsTimeRange: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AssetsTimeRange: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6681,24 +5464,37 @@ func (m *AssetsTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Assets == nil { - m.Assets = &v1.NamedResources{} - } - if unmarshal, ok := interface{}(m.Assets).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if oneof, ok := m.Time.(*EvaluateRulesRequest_Run); ok { + if unmarshal, ok := interface{}(oneof.Run).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { + return err + } } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Assets); err != nil { - return err + v := &v1.ResourceIdentifier{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } } + m.Time = &EvaluateRulesRequest_Run{Run: v} } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6725,16 +5521,21 @@ func (m *AssetsTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if oneof, ok := m.Time.(*EvaluateRulesRequest_Assets); ok { + if err := oneof.Assets.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AssetsTimeRange{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Time = &EvaluateRulesRequest_Assets{Assets: v} } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6761,67 +5562,21 @@ func (m *AssetsTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if oneof, ok := m.Mode.(*EvaluateRulesRequest_Rules); ok { + if err := oneof.Rules.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EvaluateRulesFromCurrentRuleVersions{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Mode = &EvaluateRulesRequest_Rules{Rules: v} } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluateRulesFromCurrentRuleVersions) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesFromCurrentRuleVersions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesFromCurrentRuleVersions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6848,75 +5603,62 @@ func (m *EvaluateRulesFromCurrentRuleVersions) UnmarshalVTUnsafe(dAtA []byte) er if postIndex > l { return io.ErrUnexpectedEOF } - if m.Rules == nil { - m.Rules = &v1.ResourceIdentifiers{} - } - if unmarshal, ok := interface{}(m.Rules).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if oneof, ok := m.Mode.(*EvaluateRulesRequest_RuleVersions); ok { + if err := oneof.RuleVersions.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Rules); err != nil { + v := &EvaluateRulesFromRuleVersions{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Mode = &EvaluateRulesRequest_RuleVersions{RuleVersions: v} } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplate", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if msglen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluateRulesFromReportTemplate) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if oneof, ok := m.Mode.(*EvaluateRulesRequest_ReportTemplate); ok { + if err := oneof.ReportTemplate.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EvaluateRulesFromReportTemplate{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Mode = &EvaluateRulesRequest_ReportTemplate{ReportTemplate: v} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesFromReportTemplate: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesFromReportTemplate: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationOptions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6943,75 +5685,16 @@ func (m *EvaluateRulesFromReportTemplate) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ReportTemplate == nil { - m.ReportTemplate = &v1.ResourceIdentifier{} - } - if unmarshal, ok := interface{}(m.ReportTemplate).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.ReportTemplate); err != nil { - return err - } + if m.AnnotationOptions == nil { + m.AnnotationOptions = &EvaluateRulesAnnotationOptions{} } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { + if err := m.AnnotationOptions.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluateRulesFromRuleVersions) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesFromRuleVersions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesFromRuleVersions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7043,62 +5726,48 @@ func (m *EvaluateRulesFromRuleVersions) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleVersionIds = append(m.RuleVersionIds, stringValue) + m.OrganizationId = stringValue iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportName", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluateRulesAnnotationOptions) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesAnnotationOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesAnnotationOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + s := stringValue + m.ReportName = &s + iNdEx = postIndex + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunTimeRange", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7125,21 +5794,39 @@ func (m *EvaluateRulesAnnotationOptions) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Tags == nil { - m.Tags = &v1.NamedResources{} - } - if unmarshal, ok := interface{}(m.Tags).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if oneof, ok := m.Time.(*EvaluateRulesRequest_RunTimeRange); ok { + if err := oneof.RunTimeRange.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Tags); err != nil { + v := &RunTimeRange{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Time = &EvaluateRulesRequest_RunTimeRange{RunTimeRange: v} } iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AllApplicableRules", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Mode = &EvaluateRulesRequest_AllApplicableRules{AllApplicableRules: b} default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -7162,7 +5849,7 @@ func (m *EvaluateRulesAnnotationOptions) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *EvaluateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *RunTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7185,17 +5872,17 @@ func (m *EvaluateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: RunTimeRange: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RunTimeRange: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) } - m.CreatedAnnotationCount = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7205,16 +5892,41 @@ func (m *EvaluateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.CreatedAnnotationCount |= int32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Run == nil { + m.Run = &v1.ResourceIdentifier{} + } + if unmarshal, ok := interface{}(m.Run).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Run); err != nil { + return err + } + } + iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7224,34 +5936,33 @@ func (m *EvaluateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := stringValue - m.ReportId = &s iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7261,28 +5972,27 @@ func (m *EvaluateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } - } - intStringLen := int(stringLen) - if intStringLen < 0 { + } + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := stringValue - m.JobId = &s iNdEx = postIndex default: iNdEx = preIndex @@ -7306,7 +6016,7 @@ func (m *EvaluateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *AssetsTimeRange) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7329,15 +6039,15 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesPreviewRequest: wiretype end group for non-group") + return fmt.Errorf("proto: AssetsTimeRange: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesPreviewRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AssetsTimeRange: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7364,37 +6074,24 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Time.(*EvaluateRulesPreviewRequest_Run); ok { - if unmarshal, ok := interface{}(oneof.Run).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { - return err - } + if m.Assets == nil { + m.Assets = &v1.NamedResources{} + } + if unmarshal, ok := interface{}(m.Assets).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } } else { - v := &v1.ResourceIdentifier{} - if unmarshal, ok := interface{}(v).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { - return err - } + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Assets); err != nil { + return err } - m.Time = &EvaluateRulesPreviewRequest_Run{Run: v} } iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7421,21 +6118,16 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_Rules); ok { - if err := oneof.Rules.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &EvaluateRulesFromCurrentRuleVersions{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Mode = &EvaluateRulesPreviewRequest_Rules{Rules: v} + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7462,21 +6154,67 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_RuleVersions); ok { - if err := oneof.RuleVersions.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &EvaluateRulesFromRuleVersions{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Mode = &EvaluateRulesPreviewRequest_RuleVersions{RuleVersions: v} + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 5: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EvaluateRulesFromCurrentRuleVersions) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvaluateRulesFromCurrentRuleVersions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvaluateRulesFromCurrentRuleVersions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7503,21 +6241,75 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_ReportTemplate); ok { - if err := oneof.ReportTemplate.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if m.Rules == nil { + m.Rules = &v1.ResourceIdentifiers{} + } + if unmarshal, ok := interface{}(m.Rules).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - v := &EvaluateRulesFromReportTemplate{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Rules); err != nil { return err } - m.Mode = &EvaluateRulesPreviewRequest_ReportTemplate{ReportTemplate: v} } iNdEx = postIndex - case 6: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EvaluateRulesFromReportTemplate) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvaluateRulesFromReportTemplate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvaluateRulesFromReportTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConfigs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7541,24 +6333,78 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ReportTemplate == nil { + m.ReportTemplate = &v1.ResourceIdentifier{} + } + if unmarshal, ok := interface{}(m.ReportTemplate).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.ReportTemplate); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EvaluateRulesFromRuleVersions) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_RuleConfigs); ok { - if err := oneof.RuleConfigs.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &EvaluateRulesFromRuleConfigs{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Mode = &EvaluateRulesPreviewRequest_RuleConfigs{RuleConfigs: v} + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 7: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvaluateRulesFromRuleVersions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvaluateRulesFromRuleVersions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7590,11 +6436,62 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.OrganizationId = stringValue + m.RuleVersionIds = append(m.RuleVersionIds, stringValue) iNdEx = postIndex - case 8: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EvaluateRulesAnnotationOptions) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvaluateRulesAnnotationOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvaluateRulesAnnotationOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunTimeRange", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7621,16 +6518,19 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Time.(*EvaluateRulesPreviewRequest_RunTimeRange); ok { - if err := oneof.RunTimeRange.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if m.Tags == nil { + m.Tags = &v1.NamedResources{} + } + if unmarshal, ok := interface{}(m.Tags).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - v := &RunTimeRange{} - if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Tags); err != nil { return err } - m.Time = &EvaluateRulesPreviewRequest_RunTimeRange{RunTimeRange: v} } iNdEx = postIndex default: @@ -7655,7 +6555,7 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *EvaluateRulesFromRuleConfigs) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *EvaluateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7678,17 +6578,36 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) + } + m.CreatedAnnotationCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CreatedAnnotationCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Configs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7698,33 +6617,65 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Configs = append(m.Configs, &v11.UpdateRuleRequest{}) - if unmarshal, ok := interface{}(m.Configs[len(m.Configs)-1]).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.ReportId = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Configs[len(m.Configs)-1]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.JobId = &s iNdEx = postIndex default: iNdEx = preIndex @@ -7748,7 +6699,7 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7771,17 +6722,74 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RulePreviewOutput: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesPreviewRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RulePreviewOutput: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesPreviewRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Time.(*EvaluateRulesPreviewRequest_Run); ok { + if unmarshal, ok := interface{}(oneof.Run).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { + return err + } + } + } else { + v := &v1.ResourceIdentifier{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.Time = &EvaluateRulesPreviewRequest_Run{Run: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7791,33 +6799,38 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_Rules); ok { + if err := oneof.Rules.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EvaluateRulesFromCurrentRuleVersions{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Mode = &EvaluateRulesPreviewRequest_Rules{Rules: v} } - m.RuleName = stringValue iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersions", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7827,33 +6840,38 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_RuleVersions); ok { + if err := oneof.RuleVersions.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EvaluateRulesFromRuleVersions{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Mode = &EvaluateRulesPreviewRequest_RuleVersions{RuleVersions: v} } - m.RuleId = stringValue iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplate", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7863,33 +6881,38 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_ReportTemplate); ok { + if err := oneof.ReportTemplate.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EvaluateRulesFromReportTemplate{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Mode = &EvaluateRulesPreviewRequest_ReportTemplate{ReportTemplate: v} } - m.RuleVersionId = stringValue iNdEx = postIndex - case 4: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleConfigs", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7899,33 +6922,38 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Mode.(*EvaluateRulesPreviewRequest_RuleConfigs); ok { + if err := oneof.RuleConfigs.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &EvaluateRulesFromRuleConfigs{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Mode = &EvaluateRulesPreviewRequest_RuleConfigs{RuleConfigs: v} } - m.AssetId = stringValue iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExitCode", wireType) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } - m.ExitCode = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7935,16 +6963,33 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ExitCode |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 6: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunTimeRange", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7954,33 +6999,89 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if oneof, ok := m.Time.(*EvaluateRulesPreviewRequest_RunTimeRange); ok { + if err := oneof.RunTimeRange.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RunTimeRange{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Time = &EvaluateRulesPreviewRequest_RunTimeRange{RunTimeRange: v} } - m.Stdout = stringValue iNdEx = postIndex - case 7: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EvaluateRulesFromRuleConfigs) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Configs", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -7990,27 +7091,33 @@ func (m *RulePreviewOutput) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.Configs = append(m.Configs, &v11.UpdateRuleRequest{}) + if unmarshal, ok := interface{}(m.Configs[len(m.Configs)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Configs[len(m.Configs)-1]); err != nil { + return err + } } - m.Stderr = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -8124,40 +7231,6 @@ func (m *EvaluateRulesPreviewResponse) UnmarshalVTUnsafe(dAtA []byte) error { } } iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleOutputs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleOutputs = append(m.RuleOutputs, &RulePreviewOutput{}) - if err := m.RuleOutputs[len(m.RuleOutputs)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/rules/v1/rules.pb.go b/go/gen/sift/rules/v1/rules.pb.go index 91f54e3ed..10b613a4a 100644 --- a/go/gen/sift/rules/v1/rules.pb.go +++ b/go/gen/sift/rules/v1/rules.pb.go @@ -221,9 +221,14 @@ type Rule struct { ClientKey string `protobuf:"bytes,14,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` AssetConfiguration *RuleAssetConfiguration `protobuf:"bytes,15,opt,name=asset_configuration,json=assetConfiguration,proto3" json:"asset_configuration,omitempty"` ContextualChannels *ContextualChannels `protobuf:"bytes,16,opt,name=contextual_channels,json=contextualChannels,proto3" json:"contextual_channels,omitempty"` - DeletedDate *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=deleted_date,json=deletedDate,proto3" json:"deleted_date,omitempty"` - IsExternal bool `protobuf:"varint,18,opt,name=is_external,json=isExternal,proto3" json:"is_external,omitempty"` - Metadata []*v1.MetadataValue `protobuf:"bytes,19,rep,name=metadata,proto3" json:"metadata,omitempty"` + // Deprecated: Do not use. + DeletedDate *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=deleted_date,json=deletedDate,proto3" json:"deleted_date,omitempty"` + IsExternal bool `protobuf:"varint,18,opt,name=is_external,json=isExternal,proto3" json:"is_external,omitempty"` + Metadata []*v1.MetadataValue `protobuf:"bytes,19,rep,name=metadata,proto3" json:"metadata,omitempty"` + // archived_date indicates when the rule was archived + ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,20,opt,name=archived_date,json=archivedDate,proto3" json:"archived_date,omitempty"` + // is_archived is inferred from when archived_date is not null + IsArchived bool `protobuf:"varint,21,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *Rule) Reset() { @@ -364,6 +369,7 @@ func (x *Rule) GetContextualChannels() *ContextualChannels { return nil } +// Deprecated: Do not use. func (x *Rule) GetDeletedDate() *timestamppb.Timestamp { if x != nil { return x.DeletedDate @@ -385,6 +391,20 @@ func (x *Rule) GetMetadata() []*v1.MetadataValue { return nil } +func (x *Rule) GetArchivedDate() *timestamppb.Timestamp { + if x != nil { + return x.ArchivedDate + } + return nil +} + +func (x *Rule) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type RuleCondition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1296,6 +1316,7 @@ type UpdateRuleRequest struct { ContextualChannels *ContextualChannels `protobuf:"bytes,11,opt,name=contextual_channels,json=contextualChannels,proto3" json:"contextual_channels,omitempty"` IsExternal bool `protobuf:"varint,12,opt,name=is_external,json=isExternal,proto3" json:"is_external,omitempty"` Metadata []*v1.MetadataValue `protobuf:"bytes,13,rep,name=metadata,proto3" json:"metadata,omitempty"` + IsArchived bool `protobuf:"varint,14,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *UpdateRuleRequest) Reset() { @@ -1423,6 +1444,13 @@ func (x *UpdateRuleRequest) GetMetadata() []*v1.MetadataValue { return nil } +func (x *UpdateRuleRequest) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type UpdateConditionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2018,8 +2046,8 @@ func (*BatchDeleteRulesResponse) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{24} } -// UndeleteRuleRequest is used to undelete a rule by rule_id or client_key. If both are provided, only rule_id will be used. -type UndeleteRuleRequest struct { +// ArchiveRuleRequest is used to archive a rule by rule_id or client_key. If both are provided, only rule_id will be used. +type ArchiveRuleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2028,8 +2056,8 @@ type UndeleteRuleRequest struct { ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` } -func (x *UndeleteRuleRequest) Reset() { - *x = UndeleteRuleRequest{} +func (x *ArchiveRuleRequest) Reset() { + *x = ArchiveRuleRequest{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2037,13 +2065,13 @@ func (x *UndeleteRuleRequest) Reset() { } } -func (x *UndeleteRuleRequest) String() string { +func (x *ArchiveRuleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UndeleteRuleRequest) ProtoMessage() {} +func (*ArchiveRuleRequest) ProtoMessage() {} -func (x *UndeleteRuleRequest) ProtoReflect() protoreflect.Message { +func (x *ArchiveRuleRequest) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2055,33 +2083,33 @@ func (x *UndeleteRuleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UndeleteRuleRequest.ProtoReflect.Descriptor instead. -func (*UndeleteRuleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ArchiveRuleRequest.ProtoReflect.Descriptor instead. +func (*ArchiveRuleRequest) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{25} } -func (x *UndeleteRuleRequest) GetRuleId() string { +func (x *ArchiveRuleRequest) GetRuleId() string { if x != nil { return x.RuleId } return "" } -func (x *UndeleteRuleRequest) GetClientKey() string { +func (x *ArchiveRuleRequest) GetClientKey() string { if x != nil { return x.ClientKey } return "" } -type UndeleteRuleResponse struct { +type ArchiveRuleResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *UndeleteRuleResponse) Reset() { - *x = UndeleteRuleResponse{} +func (x *ArchiveRuleResponse) Reset() { + *x = ArchiveRuleResponse{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2089,13 +2117,13 @@ func (x *UndeleteRuleResponse) Reset() { } } -func (x *UndeleteRuleResponse) String() string { +func (x *ArchiveRuleResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UndeleteRuleResponse) ProtoMessage() {} +func (*ArchiveRuleResponse) ProtoMessage() {} -func (x *UndeleteRuleResponse) ProtoReflect() protoreflect.Message { +func (x *ArchiveRuleResponse) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2107,13 +2135,13 @@ func (x *UndeleteRuleResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UndeleteRuleResponse.ProtoReflect.Descriptor instead. -func (*UndeleteRuleResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ArchiveRuleResponse.ProtoReflect.Descriptor instead. +func (*ArchiveRuleResponse) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{26} } -// BatchUndeleteRulesRequest is used to delete a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used. -type BatchUndeleteRulesRequest struct { +// BatchArchiveRulesRequest is used to archive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used. +type BatchArchiveRulesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2122,8 +2150,8 @@ type BatchUndeleteRulesRequest struct { ClientKeys []string `protobuf:"bytes,2,rep,name=client_keys,json=clientKeys,proto3" json:"client_keys,omitempty"` } -func (x *BatchUndeleteRulesRequest) Reset() { - *x = BatchUndeleteRulesRequest{} +func (x *BatchArchiveRulesRequest) Reset() { + *x = BatchArchiveRulesRequest{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2131,13 +2159,13 @@ func (x *BatchUndeleteRulesRequest) Reset() { } } -func (x *BatchUndeleteRulesRequest) String() string { +func (x *BatchArchiveRulesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BatchUndeleteRulesRequest) ProtoMessage() {} +func (*BatchArchiveRulesRequest) ProtoMessage() {} -func (x *BatchUndeleteRulesRequest) ProtoReflect() protoreflect.Message { +func (x *BatchArchiveRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2149,33 +2177,33 @@ func (x *BatchUndeleteRulesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BatchUndeleteRulesRequest.ProtoReflect.Descriptor instead. -func (*BatchUndeleteRulesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use BatchArchiveRulesRequest.ProtoReflect.Descriptor instead. +func (*BatchArchiveRulesRequest) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{27} } -func (x *BatchUndeleteRulesRequest) GetRuleIds() []string { +func (x *BatchArchiveRulesRequest) GetRuleIds() []string { if x != nil { return x.RuleIds } return nil } -func (x *BatchUndeleteRulesRequest) GetClientKeys() []string { +func (x *BatchArchiveRulesRequest) GetClientKeys() []string { if x != nil { return x.ClientKeys } return nil } -type BatchUndeleteRulesResponse struct { +type BatchArchiveRulesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BatchUndeleteRulesResponse) Reset() { - *x = BatchUndeleteRulesResponse{} +func (x *BatchArchiveRulesResponse) Reset() { + *x = BatchArchiveRulesResponse{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2183,13 +2211,13 @@ func (x *BatchUndeleteRulesResponse) Reset() { } } -func (x *BatchUndeleteRulesResponse) String() string { +func (x *BatchArchiveRulesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BatchUndeleteRulesResponse) ProtoMessage() {} +func (*BatchArchiveRulesResponse) ProtoMessage() {} -func (x *BatchUndeleteRulesResponse) ProtoReflect() protoreflect.Message { +func (x *BatchArchiveRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2201,24 +2229,23 @@ func (x *BatchUndeleteRulesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BatchUndeleteRulesResponse.ProtoReflect.Descriptor instead. -func (*BatchUndeleteRulesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use BatchArchiveRulesResponse.ProtoReflect.Descriptor instead. +func (*BatchArchiveRulesResponse) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{28} } -// Deprecated - use ViewJsonRulesRequest. -// -// Deprecated: Do not use. -type ViewHumanFriendlyRulesRequest struct { +// UndeleteRuleRequest is used to undelete a rule by rule_id or client_key. If both are provided, only rule_id will be used. +type UndeleteRuleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` } -func (x *ViewHumanFriendlyRulesRequest) Reset() { - *x = ViewHumanFriendlyRulesRequest{} +func (x *UndeleteRuleRequest) Reset() { + *x = UndeleteRuleRequest{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2226,13 +2253,13 @@ func (x *ViewHumanFriendlyRulesRequest) Reset() { } } -func (x *ViewHumanFriendlyRulesRequest) String() string { +func (x *UndeleteRuleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ViewHumanFriendlyRulesRequest) ProtoMessage() {} +func (*UndeleteRuleRequest) ProtoMessage() {} -func (x *ViewHumanFriendlyRulesRequest) ProtoReflect() protoreflect.Message { +func (x *UndeleteRuleRequest) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2244,31 +2271,33 @@ func (x *ViewHumanFriendlyRulesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ViewHumanFriendlyRulesRequest.ProtoReflect.Descriptor instead. -func (*ViewHumanFriendlyRulesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UndeleteRuleRequest.ProtoReflect.Descriptor instead. +func (*UndeleteRuleRequest) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{29} } -func (x *ViewHumanFriendlyRulesRequest) GetAssetId() string { +func (x *UndeleteRuleRequest) GetRuleId() string { if x != nil { - return x.AssetId + return x.RuleId } return "" } -// Deprecated - use ViewJsonRulesResponse. -// -// Deprecated: Do not use. -type ViewHumanFriendlyRulesResponse struct { +func (x *UndeleteRuleRequest) GetClientKey() string { + if x != nil { + return x.ClientKey + } + return "" +} + +type UndeleteRuleResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - RulesJson string `protobuf:"bytes,1,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` } -func (x *ViewHumanFriendlyRulesResponse) Reset() { - *x = ViewHumanFriendlyRulesResponse{} +func (x *UndeleteRuleResponse) Reset() { + *x = UndeleteRuleResponse{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2276,13 +2305,13 @@ func (x *ViewHumanFriendlyRulesResponse) Reset() { } } -func (x *ViewHumanFriendlyRulesResponse) String() string { +func (x *UndeleteRuleResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ViewHumanFriendlyRulesResponse) ProtoMessage() {} +func (*UndeleteRuleResponse) ProtoMessage() {} -func (x *ViewHumanFriendlyRulesResponse) ProtoReflect() protoreflect.Message { +func (x *UndeleteRuleResponse) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2294,33 +2323,23 @@ func (x *ViewHumanFriendlyRulesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ViewHumanFriendlyRulesResponse.ProtoReflect.Descriptor instead. -func (*ViewHumanFriendlyRulesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use UndeleteRuleResponse.ProtoReflect.Descriptor instead. +func (*UndeleteRuleResponse) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{30} } -func (x *ViewHumanFriendlyRulesResponse) GetRulesJson() string { - if x != nil { - return x.RulesJson - } - return "" -} - -// Deprecated - use UpdateJsonRulesRequest. -// -// Deprecated: Do not use. -type UpdateHumanFriendlyRulesRequest struct { +// BatchUndeleteRulesRequest is used to delete a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used. +type BatchUndeleteRulesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` - RulesJson string `protobuf:"bytes,2,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` - OrganizationId string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + RuleIds []string `protobuf:"bytes,1,rep,name=rule_ids,json=ruleIds,proto3" json:"rule_ids,omitempty"` + ClientKeys []string `protobuf:"bytes,2,rep,name=client_keys,json=clientKeys,proto3" json:"client_keys,omitempty"` } -func (x *UpdateHumanFriendlyRulesRequest) Reset() { - *x = UpdateHumanFriendlyRulesRequest{} +func (x *BatchUndeleteRulesRequest) Reset() { + *x = BatchUndeleteRulesRequest{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2328,13 +2347,13 @@ func (x *UpdateHumanFriendlyRulesRequest) Reset() { } } -func (x *UpdateHumanFriendlyRulesRequest) String() string { +func (x *BatchUndeleteRulesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateHumanFriendlyRulesRequest) ProtoMessage() {} +func (*BatchUndeleteRulesRequest) ProtoMessage() {} -func (x *UpdateHumanFriendlyRulesRequest) ProtoReflect() protoreflect.Message { +func (x *BatchUndeleteRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2346,47 +2365,33 @@ func (x *UpdateHumanFriendlyRulesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateHumanFriendlyRulesRequest.ProtoReflect.Descriptor instead. -func (*UpdateHumanFriendlyRulesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use BatchUndeleteRulesRequest.ProtoReflect.Descriptor instead. +func (*BatchUndeleteRulesRequest) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{31} } -func (x *UpdateHumanFriendlyRulesRequest) GetAssetId() string { - if x != nil { - return x.AssetId - } - return "" -} - -func (x *UpdateHumanFriendlyRulesRequest) GetRulesJson() string { +func (x *BatchUndeleteRulesRequest) GetRuleIds() []string { if x != nil { - return x.RulesJson + return x.RuleIds } - return "" + return nil } -func (x *UpdateHumanFriendlyRulesRequest) GetOrganizationId() string { +func (x *BatchUndeleteRulesRequest) GetClientKeys() []string { if x != nil { - return x.OrganizationId + return x.ClientKeys } - return "" + return nil } -// Deprecated - use UpdateJsonRulesResponse. -// -// Deprecated: Do not use. -type UpdateHumanFriendlyRulesResponse struct { +type BatchUndeleteRulesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - RulesCount int32 `protobuf:"varint,2,opt,name=rules_count,json=rulesCount,proto3" json:"rules_count,omitempty"` - Messages string `protobuf:"bytes,3,opt,name=messages,proto3" json:"messages,omitempty"` } -func (x *UpdateHumanFriendlyRulesResponse) Reset() { - *x = UpdateHumanFriendlyRulesResponse{} +func (x *BatchUndeleteRulesResponse) Reset() { + *x = BatchUndeleteRulesResponse{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2394,13 +2399,13 @@ func (x *UpdateHumanFriendlyRulesResponse) Reset() { } } -func (x *UpdateHumanFriendlyRulesResponse) String() string { +func (x *BatchUndeleteRulesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateHumanFriendlyRulesResponse) ProtoMessage() {} +func (*BatchUndeleteRulesResponse) ProtoMessage() {} -func (x *UpdateHumanFriendlyRulesResponse) ProtoReflect() protoreflect.Message { +func (x *BatchUndeleteRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2412,42 +2417,23 @@ func (x *UpdateHumanFriendlyRulesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateHumanFriendlyRulesResponse.ProtoReflect.Descriptor instead. -func (*UpdateHumanFriendlyRulesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use BatchUndeleteRulesResponse.ProtoReflect.Descriptor instead. +func (*BatchUndeleteRulesResponse) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{32} } -func (x *UpdateHumanFriendlyRulesResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -func (x *UpdateHumanFriendlyRulesResponse) GetRulesCount() int32 { - if x != nil { - return x.RulesCount - } - return 0 -} - -func (x *UpdateHumanFriendlyRulesResponse) GetMessages() string { - if x != nil { - return x.Messages - } - return "" -} - -type ViewJsonRulesRequest struct { +// UnarchiveRuleRequest is used to unarchive a rule by rule_id or client_key. If both are provided, only rule_id will be used. +type UnarchiveRuleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` } -func (x *ViewJsonRulesRequest) Reset() { - *x = ViewJsonRulesRequest{} +func (x *UnarchiveRuleRequest) Reset() { + *x = UnarchiveRuleRequest{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2455,13 +2441,13 @@ func (x *ViewJsonRulesRequest) Reset() { } } -func (x *ViewJsonRulesRequest) String() string { +func (x *UnarchiveRuleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ViewJsonRulesRequest) ProtoMessage() {} +func (*UnarchiveRuleRequest) ProtoMessage() {} -func (x *ViewJsonRulesRequest) ProtoReflect() protoreflect.Message { +func (x *UnarchiveRuleRequest) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2473,28 +2459,33 @@ func (x *ViewJsonRulesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ViewJsonRulesRequest.ProtoReflect.Descriptor instead. -func (*ViewJsonRulesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UnarchiveRuleRequest.ProtoReflect.Descriptor instead. +func (*UnarchiveRuleRequest) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{33} } -func (x *ViewJsonRulesRequest) GetAssetId() string { +func (x *UnarchiveRuleRequest) GetRuleId() string { if x != nil { - return x.AssetId + return x.RuleId } return "" } -type ViewJsonRulesResponse struct { +func (x *UnarchiveRuleRequest) GetClientKey() string { + if x != nil { + return x.ClientKey + } + return "" +} + +type UnarchiveRuleResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - RulesJson string `protobuf:"bytes,1,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` } -func (x *ViewJsonRulesResponse) Reset() { - *x = ViewJsonRulesResponse{} +func (x *UnarchiveRuleResponse) Reset() { + *x = UnarchiveRuleResponse{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2502,13 +2493,13 @@ func (x *ViewJsonRulesResponse) Reset() { } } -func (x *ViewJsonRulesResponse) String() string { +func (x *UnarchiveRuleResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ViewJsonRulesResponse) ProtoMessage() {} +func (*UnarchiveRuleResponse) ProtoMessage() {} -func (x *ViewJsonRulesResponse) ProtoReflect() protoreflect.Message { +func (x *UnarchiveRuleResponse) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2520,30 +2511,23 @@ func (x *ViewJsonRulesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ViewJsonRulesResponse.ProtoReflect.Descriptor instead. -func (*ViewJsonRulesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use UnarchiveRuleResponse.ProtoReflect.Descriptor instead. +func (*UnarchiveRuleResponse) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{34} } -func (x *ViewJsonRulesResponse) GetRulesJson() string { - if x != nil { - return x.RulesJson - } - return "" -} - -type JsonRulesRequest struct { +// BatchUnarchiveRulesRequest is used to unarchive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used. +type BatchUnarchiveRulesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` - RulesJson string `protobuf:"bytes,2,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` - OrganizationId string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + RuleIds []string `protobuf:"bytes,1,rep,name=rule_ids,json=ruleIds,proto3" json:"rule_ids,omitempty"` + ClientKeys []string `protobuf:"bytes,2,rep,name=client_keys,json=clientKeys,proto3" json:"client_keys,omitempty"` } -func (x *JsonRulesRequest) Reset() { - *x = JsonRulesRequest{} +func (x *BatchUnarchiveRulesRequest) Reset() { + *x = BatchUnarchiveRulesRequest{} if protoimpl.UnsafeEnabled { mi := &file_sift_rules_v1_rules_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2551,13 +2535,13 @@ func (x *JsonRulesRequest) Reset() { } } -func (x *JsonRulesRequest) String() string { +func (x *BatchUnarchiveRulesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*JsonRulesRequest) ProtoMessage() {} +func (*BatchUnarchiveRulesRequest) ProtoMessage() {} -func (x *JsonRulesRequest) ProtoReflect() protoreflect.Message { +func (x *BatchUnarchiveRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_sift_rules_v1_rules_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2569,12 +2553,432 @@ func (x *JsonRulesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use JsonRulesRequest.ProtoReflect.Descriptor instead. -func (*JsonRulesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use BatchUnarchiveRulesRequest.ProtoReflect.Descriptor instead. +func (*BatchUnarchiveRulesRequest) Descriptor() ([]byte, []int) { return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{35} } -func (x *JsonRulesRequest) GetAssetId() string { +func (x *BatchUnarchiveRulesRequest) GetRuleIds() []string { + if x != nil { + return x.RuleIds + } + return nil +} + +func (x *BatchUnarchiveRulesRequest) GetClientKeys() []string { + if x != nil { + return x.ClientKeys + } + return nil +} + +type BatchUnarchiveRulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BatchUnarchiveRulesResponse) Reset() { + *x = BatchUnarchiveRulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchUnarchiveRulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUnarchiveRulesResponse) ProtoMessage() {} + +func (x *BatchUnarchiveRulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchUnarchiveRulesResponse.ProtoReflect.Descriptor instead. +func (*BatchUnarchiveRulesResponse) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{36} +} + +// Deprecated - use ViewJsonRulesRequest. +// +// Deprecated: Do not use. +type ViewHumanFriendlyRulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (x *ViewHumanFriendlyRulesRequest) Reset() { + *x = ViewHumanFriendlyRulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewHumanFriendlyRulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewHumanFriendlyRulesRequest) ProtoMessage() {} + +func (x *ViewHumanFriendlyRulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViewHumanFriendlyRulesRequest.ProtoReflect.Descriptor instead. +func (*ViewHumanFriendlyRulesRequest) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{37} +} + +func (x *ViewHumanFriendlyRulesRequest) GetAssetId() string { + if x != nil { + return x.AssetId + } + return "" +} + +// Deprecated - use ViewJsonRulesResponse. +// +// Deprecated: Do not use. +type ViewHumanFriendlyRulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RulesJson string `protobuf:"bytes,1,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` +} + +func (x *ViewHumanFriendlyRulesResponse) Reset() { + *x = ViewHumanFriendlyRulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewHumanFriendlyRulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewHumanFriendlyRulesResponse) ProtoMessage() {} + +func (x *ViewHumanFriendlyRulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViewHumanFriendlyRulesResponse.ProtoReflect.Descriptor instead. +func (*ViewHumanFriendlyRulesResponse) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{38} +} + +func (x *ViewHumanFriendlyRulesResponse) GetRulesJson() string { + if x != nil { + return x.RulesJson + } + return "" +} + +// Deprecated - use UpdateJsonRulesRequest. +// +// Deprecated: Do not use. +type UpdateHumanFriendlyRulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + RulesJson string `protobuf:"bytes,2,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` + OrganizationId string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` +} + +func (x *UpdateHumanFriendlyRulesRequest) Reset() { + *x = UpdateHumanFriendlyRulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateHumanFriendlyRulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateHumanFriendlyRulesRequest) ProtoMessage() {} + +func (x *UpdateHumanFriendlyRulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateHumanFriendlyRulesRequest.ProtoReflect.Descriptor instead. +func (*UpdateHumanFriendlyRulesRequest) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{39} +} + +func (x *UpdateHumanFriendlyRulesRequest) GetAssetId() string { + if x != nil { + return x.AssetId + } + return "" +} + +func (x *UpdateHumanFriendlyRulesRequest) GetRulesJson() string { + if x != nil { + return x.RulesJson + } + return "" +} + +func (x *UpdateHumanFriendlyRulesRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +// Deprecated - use UpdateJsonRulesResponse. +// +// Deprecated: Do not use. +type UpdateHumanFriendlyRulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + RulesCount int32 `protobuf:"varint,2,opt,name=rules_count,json=rulesCount,proto3" json:"rules_count,omitempty"` + Messages string `protobuf:"bytes,3,opt,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *UpdateHumanFriendlyRulesResponse) Reset() { + *x = UpdateHumanFriendlyRulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateHumanFriendlyRulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateHumanFriendlyRulesResponse) ProtoMessage() {} + +func (x *UpdateHumanFriendlyRulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateHumanFriendlyRulesResponse.ProtoReflect.Descriptor instead. +func (*UpdateHumanFriendlyRulesResponse) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{40} +} + +func (x *UpdateHumanFriendlyRulesResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *UpdateHumanFriendlyRulesResponse) GetRulesCount() int32 { + if x != nil { + return x.RulesCount + } + return 0 +} + +func (x *UpdateHumanFriendlyRulesResponse) GetMessages() string { + if x != nil { + return x.Messages + } + return "" +} + +type ViewJsonRulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (x *ViewJsonRulesRequest) Reset() { + *x = ViewJsonRulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewJsonRulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewJsonRulesRequest) ProtoMessage() {} + +func (x *ViewJsonRulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViewJsonRulesRequest.ProtoReflect.Descriptor instead. +func (*ViewJsonRulesRequest) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{41} +} + +func (x *ViewJsonRulesRequest) GetAssetId() string { + if x != nil { + return x.AssetId + } + return "" +} + +type ViewJsonRulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RulesJson string `protobuf:"bytes,1,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` +} + +func (x *ViewJsonRulesResponse) Reset() { + *x = ViewJsonRulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewJsonRulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewJsonRulesResponse) ProtoMessage() {} + +func (x *ViewJsonRulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViewJsonRulesResponse.ProtoReflect.Descriptor instead. +func (*ViewJsonRulesResponse) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{42} +} + +func (x *ViewJsonRulesResponse) GetRulesJson() string { + if x != nil { + return x.RulesJson + } + return "" +} + +type JsonRulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + RulesJson string `protobuf:"bytes,2,opt,name=rules_json,json=rulesJson,proto3" json:"rules_json,omitempty"` + OrganizationId string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` +} + +func (x *JsonRulesRequest) Reset() { + *x = JsonRulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JsonRulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JsonRulesRequest) ProtoMessage() {} + +func (x *JsonRulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JsonRulesRequest.ProtoReflect.Descriptor instead. +func (*JsonRulesRequest) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{43} +} + +func (x *JsonRulesRequest) GetAssetId() string { if x != nil { return x.AssetId } @@ -2611,7 +3015,7 @@ type JsonRulesResponse struct { func (x *JsonRulesResponse) Reset() { *x = JsonRulesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[36] + mi := &file_sift_rules_v1_rules_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2624,7 +3028,7 @@ func (x *JsonRulesResponse) String() string { func (*JsonRulesResponse) ProtoMessage() {} func (x *JsonRulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[36] + mi := &file_sift_rules_v1_rules_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2637,7 +3041,7 @@ func (x *JsonRulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use JsonRulesResponse.ProtoReflect.Descriptor instead. func (*JsonRulesResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{36} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{44} } func (x *JsonRulesResponse) GetSuccess() bool { @@ -2693,7 +3097,7 @@ type ValidateJsonRulesRequest struct { func (x *ValidateJsonRulesRequest) Reset() { *x = ValidateJsonRulesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[37] + mi := &file_sift_rules_v1_rules_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2706,7 +3110,7 @@ func (x *ValidateJsonRulesRequest) String() string { func (*ValidateJsonRulesRequest) ProtoMessage() {} func (x *ValidateJsonRulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[37] + mi := &file_sift_rules_v1_rules_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2719,7 +3123,7 @@ func (x *ValidateJsonRulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateJsonRulesRequest.ProtoReflect.Descriptor instead. func (*ValidateJsonRulesRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{37} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{45} } func (x *ValidateJsonRulesRequest) GetRequest() *JsonRulesRequest { @@ -2740,7 +3144,7 @@ type ValidateJsonRulesResponse struct { func (x *ValidateJsonRulesResponse) Reset() { *x = ValidateJsonRulesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[38] + mi := &file_sift_rules_v1_rules_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2753,7 +3157,7 @@ func (x *ValidateJsonRulesResponse) String() string { func (*ValidateJsonRulesResponse) ProtoMessage() {} func (x *ValidateJsonRulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[38] + mi := &file_sift_rules_v1_rules_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2766,7 +3170,7 @@ func (x *ValidateJsonRulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateJsonRulesResponse.ProtoReflect.Descriptor instead. func (*ValidateJsonRulesResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{38} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{46} } func (x *ValidateJsonRulesResponse) GetResponse() *JsonRulesResponse { @@ -2787,7 +3191,7 @@ type UpdateJsonRulesRequest struct { func (x *UpdateJsonRulesRequest) Reset() { *x = UpdateJsonRulesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[39] + mi := &file_sift_rules_v1_rules_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2800,7 +3204,7 @@ func (x *UpdateJsonRulesRequest) String() string { func (*UpdateJsonRulesRequest) ProtoMessage() {} func (x *UpdateJsonRulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[39] + mi := &file_sift_rules_v1_rules_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2813,7 +3217,7 @@ func (x *UpdateJsonRulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJsonRulesRequest.ProtoReflect.Descriptor instead. func (*UpdateJsonRulesRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{39} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{47} } func (x *UpdateJsonRulesRequest) GetRequest() *JsonRulesRequest { @@ -2834,7 +3238,7 @@ type UpdateJsonRulesResponse struct { func (x *UpdateJsonRulesResponse) Reset() { *x = UpdateJsonRulesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[40] + mi := &file_sift_rules_v1_rules_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2847,7 +3251,7 @@ func (x *UpdateJsonRulesResponse) String() string { func (*UpdateJsonRulesResponse) ProtoMessage() {} func (x *UpdateJsonRulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[40] + mi := &file_sift_rules_v1_rules_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2860,7 +3264,7 @@ func (x *UpdateJsonRulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJsonRulesResponse.ProtoReflect.Descriptor instead. func (*UpdateJsonRulesResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{40} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{48} } func (x *UpdateJsonRulesResponse) GetResponse() *JsonRulesResponse { @@ -2886,7 +3290,8 @@ type ListRulesRequest struct { // the call that provided the page token. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `rule_id`, `client_key`, `name`, `description`, `asset_id`, `tag_id`, and `deleted_date`. + // Available fields to filter by are `rule_id`, `client_key`, `name`, `description`, `is_external`, `asset_id`, `tag_id`, + // `created_date`, `created_by_user_id`, `modified_date`, `modified_by_user_id`, `deleted_date`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -2899,7 +3304,7 @@ type ListRulesRequest struct { func (x *ListRulesRequest) Reset() { *x = ListRulesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[41] + mi := &file_sift_rules_v1_rules_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2912,7 +3317,7 @@ func (x *ListRulesRequest) String() string { func (*ListRulesRequest) ProtoMessage() {} func (x *ListRulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[41] + mi := &file_sift_rules_v1_rules_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2925,7 +3330,7 @@ func (x *ListRulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRulesRequest.ProtoReflect.Descriptor instead. func (*ListRulesRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{41} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{49} } func (x *ListRulesRequest) GetPageSize() uint32 { @@ -2968,7 +3373,7 @@ type ListRulesResponse struct { func (x *ListRulesResponse) Reset() { *x = ListRulesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[42] + mi := &file_sift_rules_v1_rules_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2981,7 +3386,7 @@ func (x *ListRulesResponse) String() string { func (*ListRulesResponse) ProtoMessage() {} func (x *ListRulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[42] + mi := &file_sift_rules_v1_rules_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2994,7 +3399,7 @@ func (x *ListRulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRulesResponse.ProtoReflect.Descriptor instead. func (*ListRulesResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{42} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{50} } func (x *ListRulesResponse) GetRules() []*Rule { @@ -3036,7 +3441,7 @@ type ListRuleVersionsRequest struct { func (x *ListRuleVersionsRequest) Reset() { *x = ListRuleVersionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[43] + mi := &file_sift_rules_v1_rules_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3049,7 +3454,7 @@ func (x *ListRuleVersionsRequest) String() string { func (*ListRuleVersionsRequest) ProtoMessage() {} func (x *ListRuleVersionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[43] + mi := &file_sift_rules_v1_rules_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3062,7 +3467,7 @@ func (x *ListRuleVersionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRuleVersionsRequest.ProtoReflect.Descriptor instead. func (*ListRuleVersionsRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{43} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{51} } func (x *ListRuleVersionsRequest) GetRuleId() string { @@ -3105,13 +3510,18 @@ type RuleVersion struct { CreatedByUserId string `protobuf:"bytes,5,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` VersionNotes string `protobuf:"bytes,6,opt,name=version_notes,json=versionNotes,proto3" json:"version_notes,omitempty"` GeneratedChangeMessage string `protobuf:"bytes,7,opt,name=generated_change_message,json=generatedChangeMessage,proto3" json:"generated_change_message,omitempty"` - DeletedDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=deleted_date,json=deletedDate,proto3" json:"deleted_date,omitempty"` + // Deprecated: Do not use. + DeletedDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=deleted_date,json=deletedDate,proto3" json:"deleted_date,omitempty"` + // archived_date indicates when the rule version was archived + ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=archived_date,json=archivedDate,proto3" json:"archived_date,omitempty"` + // is_archived is inferred from when archived_date is not null + IsArchived bool `protobuf:"varint,10,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` } func (x *RuleVersion) Reset() { *x = RuleVersion{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[44] + mi := &file_sift_rules_v1_rules_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3124,7 +3534,7 @@ func (x *RuleVersion) String() string { func (*RuleVersion) ProtoMessage() {} func (x *RuleVersion) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[44] + mi := &file_sift_rules_v1_rules_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3137,7 +3547,7 @@ func (x *RuleVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleVersion.ProtoReflect.Descriptor instead. func (*RuleVersion) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{44} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{52} } func (x *RuleVersion) GetRuleId() string { @@ -3189,6 +3599,7 @@ func (x *RuleVersion) GetGeneratedChangeMessage() string { return "" } +// Deprecated: Do not use. func (x *RuleVersion) GetDeletedDate() *timestamppb.Timestamp { if x != nil { return x.DeletedDate @@ -3196,6 +3607,20 @@ func (x *RuleVersion) GetDeletedDate() *timestamppb.Timestamp { return nil } +func (x *RuleVersion) GetArchivedDate() *timestamppb.Timestamp { + if x != nil { + return x.ArchivedDate + } + return nil +} + +func (x *RuleVersion) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + type ListRuleVersionsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3208,7 +3633,7 @@ type ListRuleVersionsResponse struct { func (x *ListRuleVersionsResponse) Reset() { *x = ListRuleVersionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[45] + mi := &file_sift_rules_v1_rules_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3221,7 +3646,7 @@ func (x *ListRuleVersionsResponse) String() string { func (*ListRuleVersionsResponse) ProtoMessage() {} func (x *ListRuleVersionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[45] + mi := &file_sift_rules_v1_rules_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3234,7 +3659,7 @@ func (x *ListRuleVersionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRuleVersionsResponse.ProtoReflect.Descriptor instead. func (*ListRuleVersionsResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{45} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{53} } func (x *ListRuleVersionsResponse) GetRuleVersions() []*RuleVersion { @@ -3262,7 +3687,7 @@ type GetRuleVersionRequest struct { func (x *GetRuleVersionRequest) Reset() { *x = GetRuleVersionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[46] + mi := &file_sift_rules_v1_rules_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3275,7 +3700,7 @@ func (x *GetRuleVersionRequest) String() string { func (*GetRuleVersionRequest) ProtoMessage() {} func (x *GetRuleVersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[46] + mi := &file_sift_rules_v1_rules_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3288,7 +3713,7 @@ func (x *GetRuleVersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRuleVersionRequest.ProtoReflect.Descriptor instead. func (*GetRuleVersionRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{46} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{54} } func (x *GetRuleVersionRequest) GetRuleVersionId() string { @@ -3309,7 +3734,7 @@ type GetRuleVersionResponse struct { func (x *GetRuleVersionResponse) Reset() { *x = GetRuleVersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[47] + mi := &file_sift_rules_v1_rules_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3322,7 +3747,7 @@ func (x *GetRuleVersionResponse) String() string { func (*GetRuleVersionResponse) ProtoMessage() {} func (x *GetRuleVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[47] + mi := &file_sift_rules_v1_rules_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3335,7 +3760,7 @@ func (x *GetRuleVersionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRuleVersionResponse.ProtoReflect.Descriptor instead. func (*GetRuleVersionResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{47} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{55} } func (x *GetRuleVersionResponse) GetRule() *Rule { @@ -3356,7 +3781,7 @@ type BatchGetRuleVersionsRequest struct { func (x *BatchGetRuleVersionsRequest) Reset() { *x = BatchGetRuleVersionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[48] + mi := &file_sift_rules_v1_rules_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3369,7 +3794,7 @@ func (x *BatchGetRuleVersionsRequest) String() string { func (*BatchGetRuleVersionsRequest) ProtoMessage() {} func (x *BatchGetRuleVersionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[48] + mi := &file_sift_rules_v1_rules_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3382,7 +3807,7 @@ func (x *BatchGetRuleVersionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchGetRuleVersionsRequest.ProtoReflect.Descriptor instead. func (*BatchGetRuleVersionsRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{48} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{56} } func (x *BatchGetRuleVersionsRequest) GetRuleVersionIds() []string { @@ -3403,7 +3828,7 @@ type BatchGetRuleVersionsResponse struct { func (x *BatchGetRuleVersionsResponse) Reset() { *x = BatchGetRuleVersionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[49] + mi := &file_sift_rules_v1_rules_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3416,7 +3841,7 @@ func (x *BatchGetRuleVersionsResponse) String() string { func (*BatchGetRuleVersionsResponse) ProtoMessage() {} func (x *BatchGetRuleVersionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[49] + mi := &file_sift_rules_v1_rules_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3429,7 +3854,7 @@ func (x *BatchGetRuleVersionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchGetRuleVersionsResponse.ProtoReflect.Descriptor instead. func (*BatchGetRuleVersionsResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{49} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{57} } func (x *BatchGetRuleVersionsResponse) GetRules() []*Rule { @@ -3454,7 +3879,7 @@ type RuleConditionExpression struct { func (x *RuleConditionExpression) Reset() { *x = RuleConditionExpression{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[50] + mi := &file_sift_rules_v1_rules_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3467,7 +3892,7 @@ func (x *RuleConditionExpression) String() string { func (*RuleConditionExpression) ProtoMessage() {} func (x *RuleConditionExpression) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[50] + mi := &file_sift_rules_v1_rules_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3480,7 +3905,7 @@ func (x *RuleConditionExpression) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleConditionExpression.ProtoReflect.Descriptor instead. func (*RuleConditionExpression) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{50} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{58} } func (m *RuleConditionExpression) GetExpression() isRuleConditionExpression_Expression { @@ -3545,7 +3970,7 @@ type SingleChannelComparisonExpression struct { func (x *SingleChannelComparisonExpression) Reset() { *x = SingleChannelComparisonExpression{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[51] + mi := &file_sift_rules_v1_rules_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3558,7 +3983,7 @@ func (x *SingleChannelComparisonExpression) String() string { func (*SingleChannelComparisonExpression) ProtoMessage() {} func (x *SingleChannelComparisonExpression) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[51] + mi := &file_sift_rules_v1_rules_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3571,7 +3996,7 @@ func (x *SingleChannelComparisonExpression) ProtoReflect() protoreflect.Message // Deprecated: Use SingleChannelComparisonExpression.ProtoReflect.Descriptor instead. func (*SingleChannelComparisonExpression) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{51} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{59} } func (x *SingleChannelComparisonExpression) GetChannelComponent() string { @@ -3654,7 +4079,7 @@ type LastValueThreshold struct { func (x *LastValueThreshold) Reset() { *x = LastValueThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[52] + mi := &file_sift_rules_v1_rules_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3667,7 +4092,7 @@ func (x *LastValueThreshold) String() string { func (*LastValueThreshold) ProtoMessage() {} func (x *LastValueThreshold) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[52] + mi := &file_sift_rules_v1_rules_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3680,7 +4105,7 @@ func (x *LastValueThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use LastValueThreshold.ProtoReflect.Descriptor instead. func (*LastValueThreshold) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{52} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{60} } type CalculatedChannelConfig struct { @@ -3697,7 +4122,7 @@ type CalculatedChannelConfig struct { func (x *CalculatedChannelConfig) Reset() { *x = CalculatedChannelConfig{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[53] + mi := &file_sift_rules_v1_rules_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3710,7 +4135,7 @@ func (x *CalculatedChannelConfig) String() string { func (*CalculatedChannelConfig) ProtoMessage() {} func (x *CalculatedChannelConfig) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[53] + mi := &file_sift_rules_v1_rules_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3723,7 +4148,7 @@ func (x *CalculatedChannelConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use CalculatedChannelConfig.ProtoReflect.Descriptor instead. func (*CalculatedChannelConfig) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{53} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{61} } func (x *CalculatedChannelConfig) GetChannelReferences() map[string]*ChannelReference { @@ -3760,7 +4185,7 @@ type ChannelReference struct { func (x *ChannelReference) Reset() { *x = ChannelReference{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[54] + mi := &file_sift_rules_v1_rules_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3773,7 +4198,7 @@ func (x *ChannelReference) String() string { func (*ChannelReference) ProtoMessage() {} func (x *ChannelReference) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[54] + mi := &file_sift_rules_v1_rules_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3786,7 +4211,7 @@ func (x *ChannelReference) ProtoReflect() protoreflect.Message { // Deprecated: Use ChannelReference.ProtoReflect.Descriptor instead. func (*ChannelReference) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{54} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{62} } func (x *ChannelReference) GetName() string { @@ -3818,7 +4243,7 @@ type RuleActionConfiguration struct { func (x *RuleActionConfiguration) Reset() { *x = RuleActionConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[55] + mi := &file_sift_rules_v1_rules_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3831,7 +4256,7 @@ func (x *RuleActionConfiguration) String() string { func (*RuleActionConfiguration) ProtoMessage() {} func (x *RuleActionConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[55] + mi := &file_sift_rules_v1_rules_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3844,7 +4269,7 @@ func (x *RuleActionConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleActionConfiguration.ProtoReflect.Descriptor instead. func (*RuleActionConfiguration) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{55} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{63} } func (m *RuleActionConfiguration) GetConfiguration() isRuleActionConfiguration_Configuration { @@ -3895,7 +4320,7 @@ type NotificationActionConfiguration struct { func (x *NotificationActionConfiguration) Reset() { *x = NotificationActionConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[56] + mi := &file_sift_rules_v1_rules_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3908,7 +4333,7 @@ func (x *NotificationActionConfiguration) String() string { func (*NotificationActionConfiguration) ProtoMessage() {} func (x *NotificationActionConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[56] + mi := &file_sift_rules_v1_rules_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3921,7 +4346,7 @@ func (x *NotificationActionConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationActionConfiguration.ProtoReflect.Descriptor instead. func (*NotificationActionConfiguration) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{56} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{64} } func (x *NotificationActionConfiguration) GetRecipientUserIds() []string { @@ -3945,7 +4370,7 @@ type AnnotationActionConfiguration struct { func (x *AnnotationActionConfiguration) Reset() { *x = AnnotationActionConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[57] + mi := &file_sift_rules_v1_rules_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3958,7 +4383,7 @@ func (x *AnnotationActionConfiguration) String() string { func (*AnnotationActionConfiguration) ProtoMessage() {} func (x *AnnotationActionConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[57] + mi := &file_sift_rules_v1_rules_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3971,7 +4396,7 @@ func (x *AnnotationActionConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use AnnotationActionConfiguration.ProtoReflect.Descriptor instead. func (*AnnotationActionConfiguration) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{57} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{65} } func (x *AnnotationActionConfiguration) GetTagIds() []string { @@ -4023,7 +4448,7 @@ type EvaluateRulesRequest struct { func (x *EvaluateRulesRequest) Reset() { *x = EvaluateRulesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[58] + mi := &file_sift_rules_v1_rules_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4036,7 +4461,7 @@ func (x *EvaluateRulesRequest) String() string { func (*EvaluateRulesRequest) ProtoMessage() {} func (x *EvaluateRulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[58] + mi := &file_sift_rules_v1_rules_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4049,7 +4474,7 @@ func (x *EvaluateRulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluateRulesRequest.ProtoReflect.Descriptor instead. func (*EvaluateRulesRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{58} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{66} } func (x *EvaluateRulesRequest) GetRuleIds() []string { @@ -4121,7 +4546,7 @@ type EvaluatedAnnotationOptions struct { func (x *EvaluatedAnnotationOptions) Reset() { *x = EvaluatedAnnotationOptions{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[59] + mi := &file_sift_rules_v1_rules_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4134,7 +4559,7 @@ func (x *EvaluatedAnnotationOptions) String() string { func (*EvaluatedAnnotationOptions) ProtoMessage() {} func (x *EvaluatedAnnotationOptions) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[59] + mi := &file_sift_rules_v1_rules_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4147,7 +4572,7 @@ func (x *EvaluatedAnnotationOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluatedAnnotationOptions.ProtoReflect.Descriptor instead. func (*EvaluatedAnnotationOptions) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{59} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{67} } func (x *EvaluatedAnnotationOptions) GetTagIds() []string { @@ -4169,7 +4594,7 @@ type TimeRangeQuery struct { func (x *TimeRangeQuery) Reset() { *x = TimeRangeQuery{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[60] + mi := &file_sift_rules_v1_rules_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4182,7 +4607,7 @@ func (x *TimeRangeQuery) String() string { func (*TimeRangeQuery) ProtoMessage() {} func (x *TimeRangeQuery) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[60] + mi := &file_sift_rules_v1_rules_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4195,7 +4620,7 @@ func (x *TimeRangeQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use TimeRangeQuery.ProtoReflect.Descriptor instead. func (*TimeRangeQuery) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{60} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{68} } func (x *TimeRangeQuery) GetStartTime() *timestamppb.Timestamp { @@ -4231,7 +4656,7 @@ type EvaluateRulesResponse struct { func (x *EvaluateRulesResponse) Reset() { *x = EvaluateRulesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[61] + mi := &file_sift_rules_v1_rules_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4244,7 +4669,7 @@ func (x *EvaluateRulesResponse) String() string { func (*EvaluateRulesResponse) ProtoMessage() {} func (x *EvaluateRulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[61] + mi := &file_sift_rules_v1_rules_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4257,7 +4682,7 @@ func (x *EvaluateRulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluateRulesResponse.ProtoReflect.Descriptor instead. func (*EvaluateRulesResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{61} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{69} } func (x *EvaluateRulesResponse) GetCreatedAnnotationCount() int32 { @@ -4303,7 +4728,7 @@ type DryRunAnnotation struct { func (x *DryRunAnnotation) Reset() { *x = DryRunAnnotation{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[62] + mi := &file_sift_rules_v1_rules_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4316,7 +4741,7 @@ func (x *DryRunAnnotation) String() string { func (*DryRunAnnotation) ProtoMessage() {} func (x *DryRunAnnotation) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[62] + mi := &file_sift_rules_v1_rules_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4329,7 +4754,7 @@ func (x *DryRunAnnotation) ProtoReflect() protoreflect.Message { // Deprecated: Use DryRunAnnotation.ProtoReflect.Descriptor instead. func (*DryRunAnnotation) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{62} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{70} } func (x *DryRunAnnotation) GetConditionId() string { @@ -4380,7 +4805,7 @@ type BatchUpdateRulesResponse_RuleIdentifiers struct { func (x *BatchUpdateRulesResponse_RuleIdentifiers) Reset() { *x = BatchUpdateRulesResponse_RuleIdentifiers{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[63] + mi := &file_sift_rules_v1_rules_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4393,7 +4818,7 @@ func (x *BatchUpdateRulesResponse_RuleIdentifiers) String() string { func (*BatchUpdateRulesResponse_RuleIdentifiers) ProtoMessage() {} func (x *BatchUpdateRulesResponse_RuleIdentifiers) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[63] + mi := &file_sift_rules_v1_rules_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4455,7 +4880,7 @@ var file_sift_rules_v1_rules_proto_rawDesc = []byte{ 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xdb, 0x07, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x07, + 0x6f, 0x74, 0x6f, 0x22, 0xc9, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0x18, 0x01, @@ -4506,965 +4931,1064 @@ var file_sift_rules_v1_rules_proto_rawDesc = []byte{ 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, - 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x44, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x11, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, - 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x05, 0x10, - 0x06, 0x22, 0x9b, 0x04, 0x0a, 0x0d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, - 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x05, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x38, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x19, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x16, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, - 0xa6, 0x04, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, - 0x0a, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x72, 0x75, 0x6c, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x11, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0b, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, - 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x70, 0x42, 0x05, 0x18, 0x01, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, + 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x14, 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, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, - 0x0a, 0x16, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x16, 0x52, 0x75, 0x6c, 0x65, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x40, - 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x22, 0xb6, 0x01, 0x0a, 0x1f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x01, - 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x61, 0x73, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x08, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, - 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x61, 0x67, - 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x62, 0x79, 0x22, 0x60, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x22, 0x52, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, 0x75, - 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x3f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, - 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x5c, 0x0a, 0x14, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, - 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x47, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x22, 0x52, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x22, 0x32, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xa1, 0x05, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, - 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x08, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, - 0x18, 0x01, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x24, - 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x05, 0x18, 0x01, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x22, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, - 0x01, 0x01, 0x12, 0x56, 0x0a, 0x13, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x75, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x61, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x13, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, - 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xf5, 0x01, 0x0a, - 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, - 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x4a, 0x04, - 0x08, 0x02, 0x10, 0x03, 0x22, 0xe7, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0e, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, + 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, + 0x9b, 0x04, 0x0a, 0x0d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, + 0x12, 0x4b, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x06, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, + 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x19, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x16, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xa6, 0x04, + 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x32, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, - 0x49, 0x64, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, - 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x82, 0x01, 0x0a, 0x23, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x20, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1e, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x06, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x16, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x16, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x08, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xb6, + 0x01, 0x0a, 0x1f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, + 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x35, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x01, 0x52, 0x05, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, + 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x61, 0x73, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, + 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x61, 0x67, 0x73, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x22, 0x60, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x22, 0x52, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x3f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x75, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x5c, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, + 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x47, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, + 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x52, + 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, - 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x1e, 0x6f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, - 0x64, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x04, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x53, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x76, 0x0a, 0x18, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x73, 0x1a, 0x80, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, - 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x55, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x22, 0x32, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xc7, 0x05, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x08, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0x18, 0x01, + 0xe0, 0x41, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0a, + 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x05, 0x18, 0x01, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0a, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x56, 0x0a, 0x13, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x61, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x22, 0xf5, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0a, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x07, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xe7, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6c, 0x65, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0b, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x0d, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x22, 0x32, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x14, 0x0a, - 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x24, - 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x57, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, - 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x6e, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x61, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x24, - 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x43, 0x0a, 0x1d, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x48, 0x0a, 0x1e, 0x56, 0x69, 0x65, 0x77, 0x48, - 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x3a, 0x02, 0x18, - 0x01, 0x22, 0x97, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, - 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, - 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x8c, 0x01, 0x0a, 0x20, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, - 0x24, 0x0a, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x36, 0x0a, 0x14, 0x56, 0x69, - 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x15, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, - 0x84, 0x01, 0x0a, 0x10, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xc1, 0x02, 0x0a, 0x11, 0x4a, 0x73, 0x6f, 0x6e, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x07, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x18, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x82, 0x01, + 0x0a, 0x23, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xcb, 0x01, 0x0a, + 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, + 0x49, 0x0a, 0x1e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x04, 0x0a, 0x18, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x53, 0x0a, 0x12, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, + 0x76, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x1a, 0x80, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6c, 0x65, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x55, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, + 0x79, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, + 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x0a, 0x12, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x15, 0x0a, 0x13, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, + 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1b, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x57, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x16, 0x0a, 0x14, 0x55, + 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, + 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, + 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x14, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x17, + 0x0a, 0x15, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x1d, 0x56, 0x69, + 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x3a, 0x02, 0x18, 0x01, 0x22, + 0x48, 0x0a, 0x1e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x1f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, + 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, + 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, + 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, + 0x02, 0x18, 0x01, 0x22, 0x8c, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, + 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, + 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x02, + 0x18, 0x01, 0x22, 0x36, 0x0a, 0x14, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x15, 0x56, 0x69, + 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x4a, 0x73, 0x6f, 0x6e, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, + 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xc1, + 0x02, 0x0a, 0x11, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, + 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x18, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, + 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, + 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x5c, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5e, + 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, - 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x6b, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x95, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x9a, 0x03, 0x0a, 0x0b, - 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x18, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, + 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5c, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, + 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x6b, + 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x95, 0x01, 0x0a, 0x17, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, + 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x22, 0x88, 0x04, 0x0a, 0x0b, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, + 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x6f, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x3d, 0x0a, + 0x18, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0c, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, 0x05, + 0x18, 0x01, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x22, 0x88, + 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x44, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, + 0x46, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x75, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x4c, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x4e, 0x0a, 0x1c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x72, - 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x44, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0f, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x72, 0x75, 0x6c, - 0x65, 0x22, 0x4c, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, - 0x4e, 0x0a, 0x1c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, - 0xf4, 0x01, 0x0a, 0x17, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x72, 0x0a, 0x19, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x17, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, - 0x57, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x02, 0x0a, 0x21, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, - 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x11, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x26, - 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x18, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, - 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x61, - 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xfb, 0x02, 0x0a, 0x17, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x71, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x17, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x72, 0x0a, 0x19, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x17, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, + 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x0c, + 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x02, 0x0a, + 0x21, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0a, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x0a, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, + 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x48, 0x00, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x61, + 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x22, 0xfb, 0x02, 0x0a, 0x17, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x71, 0x0a, 0x12, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x65, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x61, - 0x0a, 0x15, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, - 0x73, 0x1a, 0x65, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x17, 0x52, 0x75, 0x6c, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0a, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x54, 0x0a, 0x1f, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, - 0x0a, 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, + 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0xd0, + 0x01, 0x0a, 0x17, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0c, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4e, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0f, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x54, 0x0a, 0x1f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x94, 0x02, 0x0a, 0x1d, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x73, 0x22, 0x94, 0x02, 0x0a, 0x1d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, - 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x32, 0x0a, 0x13, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x6f, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x8e, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, - 0x73, 0x12, 0x58, 0x0a, 0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x72, - 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, - 0x75, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x3a, 0x02, 0x18, - 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x1a, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, - 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x38, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, - 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, - 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, - 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, - 0x14, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a, - 0x5c, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x20, - 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, - 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, - 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, - 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x2a, 0x5c, 0x0a, - 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x17, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x0c, - 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, - 0x0a, 0x0a, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0b, - 0x0a, 0x07, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x10, 0x03, 0x2a, 0xad, 0x01, 0x0a, 0x13, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, - 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, - 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, - 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, - 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, - 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x06, 0x32, 0xd0, 0x20, 0x0a, 0x0b, - 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x63, 0x92, 0x41, 0x41, 0x12, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x32, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, - 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x94, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x32, 0x12, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, - 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xaa, - 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x2a, - 0x12, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, - 0x19, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, - 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x38, 0x92, 0x41, 0x1d, 0x12, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x1a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0a, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, - 0x41, 0x27, 0x12, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x19, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, - 0x01, 0x2a, 0x1a, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0xda, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, 0x4e, 0x12, 0x10, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x3a, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, - 0x3a, 0x01, 0x2a, 0x1a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x92, - 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3f, 0x92, 0x41, 0x1d, 0x12, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x1a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x2b, 0x12, 0x10, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x1a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, - 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x9e, 0x01, - 0x0a, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x22, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x92, 0x41, 0x21, 0x12, 0x0c, 0x55, 0x6e, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x11, 0x55, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xc3, - 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x92, 0x41, 0x2f, 0x12, - 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x1a, 0x19, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0xdf, 0x01, 0x0a, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, + 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x13, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x8e, + 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x58, 0x0a, 0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x17, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, + 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, + 0x52, 0x75, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, + 0x35, 0x0a, 0x1a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x15, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, + 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, + 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x3a, 0x02, + 0x18, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x10, + 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a, 0x5c, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, + 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, + 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, + 0x43, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, + 0x64, 0x12, 0x1f, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, + 0x08, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x10, + 0x03, 0x2a, 0xad, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x20, 0x43, 0x4f, 0x4e, + 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, + 0x02, 0x08, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, + 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, + 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, + 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, + 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, + 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, + 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, + 0x06, 0x32, 0x9f, 0x27, 0x0a, 0x0b, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x92, 0x41, 0x41, 0x12, 0x0b, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x32, 0x51, 0x75, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x94, 0x01, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x32, 0x12, 0x07, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4e, 0x92, 0x41, 0x2a, 0x12, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, + 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x92, 0x41, 0x1d, 0x12, 0x0a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, + 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x95, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x27, 0x12, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, + 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x1a, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, + 0x41, 0x4e, 0x12, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x3a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x1a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0xbb, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x88, 0x02, 0x01, 0x92, 0x41, 0x43, + 0x12, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x35, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x20, 0x44, + 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, + 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x1f, 0x12, 0x0b, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x10, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xe7, 0x01, + 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x57, 0x12, 0x10, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x43, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, + 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xba, 0x01, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x52, 0x92, 0x41, 0x2a, 0x12, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0d, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x48, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x12, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, + 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xc6, 0x01, 0x0a, 0x13, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x92, 0x41, 0x2e, 0x12, + 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x6e, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, + 0x88, 0x02, 0x01, 0x92, 0x41, 0x36, 0x12, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x26, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xd9, 0x01, + 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x88, 0x02, 0x01, 0x92, 0x41, + 0x42, 0x12, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x2c, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, + 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xdf, 0x01, 0x0a, 0x0d, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x82, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x5b, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x4a, 0x45, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x12, 0x84, 0x02, 0x0a, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, - 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x5b, 0x12, + 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x4a, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, + 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x12, 0x84, 0x02, 0x0a, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, - 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, - 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x5f, 0x12, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, - 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, - 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, - 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, - 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x12, 0xd6, 0x01, - 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x5f, 0x12, 0x16, 0x56, 0x69, + 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, + 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x3a, 0x76, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x6c, 0x79, 0x12, 0xd6, 0x01, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7a, 0x88, 0x02, 0x01, 0x92, - 0x41, 0x56, 0x12, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, - 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, - 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x94, 0x02, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x64, 0x12, 0x18, 0x55, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, + 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x7a, 0x88, 0x02, 0x01, 0x92, 0x41, 0x56, 0x12, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, + 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x94, 0x02, 0x0a, 0x18, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x88, 0x02, 0x01, 0x92, + 0x41, 0x64, 0x12, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x22, + 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, - 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, - 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x12, 0x80, 0x02, - 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x6c, 0x12, - 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x1a, 0x57, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, - 0x12, 0xe7, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x5b, 0x12, 0x0f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, - 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x94, 0x01, 0x0a, 0x09, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x92, 0x41, 0x27, - 0x12, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x1a, 0x52, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0xd9, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, + 0x6c, 0x79, 0x12, 0x80, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x01, 0x88, 0x02, + 0x01, 0x92, 0x41, 0x6c, 0x12, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, + 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x57, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, + 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, + 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0xe7, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, + 0x5b, 0x12, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x1a, 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, + 0x94, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x74, 0x92, 0x41, 0x49, 0x12, 0x10, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x35, - 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb8, 0x01, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, - 0x41, 0x39, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x3a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xdf, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x92, 0x41, 0x42, 0x12, - 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, - 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb1, 0x01, 0x92, 0x41, 0xad, - 0x01, 0x12, 0x30, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x1a, 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0xc1, - 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, - 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, - 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, - 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, - 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, - 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x44, 0x92, 0x41, 0x27, 0x12, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x1a, 0x1a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x12, 0xd9, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x74, 0x92, 0x41, + 0x49, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x1a, 0x35, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, + 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, + 0x7b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, 0x39, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xdf, 0x01, + 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x6e, 0x92, 0x41, 0x42, 0x12, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2a, 0x52, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, + 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, + 0xb1, 0x01, 0x92, 0x41, 0xad, 0x01, 0x12, 0x30, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, + 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, + 0x31, 0x30, 0x32, 0x42, 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, + 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x52, 0x75, 0x6c, 0x65, 0x20, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5480,7 +6004,7 @@ func file_sift_rules_v1_rules_proto_rawDescGZIP() []byte { } var file_sift_rules_v1_rules_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_sift_rules_v1_rules_proto_msgTypes = make([]protoimpl.MessageInfo, 65) +var file_sift_rules_v1_rules_proto_msgTypes = make([]protoimpl.MessageInfo, 73) var file_sift_rules_v1_rules_proto_goTypes = []interface{}{ (SearchOrder)(0), // 0: sift.rules.v1.SearchOrder (ActionKind)(0), // 1: sift.rules.v1.ActionKind @@ -5510,161 +6034,179 @@ var file_sift_rules_v1_rules_proto_goTypes = []interface{}{ (*DeleteRuleResponse)(nil), // 25: sift.rules.v1.DeleteRuleResponse (*BatchDeleteRulesRequest)(nil), // 26: sift.rules.v1.BatchDeleteRulesRequest (*BatchDeleteRulesResponse)(nil), // 27: sift.rules.v1.BatchDeleteRulesResponse - (*UndeleteRuleRequest)(nil), // 28: sift.rules.v1.UndeleteRuleRequest - (*UndeleteRuleResponse)(nil), // 29: sift.rules.v1.UndeleteRuleResponse - (*BatchUndeleteRulesRequest)(nil), // 30: sift.rules.v1.BatchUndeleteRulesRequest - (*BatchUndeleteRulesResponse)(nil), // 31: sift.rules.v1.BatchUndeleteRulesResponse - (*ViewHumanFriendlyRulesRequest)(nil), // 32: sift.rules.v1.ViewHumanFriendlyRulesRequest - (*ViewHumanFriendlyRulesResponse)(nil), // 33: sift.rules.v1.ViewHumanFriendlyRulesResponse - (*UpdateHumanFriendlyRulesRequest)(nil), // 34: sift.rules.v1.UpdateHumanFriendlyRulesRequest - (*UpdateHumanFriendlyRulesResponse)(nil), // 35: sift.rules.v1.UpdateHumanFriendlyRulesResponse - (*ViewJsonRulesRequest)(nil), // 36: sift.rules.v1.ViewJsonRulesRequest - (*ViewJsonRulesResponse)(nil), // 37: sift.rules.v1.ViewJsonRulesResponse - (*JsonRulesRequest)(nil), // 38: sift.rules.v1.JsonRulesRequest - (*JsonRulesResponse)(nil), // 39: sift.rules.v1.JsonRulesResponse - (*ValidateJsonRulesRequest)(nil), // 40: sift.rules.v1.ValidateJsonRulesRequest - (*ValidateJsonRulesResponse)(nil), // 41: sift.rules.v1.ValidateJsonRulesResponse - (*UpdateJsonRulesRequest)(nil), // 42: sift.rules.v1.UpdateJsonRulesRequest - (*UpdateJsonRulesResponse)(nil), // 43: sift.rules.v1.UpdateJsonRulesResponse - (*ListRulesRequest)(nil), // 44: sift.rules.v1.ListRulesRequest - (*ListRulesResponse)(nil), // 45: sift.rules.v1.ListRulesResponse - (*ListRuleVersionsRequest)(nil), // 46: sift.rules.v1.ListRuleVersionsRequest - (*RuleVersion)(nil), // 47: sift.rules.v1.RuleVersion - (*ListRuleVersionsResponse)(nil), // 48: sift.rules.v1.ListRuleVersionsResponse - (*GetRuleVersionRequest)(nil), // 49: sift.rules.v1.GetRuleVersionRequest - (*GetRuleVersionResponse)(nil), // 50: sift.rules.v1.GetRuleVersionResponse - (*BatchGetRuleVersionsRequest)(nil), // 51: sift.rules.v1.BatchGetRuleVersionsRequest - (*BatchGetRuleVersionsResponse)(nil), // 52: sift.rules.v1.BatchGetRuleVersionsResponse - (*RuleConditionExpression)(nil), // 53: sift.rules.v1.RuleConditionExpression - (*SingleChannelComparisonExpression)(nil), // 54: sift.rules.v1.SingleChannelComparisonExpression - (*LastValueThreshold)(nil), // 55: sift.rules.v1.LastValueThreshold - (*CalculatedChannelConfig)(nil), // 56: sift.rules.v1.CalculatedChannelConfig - (*ChannelReference)(nil), // 57: sift.rules.v1.ChannelReference - (*RuleActionConfiguration)(nil), // 58: sift.rules.v1.RuleActionConfiguration - (*NotificationActionConfiguration)(nil), // 59: sift.rules.v1.NotificationActionConfiguration - (*AnnotationActionConfiguration)(nil), // 60: sift.rules.v1.AnnotationActionConfiguration - (*EvaluateRulesRequest)(nil), // 61: sift.rules.v1.EvaluateRulesRequest - (*EvaluatedAnnotationOptions)(nil), // 62: sift.rules.v1.EvaluatedAnnotationOptions - (*TimeRangeQuery)(nil), // 63: sift.rules.v1.TimeRangeQuery - (*EvaluateRulesResponse)(nil), // 64: sift.rules.v1.EvaluateRulesResponse - (*DryRunAnnotation)(nil), // 65: sift.rules.v1.DryRunAnnotation - (*BatchUpdateRulesResponse_RuleIdentifiers)(nil), // 66: sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers - nil, // 67: sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry - (*timestamppb.Timestamp)(nil), // 68: google.protobuf.Timestamp - (*v1.MetadataValue)(nil), // 69: sift.metadata.v1.MetadataValue - (*v11.NamedResources)(nil), // 70: sift.common.type.v1.NamedResources - (*v11.FunctionDependency)(nil), // 71: sift.common.type.v1.FunctionDependency - (v12.AnnotationType)(0), // 72: sift.annotations.v1.AnnotationType + (*ArchiveRuleRequest)(nil), // 28: sift.rules.v1.ArchiveRuleRequest + (*ArchiveRuleResponse)(nil), // 29: sift.rules.v1.ArchiveRuleResponse + (*BatchArchiveRulesRequest)(nil), // 30: sift.rules.v1.BatchArchiveRulesRequest + (*BatchArchiveRulesResponse)(nil), // 31: sift.rules.v1.BatchArchiveRulesResponse + (*UndeleteRuleRequest)(nil), // 32: sift.rules.v1.UndeleteRuleRequest + (*UndeleteRuleResponse)(nil), // 33: sift.rules.v1.UndeleteRuleResponse + (*BatchUndeleteRulesRequest)(nil), // 34: sift.rules.v1.BatchUndeleteRulesRequest + (*BatchUndeleteRulesResponse)(nil), // 35: sift.rules.v1.BatchUndeleteRulesResponse + (*UnarchiveRuleRequest)(nil), // 36: sift.rules.v1.UnarchiveRuleRequest + (*UnarchiveRuleResponse)(nil), // 37: sift.rules.v1.UnarchiveRuleResponse + (*BatchUnarchiveRulesRequest)(nil), // 38: sift.rules.v1.BatchUnarchiveRulesRequest + (*BatchUnarchiveRulesResponse)(nil), // 39: sift.rules.v1.BatchUnarchiveRulesResponse + (*ViewHumanFriendlyRulesRequest)(nil), // 40: sift.rules.v1.ViewHumanFriendlyRulesRequest + (*ViewHumanFriendlyRulesResponse)(nil), // 41: sift.rules.v1.ViewHumanFriendlyRulesResponse + (*UpdateHumanFriendlyRulesRequest)(nil), // 42: sift.rules.v1.UpdateHumanFriendlyRulesRequest + (*UpdateHumanFriendlyRulesResponse)(nil), // 43: sift.rules.v1.UpdateHumanFriendlyRulesResponse + (*ViewJsonRulesRequest)(nil), // 44: sift.rules.v1.ViewJsonRulesRequest + (*ViewJsonRulesResponse)(nil), // 45: sift.rules.v1.ViewJsonRulesResponse + (*JsonRulesRequest)(nil), // 46: sift.rules.v1.JsonRulesRequest + (*JsonRulesResponse)(nil), // 47: sift.rules.v1.JsonRulesResponse + (*ValidateJsonRulesRequest)(nil), // 48: sift.rules.v1.ValidateJsonRulesRequest + (*ValidateJsonRulesResponse)(nil), // 49: sift.rules.v1.ValidateJsonRulesResponse + (*UpdateJsonRulesRequest)(nil), // 50: sift.rules.v1.UpdateJsonRulesRequest + (*UpdateJsonRulesResponse)(nil), // 51: sift.rules.v1.UpdateJsonRulesResponse + (*ListRulesRequest)(nil), // 52: sift.rules.v1.ListRulesRequest + (*ListRulesResponse)(nil), // 53: sift.rules.v1.ListRulesResponse + (*ListRuleVersionsRequest)(nil), // 54: sift.rules.v1.ListRuleVersionsRequest + (*RuleVersion)(nil), // 55: sift.rules.v1.RuleVersion + (*ListRuleVersionsResponse)(nil), // 56: sift.rules.v1.ListRuleVersionsResponse + (*GetRuleVersionRequest)(nil), // 57: sift.rules.v1.GetRuleVersionRequest + (*GetRuleVersionResponse)(nil), // 58: sift.rules.v1.GetRuleVersionResponse + (*BatchGetRuleVersionsRequest)(nil), // 59: sift.rules.v1.BatchGetRuleVersionsRequest + (*BatchGetRuleVersionsResponse)(nil), // 60: sift.rules.v1.BatchGetRuleVersionsResponse + (*RuleConditionExpression)(nil), // 61: sift.rules.v1.RuleConditionExpression + (*SingleChannelComparisonExpression)(nil), // 62: sift.rules.v1.SingleChannelComparisonExpression + (*LastValueThreshold)(nil), // 63: sift.rules.v1.LastValueThreshold + (*CalculatedChannelConfig)(nil), // 64: sift.rules.v1.CalculatedChannelConfig + (*ChannelReference)(nil), // 65: sift.rules.v1.ChannelReference + (*RuleActionConfiguration)(nil), // 66: sift.rules.v1.RuleActionConfiguration + (*NotificationActionConfiguration)(nil), // 67: sift.rules.v1.NotificationActionConfiguration + (*AnnotationActionConfiguration)(nil), // 68: sift.rules.v1.AnnotationActionConfiguration + (*EvaluateRulesRequest)(nil), // 69: sift.rules.v1.EvaluateRulesRequest + (*EvaluatedAnnotationOptions)(nil), // 70: sift.rules.v1.EvaluatedAnnotationOptions + (*TimeRangeQuery)(nil), // 71: sift.rules.v1.TimeRangeQuery + (*EvaluateRulesResponse)(nil), // 72: sift.rules.v1.EvaluateRulesResponse + (*DryRunAnnotation)(nil), // 73: sift.rules.v1.DryRunAnnotation + (*BatchUpdateRulesResponse_RuleIdentifiers)(nil), // 74: sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers + nil, // 75: sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry + (*timestamppb.Timestamp)(nil), // 76: google.protobuf.Timestamp + (*v1.MetadataValue)(nil), // 77: sift.metadata.v1.MetadataValue + (*v11.NamedResources)(nil), // 78: sift.common.type.v1.NamedResources + (*v11.FunctionDependency)(nil), // 79: sift.common.type.v1.FunctionDependency + (v12.AnnotationType)(0), // 80: sift.annotations.v1.AnnotationType } var file_sift_rules_v1_rules_proto_depIdxs = []int32{ - 68, // 0: sift.rules.v1.Rule.created_date:type_name -> google.protobuf.Timestamp - 68, // 1: sift.rules.v1.Rule.modified_date:type_name -> google.protobuf.Timestamp + 76, // 0: sift.rules.v1.Rule.created_date:type_name -> google.protobuf.Timestamp + 76, // 1: sift.rules.v1.Rule.modified_date:type_name -> google.protobuf.Timestamp 4, // 2: sift.rules.v1.Rule.conditions:type_name -> sift.rules.v1.RuleCondition - 47, // 3: sift.rules.v1.Rule.rule_version:type_name -> sift.rules.v1.RuleVersion + 55, // 3: sift.rules.v1.Rule.rule_version:type_name -> sift.rules.v1.RuleVersion 6, // 4: sift.rules.v1.Rule.asset_configuration:type_name -> sift.rules.v1.RuleAssetConfiguration 7, // 5: sift.rules.v1.Rule.contextual_channels:type_name -> sift.rules.v1.ContextualChannels - 68, // 6: sift.rules.v1.Rule.deleted_date:type_name -> google.protobuf.Timestamp - 69, // 7: sift.rules.v1.Rule.metadata:type_name -> sift.metadata.v1.MetadataValue - 53, // 8: sift.rules.v1.RuleCondition.expression:type_name -> sift.rules.v1.RuleConditionExpression - 68, // 9: sift.rules.v1.RuleCondition.created_date:type_name -> google.protobuf.Timestamp - 68, // 10: sift.rules.v1.RuleCondition.modified_date:type_name -> google.protobuf.Timestamp - 5, // 11: sift.rules.v1.RuleCondition.actions:type_name -> sift.rules.v1.RuleAction - 1, // 12: sift.rules.v1.RuleAction.action_type:type_name -> sift.rules.v1.ActionKind - 58, // 13: sift.rules.v1.RuleAction.configuration:type_name -> sift.rules.v1.RuleActionConfiguration - 68, // 14: sift.rules.v1.RuleAction.created_date:type_name -> google.protobuf.Timestamp - 68, // 15: sift.rules.v1.RuleAction.modified_date:type_name -> google.protobuf.Timestamp - 57, // 16: sift.rules.v1.ContextualChannels.channels:type_name -> sift.rules.v1.ChannelReference - 0, // 17: sift.rules.v1.SearchRulesRequest.order:type_name -> sift.rules.v1.SearchOrder - 70, // 18: sift.rules.v1.SearchRulesRequest.asset_tags:type_name -> sift.common.type.v1.NamedResources - 3, // 19: sift.rules.v1.SearchRulesResponse.rules:type_name -> sift.rules.v1.Rule - 3, // 20: sift.rules.v1.GetRuleResponse.rule:type_name -> sift.rules.v1.Rule - 3, // 21: sift.rules.v1.BatchGetRulesResponse.rules:type_name -> sift.rules.v1.Rule - 17, // 22: sift.rules.v1.CreateRuleRequest.update:type_name -> sift.rules.v1.UpdateRuleRequest - 18, // 23: sift.rules.v1.UpdateRuleRequest.conditions:type_name -> sift.rules.v1.UpdateConditionRequest - 6, // 24: sift.rules.v1.UpdateRuleRequest.asset_configuration:type_name -> sift.rules.v1.RuleAssetConfiguration - 7, // 25: sift.rules.v1.UpdateRuleRequest.contextual_channels:type_name -> sift.rules.v1.ContextualChannels - 69, // 26: sift.rules.v1.UpdateRuleRequest.metadata:type_name -> sift.metadata.v1.MetadataValue - 53, // 27: sift.rules.v1.UpdateConditionRequest.expression:type_name -> sift.rules.v1.RuleConditionExpression - 19, // 28: sift.rules.v1.UpdateConditionRequest.actions:type_name -> sift.rules.v1.UpdateActionRequest - 1, // 29: sift.rules.v1.UpdateActionRequest.action_type:type_name -> sift.rules.v1.ActionKind - 58, // 30: sift.rules.v1.UpdateActionRequest.configuration:type_name -> sift.rules.v1.RuleActionConfiguration - 8, // 31: sift.rules.v1.ValidationResult.asset_expression_validation_results:type_name -> sift.rules.v1.AssetExpressionValidationResult - 17, // 32: sift.rules.v1.BatchUpdateRulesRequest.rules:type_name -> sift.rules.v1.UpdateRuleRequest - 21, // 33: sift.rules.v1.BatchUpdateRulesResponse.validation_results:type_name -> sift.rules.v1.ValidationResult - 66, // 34: sift.rules.v1.BatchUpdateRulesResponse.created_rule_identifiers:type_name -> sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers - 38, // 35: sift.rules.v1.ValidateJsonRulesRequest.request:type_name -> sift.rules.v1.JsonRulesRequest - 39, // 36: sift.rules.v1.ValidateJsonRulesResponse.response:type_name -> sift.rules.v1.JsonRulesResponse - 38, // 37: sift.rules.v1.UpdateJsonRulesRequest.request:type_name -> sift.rules.v1.JsonRulesRequest - 39, // 38: sift.rules.v1.UpdateJsonRulesResponse.response:type_name -> sift.rules.v1.JsonRulesResponse - 3, // 39: sift.rules.v1.ListRulesResponse.rules:type_name -> sift.rules.v1.Rule - 68, // 40: sift.rules.v1.RuleVersion.created_date:type_name -> google.protobuf.Timestamp - 68, // 41: sift.rules.v1.RuleVersion.deleted_date:type_name -> google.protobuf.Timestamp - 47, // 42: sift.rules.v1.ListRuleVersionsResponse.rule_versions:type_name -> sift.rules.v1.RuleVersion - 3, // 43: sift.rules.v1.GetRuleVersionResponse.rule:type_name -> sift.rules.v1.Rule - 3, // 44: sift.rules.v1.BatchGetRuleVersionsResponse.rules:type_name -> sift.rules.v1.Rule - 54, // 45: sift.rules.v1.RuleConditionExpression.single_channel_comparison:type_name -> sift.rules.v1.SingleChannelComparisonExpression - 56, // 46: sift.rules.v1.RuleConditionExpression.calculated_channel:type_name -> sift.rules.v1.CalculatedChannelConfig - 2, // 47: sift.rules.v1.SingleChannelComparisonExpression.comparator:type_name -> sift.rules.v1.ConditionComparator - 55, // 48: sift.rules.v1.SingleChannelComparisonExpression.last_value:type_name -> sift.rules.v1.LastValueThreshold - 67, // 49: sift.rules.v1.CalculatedChannelConfig.channel_references:type_name -> sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry - 71, // 50: sift.rules.v1.CalculatedChannelConfig.function_dependencies:type_name -> sift.common.type.v1.FunctionDependency - 59, // 51: sift.rules.v1.RuleActionConfiguration.notification:type_name -> sift.rules.v1.NotificationActionConfiguration - 60, // 52: sift.rules.v1.RuleActionConfiguration.annotation:type_name -> sift.rules.v1.AnnotationActionConfiguration - 72, // 53: sift.rules.v1.AnnotationActionConfiguration.annotation_type:type_name -> sift.annotations.v1.AnnotationType - 69, // 54: sift.rules.v1.AnnotationActionConfiguration.metadata:type_name -> sift.metadata.v1.MetadataValue - 62, // 55: sift.rules.v1.EvaluateRulesRequest.annotation_options:type_name -> sift.rules.v1.EvaluatedAnnotationOptions - 63, // 56: sift.rules.v1.EvaluateRulesRequest.time_range:type_name -> sift.rules.v1.TimeRangeQuery - 68, // 57: sift.rules.v1.TimeRangeQuery.start_time:type_name -> google.protobuf.Timestamp - 68, // 58: sift.rules.v1.TimeRangeQuery.end_time:type_name -> google.protobuf.Timestamp - 65, // 59: sift.rules.v1.EvaluateRulesResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation - 68, // 60: sift.rules.v1.DryRunAnnotation.start_time:type_name -> google.protobuf.Timestamp - 68, // 61: sift.rules.v1.DryRunAnnotation.end_time:type_name -> google.protobuf.Timestamp - 57, // 62: sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry.value:type_name -> sift.rules.v1.ChannelReference - 9, // 63: sift.rules.v1.RuleService.SearchRules:input_type -> sift.rules.v1.SearchRulesRequest - 11, // 64: sift.rules.v1.RuleService.GetRule:input_type -> sift.rules.v1.GetRuleRequest - 13, // 65: sift.rules.v1.RuleService.BatchGetRules:input_type -> sift.rules.v1.BatchGetRulesRequest - 15, // 66: sift.rules.v1.RuleService.CreateRule:input_type -> sift.rules.v1.CreateRuleRequest - 17, // 67: sift.rules.v1.RuleService.UpdateRule:input_type -> sift.rules.v1.UpdateRuleRequest - 22, // 68: sift.rules.v1.RuleService.BatchUpdateRules:input_type -> sift.rules.v1.BatchUpdateRulesRequest - 24, // 69: sift.rules.v1.RuleService.DeleteRule:input_type -> sift.rules.v1.DeleteRuleRequest - 26, // 70: sift.rules.v1.RuleService.BatchDeleteRules:input_type -> sift.rules.v1.BatchDeleteRulesRequest - 28, // 71: sift.rules.v1.RuleService.UndeleteRule:input_type -> sift.rules.v1.UndeleteRuleRequest - 30, // 72: sift.rules.v1.RuleService.BatchUndeleteRules:input_type -> sift.rules.v1.BatchUndeleteRulesRequest - 61, // 73: sift.rules.v1.RuleService.EvaluateRules:input_type -> sift.rules.v1.EvaluateRulesRequest - 32, // 74: sift.rules.v1.RuleService.ViewHumanFriendlyRules:input_type -> sift.rules.v1.ViewHumanFriendlyRulesRequest - 36, // 75: sift.rules.v1.RuleService.ViewJsonRules:input_type -> sift.rules.v1.ViewJsonRulesRequest - 34, // 76: sift.rules.v1.RuleService.UpdateHumanFriendlyRules:input_type -> sift.rules.v1.UpdateHumanFriendlyRulesRequest - 40, // 77: sift.rules.v1.RuleService.ValidateJsonRules:input_type -> sift.rules.v1.ValidateJsonRulesRequest - 42, // 78: sift.rules.v1.RuleService.UpdateJsonRules:input_type -> sift.rules.v1.UpdateJsonRulesRequest - 44, // 79: sift.rules.v1.RuleService.ListRules:input_type -> sift.rules.v1.ListRulesRequest - 46, // 80: sift.rules.v1.RuleService.ListRuleVersions:input_type -> sift.rules.v1.ListRuleVersionsRequest - 49, // 81: sift.rules.v1.RuleService.GetRuleVersion:input_type -> sift.rules.v1.GetRuleVersionRequest - 51, // 82: sift.rules.v1.RuleService.BatchGetRuleVersions:input_type -> sift.rules.v1.BatchGetRuleVersionsRequest - 10, // 83: sift.rules.v1.RuleService.SearchRules:output_type -> sift.rules.v1.SearchRulesResponse - 12, // 84: sift.rules.v1.RuleService.GetRule:output_type -> sift.rules.v1.GetRuleResponse - 14, // 85: sift.rules.v1.RuleService.BatchGetRules:output_type -> sift.rules.v1.BatchGetRulesResponse - 16, // 86: sift.rules.v1.RuleService.CreateRule:output_type -> sift.rules.v1.CreateRuleResponse - 20, // 87: sift.rules.v1.RuleService.UpdateRule:output_type -> sift.rules.v1.UpdateRuleResponse - 23, // 88: sift.rules.v1.RuleService.BatchUpdateRules:output_type -> sift.rules.v1.BatchUpdateRulesResponse - 25, // 89: sift.rules.v1.RuleService.DeleteRule:output_type -> sift.rules.v1.DeleteRuleResponse - 27, // 90: sift.rules.v1.RuleService.BatchDeleteRules:output_type -> sift.rules.v1.BatchDeleteRulesResponse - 29, // 91: sift.rules.v1.RuleService.UndeleteRule:output_type -> sift.rules.v1.UndeleteRuleResponse - 31, // 92: sift.rules.v1.RuleService.BatchUndeleteRules:output_type -> sift.rules.v1.BatchUndeleteRulesResponse - 64, // 93: sift.rules.v1.RuleService.EvaluateRules:output_type -> sift.rules.v1.EvaluateRulesResponse - 33, // 94: sift.rules.v1.RuleService.ViewHumanFriendlyRules:output_type -> sift.rules.v1.ViewHumanFriendlyRulesResponse - 37, // 95: sift.rules.v1.RuleService.ViewJsonRules:output_type -> sift.rules.v1.ViewJsonRulesResponse - 35, // 96: sift.rules.v1.RuleService.UpdateHumanFriendlyRules:output_type -> sift.rules.v1.UpdateHumanFriendlyRulesResponse - 41, // 97: sift.rules.v1.RuleService.ValidateJsonRules:output_type -> sift.rules.v1.ValidateJsonRulesResponse - 43, // 98: sift.rules.v1.RuleService.UpdateJsonRules:output_type -> sift.rules.v1.UpdateJsonRulesResponse - 45, // 99: sift.rules.v1.RuleService.ListRules:output_type -> sift.rules.v1.ListRulesResponse - 48, // 100: sift.rules.v1.RuleService.ListRuleVersions:output_type -> sift.rules.v1.ListRuleVersionsResponse - 50, // 101: sift.rules.v1.RuleService.GetRuleVersion:output_type -> sift.rules.v1.GetRuleVersionResponse - 52, // 102: sift.rules.v1.RuleService.BatchGetRuleVersions:output_type -> sift.rules.v1.BatchGetRuleVersionsResponse - 83, // [83:103] is the sub-list for method output_type - 63, // [63:83] is the sub-list for method input_type - 63, // [63:63] is the sub-list for extension type_name - 63, // [63:63] is the sub-list for extension extendee - 0, // [0:63] is the sub-list for field type_name + 76, // 6: sift.rules.v1.Rule.deleted_date:type_name -> google.protobuf.Timestamp + 77, // 7: sift.rules.v1.Rule.metadata:type_name -> sift.metadata.v1.MetadataValue + 76, // 8: sift.rules.v1.Rule.archived_date:type_name -> google.protobuf.Timestamp + 61, // 9: sift.rules.v1.RuleCondition.expression:type_name -> sift.rules.v1.RuleConditionExpression + 76, // 10: sift.rules.v1.RuleCondition.created_date:type_name -> google.protobuf.Timestamp + 76, // 11: sift.rules.v1.RuleCondition.modified_date:type_name -> google.protobuf.Timestamp + 5, // 12: sift.rules.v1.RuleCondition.actions:type_name -> sift.rules.v1.RuleAction + 1, // 13: sift.rules.v1.RuleAction.action_type:type_name -> sift.rules.v1.ActionKind + 66, // 14: sift.rules.v1.RuleAction.configuration:type_name -> sift.rules.v1.RuleActionConfiguration + 76, // 15: sift.rules.v1.RuleAction.created_date:type_name -> google.protobuf.Timestamp + 76, // 16: sift.rules.v1.RuleAction.modified_date:type_name -> google.protobuf.Timestamp + 65, // 17: sift.rules.v1.ContextualChannels.channels:type_name -> sift.rules.v1.ChannelReference + 0, // 18: sift.rules.v1.SearchRulesRequest.order:type_name -> sift.rules.v1.SearchOrder + 78, // 19: sift.rules.v1.SearchRulesRequest.asset_tags:type_name -> sift.common.type.v1.NamedResources + 3, // 20: sift.rules.v1.SearchRulesResponse.rules:type_name -> sift.rules.v1.Rule + 3, // 21: sift.rules.v1.GetRuleResponse.rule:type_name -> sift.rules.v1.Rule + 3, // 22: sift.rules.v1.BatchGetRulesResponse.rules:type_name -> sift.rules.v1.Rule + 17, // 23: sift.rules.v1.CreateRuleRequest.update:type_name -> sift.rules.v1.UpdateRuleRequest + 18, // 24: sift.rules.v1.UpdateRuleRequest.conditions:type_name -> sift.rules.v1.UpdateConditionRequest + 6, // 25: sift.rules.v1.UpdateRuleRequest.asset_configuration:type_name -> sift.rules.v1.RuleAssetConfiguration + 7, // 26: sift.rules.v1.UpdateRuleRequest.contextual_channels:type_name -> sift.rules.v1.ContextualChannels + 77, // 27: sift.rules.v1.UpdateRuleRequest.metadata:type_name -> sift.metadata.v1.MetadataValue + 61, // 28: sift.rules.v1.UpdateConditionRequest.expression:type_name -> sift.rules.v1.RuleConditionExpression + 19, // 29: sift.rules.v1.UpdateConditionRequest.actions:type_name -> sift.rules.v1.UpdateActionRequest + 1, // 30: sift.rules.v1.UpdateActionRequest.action_type:type_name -> sift.rules.v1.ActionKind + 66, // 31: sift.rules.v1.UpdateActionRequest.configuration:type_name -> sift.rules.v1.RuleActionConfiguration + 8, // 32: sift.rules.v1.ValidationResult.asset_expression_validation_results:type_name -> sift.rules.v1.AssetExpressionValidationResult + 17, // 33: sift.rules.v1.BatchUpdateRulesRequest.rules:type_name -> sift.rules.v1.UpdateRuleRequest + 21, // 34: sift.rules.v1.BatchUpdateRulesResponse.validation_results:type_name -> sift.rules.v1.ValidationResult + 74, // 35: sift.rules.v1.BatchUpdateRulesResponse.created_rule_identifiers:type_name -> sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers + 46, // 36: sift.rules.v1.ValidateJsonRulesRequest.request:type_name -> sift.rules.v1.JsonRulesRequest + 47, // 37: sift.rules.v1.ValidateJsonRulesResponse.response:type_name -> sift.rules.v1.JsonRulesResponse + 46, // 38: sift.rules.v1.UpdateJsonRulesRequest.request:type_name -> sift.rules.v1.JsonRulesRequest + 47, // 39: sift.rules.v1.UpdateJsonRulesResponse.response:type_name -> sift.rules.v1.JsonRulesResponse + 3, // 40: sift.rules.v1.ListRulesResponse.rules:type_name -> sift.rules.v1.Rule + 76, // 41: sift.rules.v1.RuleVersion.created_date:type_name -> google.protobuf.Timestamp + 76, // 42: sift.rules.v1.RuleVersion.deleted_date:type_name -> google.protobuf.Timestamp + 76, // 43: sift.rules.v1.RuleVersion.archived_date:type_name -> google.protobuf.Timestamp + 55, // 44: sift.rules.v1.ListRuleVersionsResponse.rule_versions:type_name -> sift.rules.v1.RuleVersion + 3, // 45: sift.rules.v1.GetRuleVersionResponse.rule:type_name -> sift.rules.v1.Rule + 3, // 46: sift.rules.v1.BatchGetRuleVersionsResponse.rules:type_name -> sift.rules.v1.Rule + 62, // 47: sift.rules.v1.RuleConditionExpression.single_channel_comparison:type_name -> sift.rules.v1.SingleChannelComparisonExpression + 64, // 48: sift.rules.v1.RuleConditionExpression.calculated_channel:type_name -> sift.rules.v1.CalculatedChannelConfig + 2, // 49: sift.rules.v1.SingleChannelComparisonExpression.comparator:type_name -> sift.rules.v1.ConditionComparator + 63, // 50: sift.rules.v1.SingleChannelComparisonExpression.last_value:type_name -> sift.rules.v1.LastValueThreshold + 75, // 51: sift.rules.v1.CalculatedChannelConfig.channel_references:type_name -> sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry + 79, // 52: sift.rules.v1.CalculatedChannelConfig.function_dependencies:type_name -> sift.common.type.v1.FunctionDependency + 67, // 53: sift.rules.v1.RuleActionConfiguration.notification:type_name -> sift.rules.v1.NotificationActionConfiguration + 68, // 54: sift.rules.v1.RuleActionConfiguration.annotation:type_name -> sift.rules.v1.AnnotationActionConfiguration + 80, // 55: sift.rules.v1.AnnotationActionConfiguration.annotation_type:type_name -> sift.annotations.v1.AnnotationType + 77, // 56: sift.rules.v1.AnnotationActionConfiguration.metadata:type_name -> sift.metadata.v1.MetadataValue + 70, // 57: sift.rules.v1.EvaluateRulesRequest.annotation_options:type_name -> sift.rules.v1.EvaluatedAnnotationOptions + 71, // 58: sift.rules.v1.EvaluateRulesRequest.time_range:type_name -> sift.rules.v1.TimeRangeQuery + 76, // 59: sift.rules.v1.TimeRangeQuery.start_time:type_name -> google.protobuf.Timestamp + 76, // 60: sift.rules.v1.TimeRangeQuery.end_time:type_name -> google.protobuf.Timestamp + 73, // 61: sift.rules.v1.EvaluateRulesResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation + 76, // 62: sift.rules.v1.DryRunAnnotation.start_time:type_name -> google.protobuf.Timestamp + 76, // 63: sift.rules.v1.DryRunAnnotation.end_time:type_name -> google.protobuf.Timestamp + 65, // 64: sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry.value:type_name -> sift.rules.v1.ChannelReference + 9, // 65: sift.rules.v1.RuleService.SearchRules:input_type -> sift.rules.v1.SearchRulesRequest + 11, // 66: sift.rules.v1.RuleService.GetRule:input_type -> sift.rules.v1.GetRuleRequest + 13, // 67: sift.rules.v1.RuleService.BatchGetRules:input_type -> sift.rules.v1.BatchGetRulesRequest + 15, // 68: sift.rules.v1.RuleService.CreateRule:input_type -> sift.rules.v1.CreateRuleRequest + 17, // 69: sift.rules.v1.RuleService.UpdateRule:input_type -> sift.rules.v1.UpdateRuleRequest + 22, // 70: sift.rules.v1.RuleService.BatchUpdateRules:input_type -> sift.rules.v1.BatchUpdateRulesRequest + 24, // 71: sift.rules.v1.RuleService.DeleteRule:input_type -> sift.rules.v1.DeleteRuleRequest + 28, // 72: sift.rules.v1.RuleService.ArchiveRule:input_type -> sift.rules.v1.ArchiveRuleRequest + 26, // 73: sift.rules.v1.RuleService.BatchDeleteRules:input_type -> sift.rules.v1.BatchDeleteRulesRequest + 30, // 74: sift.rules.v1.RuleService.BatchArchiveRules:input_type -> sift.rules.v1.BatchArchiveRulesRequest + 36, // 75: sift.rules.v1.RuleService.UnarchiveRule:input_type -> sift.rules.v1.UnarchiveRuleRequest + 38, // 76: sift.rules.v1.RuleService.BatchUnarchiveRules:input_type -> sift.rules.v1.BatchUnarchiveRulesRequest + 32, // 77: sift.rules.v1.RuleService.UndeleteRule:input_type -> sift.rules.v1.UndeleteRuleRequest + 34, // 78: sift.rules.v1.RuleService.BatchUndeleteRules:input_type -> sift.rules.v1.BatchUndeleteRulesRequest + 69, // 79: sift.rules.v1.RuleService.EvaluateRules:input_type -> sift.rules.v1.EvaluateRulesRequest + 40, // 80: sift.rules.v1.RuleService.ViewHumanFriendlyRules:input_type -> sift.rules.v1.ViewHumanFriendlyRulesRequest + 44, // 81: sift.rules.v1.RuleService.ViewJsonRules:input_type -> sift.rules.v1.ViewJsonRulesRequest + 42, // 82: sift.rules.v1.RuleService.UpdateHumanFriendlyRules:input_type -> sift.rules.v1.UpdateHumanFriendlyRulesRequest + 48, // 83: sift.rules.v1.RuleService.ValidateJsonRules:input_type -> sift.rules.v1.ValidateJsonRulesRequest + 50, // 84: sift.rules.v1.RuleService.UpdateJsonRules:input_type -> sift.rules.v1.UpdateJsonRulesRequest + 52, // 85: sift.rules.v1.RuleService.ListRules:input_type -> sift.rules.v1.ListRulesRequest + 54, // 86: sift.rules.v1.RuleService.ListRuleVersions:input_type -> sift.rules.v1.ListRuleVersionsRequest + 57, // 87: sift.rules.v1.RuleService.GetRuleVersion:input_type -> sift.rules.v1.GetRuleVersionRequest + 59, // 88: sift.rules.v1.RuleService.BatchGetRuleVersions:input_type -> sift.rules.v1.BatchGetRuleVersionsRequest + 10, // 89: sift.rules.v1.RuleService.SearchRules:output_type -> sift.rules.v1.SearchRulesResponse + 12, // 90: sift.rules.v1.RuleService.GetRule:output_type -> sift.rules.v1.GetRuleResponse + 14, // 91: sift.rules.v1.RuleService.BatchGetRules:output_type -> sift.rules.v1.BatchGetRulesResponse + 16, // 92: sift.rules.v1.RuleService.CreateRule:output_type -> sift.rules.v1.CreateRuleResponse + 20, // 93: sift.rules.v1.RuleService.UpdateRule:output_type -> sift.rules.v1.UpdateRuleResponse + 23, // 94: sift.rules.v1.RuleService.BatchUpdateRules:output_type -> sift.rules.v1.BatchUpdateRulesResponse + 25, // 95: sift.rules.v1.RuleService.DeleteRule:output_type -> sift.rules.v1.DeleteRuleResponse + 29, // 96: sift.rules.v1.RuleService.ArchiveRule:output_type -> sift.rules.v1.ArchiveRuleResponse + 27, // 97: sift.rules.v1.RuleService.BatchDeleteRules:output_type -> sift.rules.v1.BatchDeleteRulesResponse + 31, // 98: sift.rules.v1.RuleService.BatchArchiveRules:output_type -> sift.rules.v1.BatchArchiveRulesResponse + 37, // 99: sift.rules.v1.RuleService.UnarchiveRule:output_type -> sift.rules.v1.UnarchiveRuleResponse + 39, // 100: sift.rules.v1.RuleService.BatchUnarchiveRules:output_type -> sift.rules.v1.BatchUnarchiveRulesResponse + 33, // 101: sift.rules.v1.RuleService.UndeleteRule:output_type -> sift.rules.v1.UndeleteRuleResponse + 35, // 102: sift.rules.v1.RuleService.BatchUndeleteRules:output_type -> sift.rules.v1.BatchUndeleteRulesResponse + 72, // 103: sift.rules.v1.RuleService.EvaluateRules:output_type -> sift.rules.v1.EvaluateRulesResponse + 41, // 104: sift.rules.v1.RuleService.ViewHumanFriendlyRules:output_type -> sift.rules.v1.ViewHumanFriendlyRulesResponse + 45, // 105: sift.rules.v1.RuleService.ViewJsonRules:output_type -> sift.rules.v1.ViewJsonRulesResponse + 43, // 106: sift.rules.v1.RuleService.UpdateHumanFriendlyRules:output_type -> sift.rules.v1.UpdateHumanFriendlyRulesResponse + 49, // 107: sift.rules.v1.RuleService.ValidateJsonRules:output_type -> sift.rules.v1.ValidateJsonRulesResponse + 51, // 108: sift.rules.v1.RuleService.UpdateJsonRules:output_type -> sift.rules.v1.UpdateJsonRulesResponse + 53, // 109: sift.rules.v1.RuleService.ListRules:output_type -> sift.rules.v1.ListRulesResponse + 56, // 110: sift.rules.v1.RuleService.ListRuleVersions:output_type -> sift.rules.v1.ListRuleVersionsResponse + 58, // 111: sift.rules.v1.RuleService.GetRuleVersion:output_type -> sift.rules.v1.GetRuleVersionResponse + 60, // 112: sift.rules.v1.RuleService.BatchGetRuleVersions:output_type -> sift.rules.v1.BatchGetRuleVersionsResponse + 89, // [89:113] is the sub-list for method output_type + 65, // [65:89] is the sub-list for method input_type + 65, // [65:65] is the sub-list for extension type_name + 65, // [65:65] is the sub-list for extension extendee + 0, // [0:65] is the sub-list for field type_name } func init() { file_sift_rules_v1_rules_proto_init() } @@ -5974,7 +6516,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UndeleteRuleRequest); i { + switch v := v.(*ArchiveRuleRequest); i { case 0: return &v.state case 1: @@ -5986,7 +6528,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UndeleteRuleResponse); i { + switch v := v.(*ArchiveRuleResponse); i { case 0: return &v.state case 1: @@ -5998,7 +6540,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchUndeleteRulesRequest); i { + switch v := v.(*BatchArchiveRulesRequest); i { case 0: return &v.state case 1: @@ -6010,7 +6552,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchUndeleteRulesResponse); i { + switch v := v.(*BatchArchiveRulesResponse); i { case 0: return &v.state case 1: @@ -6022,7 +6564,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewHumanFriendlyRulesRequest); i { + switch v := v.(*UndeleteRuleRequest); i { case 0: return &v.state case 1: @@ -6034,7 +6576,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewHumanFriendlyRulesResponse); i { + switch v := v.(*UndeleteRuleResponse); i { case 0: return &v.state case 1: @@ -6046,7 +6588,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHumanFriendlyRulesRequest); i { + switch v := v.(*BatchUndeleteRulesRequest); i { case 0: return &v.state case 1: @@ -6058,7 +6600,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHumanFriendlyRulesResponse); i { + switch v := v.(*BatchUndeleteRulesResponse); i { case 0: return &v.state case 1: @@ -6070,7 +6612,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewJsonRulesRequest); i { + switch v := v.(*UnarchiveRuleRequest); i { case 0: return &v.state case 1: @@ -6082,7 +6624,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewJsonRulesResponse); i { + switch v := v.(*UnarchiveRuleResponse); i { case 0: return &v.state case 1: @@ -6094,7 +6636,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JsonRulesRequest); i { + switch v := v.(*BatchUnarchiveRulesRequest); i { case 0: return &v.state case 1: @@ -6106,7 +6648,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JsonRulesResponse); i { + switch v := v.(*BatchUnarchiveRulesResponse); i { case 0: return &v.state case 1: @@ -6118,7 +6660,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateJsonRulesRequest); i { + switch v := v.(*ViewHumanFriendlyRulesRequest); i { case 0: return &v.state case 1: @@ -6130,7 +6672,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateJsonRulesResponse); i { + switch v := v.(*ViewHumanFriendlyRulesResponse); i { case 0: return &v.state case 1: @@ -6142,7 +6684,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJsonRulesRequest); i { + switch v := v.(*UpdateHumanFriendlyRulesRequest); i { case 0: return &v.state case 1: @@ -6154,7 +6696,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJsonRulesResponse); i { + switch v := v.(*UpdateHumanFriendlyRulesResponse); i { case 0: return &v.state case 1: @@ -6166,7 +6708,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRulesRequest); i { + switch v := v.(*ViewJsonRulesRequest); i { case 0: return &v.state case 1: @@ -6178,7 +6720,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRulesResponse); i { + switch v := v.(*ViewJsonRulesResponse); i { case 0: return &v.state case 1: @@ -6190,7 +6732,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRuleVersionsRequest); i { + switch v := v.(*JsonRulesRequest); i { case 0: return &v.state case 1: @@ -6202,7 +6744,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RuleVersion); i { + switch v := v.(*JsonRulesResponse); i { case 0: return &v.state case 1: @@ -6214,7 +6756,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRuleVersionsResponse); i { + switch v := v.(*ValidateJsonRulesRequest); i { case 0: return &v.state case 1: @@ -6226,7 +6768,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRuleVersionRequest); i { + switch v := v.(*ValidateJsonRulesResponse); i { case 0: return &v.state case 1: @@ -6238,7 +6780,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRuleVersionResponse); i { + switch v := v.(*UpdateJsonRulesRequest); i { case 0: return &v.state case 1: @@ -6250,7 +6792,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchGetRuleVersionsRequest); i { + switch v := v.(*UpdateJsonRulesResponse); i { case 0: return &v.state case 1: @@ -6262,7 +6804,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchGetRuleVersionsResponse); i { + switch v := v.(*ListRulesRequest); i { case 0: return &v.state case 1: @@ -6274,7 +6816,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RuleConditionExpression); i { + switch v := v.(*ListRulesResponse); i { case 0: return &v.state case 1: @@ -6286,7 +6828,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SingleChannelComparisonExpression); i { + switch v := v.(*ListRuleVersionsRequest); i { case 0: return &v.state case 1: @@ -6298,7 +6840,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LastValueThreshold); i { + switch v := v.(*RuleVersion); i { case 0: return &v.state case 1: @@ -6310,7 +6852,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CalculatedChannelConfig); i { + switch v := v.(*ListRuleVersionsResponse); i { case 0: return &v.state case 1: @@ -6322,7 +6864,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChannelReference); i { + switch v := v.(*GetRuleVersionRequest); i { case 0: return &v.state case 1: @@ -6334,7 +6876,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RuleActionConfiguration); i { + switch v := v.(*GetRuleVersionResponse); i { case 0: return &v.state case 1: @@ -6346,7 +6888,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationActionConfiguration); i { + switch v := v.(*BatchGetRuleVersionsRequest); i { case 0: return &v.state case 1: @@ -6358,7 +6900,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AnnotationActionConfiguration); i { + switch v := v.(*BatchGetRuleVersionsResponse); i { case 0: return &v.state case 1: @@ -6370,7 +6912,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvaluateRulesRequest); i { + switch v := v.(*RuleConditionExpression); i { case 0: return &v.state case 1: @@ -6382,7 +6924,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvaluatedAnnotationOptions); i { + switch v := v.(*SingleChannelComparisonExpression); i { case 0: return &v.state case 1: @@ -6394,7 +6936,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TimeRangeQuery); i { + switch v := v.(*LastValueThreshold); i { case 0: return &v.state case 1: @@ -6406,7 +6948,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvaluateRulesResponse); i { + switch v := v.(*CalculatedChannelConfig); i { case 0: return &v.state case 1: @@ -6418,7 +6960,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DryRunAnnotation); i { + switch v := v.(*ChannelReference); i { case 0: return &v.state case 1: @@ -6430,6 +6972,102 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RuleActionConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotificationActionConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotationActionConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvaluateRulesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvaluatedAnnotationOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimeRangeQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvaluateRulesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatchUpdateRulesResponse_RuleIdentifiers); i { case 0: return &v.state @@ -6448,34 +7086,34 @@ func file_sift_rules_v1_rules_proto_init() { file_sift_rules_v1_rules_proto_msgTypes[15].OneofWrappers = []interface{}{} file_sift_rules_v1_rules_proto_msgTypes[16].OneofWrappers = []interface{}{} file_sift_rules_v1_rules_proto_msgTypes[18].OneofWrappers = []interface{}{} - file_sift_rules_v1_rules_proto_msgTypes[36].OneofWrappers = []interface{}{} - file_sift_rules_v1_rules_proto_msgTypes[50].OneofWrappers = []interface{}{ + file_sift_rules_v1_rules_proto_msgTypes[44].OneofWrappers = []interface{}{} + file_sift_rules_v1_rules_proto_msgTypes[58].OneofWrappers = []interface{}{ (*RuleConditionExpression_SingleChannelComparison)(nil), (*RuleConditionExpression_CalculatedChannel)(nil), } - file_sift_rules_v1_rules_proto_msgTypes[51].OneofWrappers = []interface{}{ + file_sift_rules_v1_rules_proto_msgTypes[59].OneofWrappers = []interface{}{ (*SingleChannelComparisonExpression_Double)(nil), (*SingleChannelComparisonExpression_String_)(nil), (*SingleChannelComparisonExpression_LastValue)(nil), } - file_sift_rules_v1_rules_proto_msgTypes[55].OneofWrappers = []interface{}{ + file_sift_rules_v1_rules_proto_msgTypes[63].OneofWrappers = []interface{}{ (*RuleActionConfiguration_Notification)(nil), (*RuleActionConfiguration_Annotation)(nil), } - file_sift_rules_v1_rules_proto_msgTypes[57].OneofWrappers = []interface{}{} - file_sift_rules_v1_rules_proto_msgTypes[58].OneofWrappers = []interface{}{ + file_sift_rules_v1_rules_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_sift_rules_v1_rules_proto_msgTypes[66].OneofWrappers = []interface{}{ (*EvaluateRulesRequest_RunId)(nil), (*EvaluateRulesRequest_TimeRange)(nil), } - file_sift_rules_v1_rules_proto_msgTypes[61].OneofWrappers = []interface{}{} - file_sift_rules_v1_rules_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_sift_rules_v1_rules_proto_msgTypes[69].OneofWrappers = []interface{}{} + file_sift_rules_v1_rules_proto_msgTypes[71].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_rules_v1_rules_proto_rawDesc, NumEnums: 3, - NumMessages: 65, + NumMessages: 73, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/rules/v1/rules.pb.gw.go b/go/gen/sift/rules/v1/rules.pb.gw.go index fb6314bae..4ac3bf21e 100644 --- a/go/gen/sift/rules/v1/rules.pb.gw.go +++ b/go/gen/sift/rules/v1/rules.pb.gw.go @@ -271,6 +271,40 @@ func local_request_RuleService_DeleteRule_0(ctx context.Context, marshaler runti } +func request_RuleService_ArchiveRule_0(ctx context.Context, marshaler runtime.Marshaler, client RuleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ArchiveRuleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ArchiveRule(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RuleService_ArchiveRule_0(ctx context.Context, marshaler runtime.Marshaler, server RuleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ArchiveRuleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ArchiveRule(ctx, &protoReq) + return msg, metadata, err + +} + func request_RuleService_BatchDeleteRules_0(ctx context.Context, marshaler runtime.Marshaler, client RuleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq BatchDeleteRulesRequest var metadata runtime.ServerMetadata @@ -305,6 +339,108 @@ func local_request_RuleService_BatchDeleteRules_0(ctx context.Context, marshaler } +func request_RuleService_BatchArchiveRules_0(ctx context.Context, marshaler runtime.Marshaler, client RuleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchArchiveRulesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.BatchArchiveRules(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RuleService_BatchArchiveRules_0(ctx context.Context, marshaler runtime.Marshaler, server RuleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchArchiveRulesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.BatchArchiveRules(ctx, &protoReq) + return msg, metadata, err + +} + +func request_RuleService_UnarchiveRule_0(ctx context.Context, marshaler runtime.Marshaler, client RuleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UnarchiveRuleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UnarchiveRule(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RuleService_UnarchiveRule_0(ctx context.Context, marshaler runtime.Marshaler, server RuleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UnarchiveRuleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UnarchiveRule(ctx, &protoReq) + return msg, metadata, err + +} + +func request_RuleService_BatchUnarchiveRules_0(ctx context.Context, marshaler runtime.Marshaler, client RuleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchUnarchiveRulesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.BatchUnarchiveRules(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RuleService_BatchUnarchiveRules_0(ctx context.Context, marshaler runtime.Marshaler, server RuleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchUnarchiveRulesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.BatchUnarchiveRules(ctx, &protoReq) + return msg, metadata, err + +} + func request_RuleService_UndeleteRule_0(ctx context.Context, marshaler runtime.Marshaler, client RuleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UndeleteRuleRequest var metadata runtime.ServerMetadata @@ -938,6 +1074,31 @@ func RegisterRuleServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_RuleService_ArchiveRule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.rules.v1.RuleService/ArchiveRule", runtime.WithHTTPPathPattern("/api/v1/rules/archive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RuleService_ArchiveRule_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_ArchiveRule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_RuleService_BatchDeleteRules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -963,6 +1124,81 @@ func RegisterRuleServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_RuleService_BatchArchiveRules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.rules.v1.RuleService/BatchArchiveRules", runtime.WithHTTPPathPattern("/api/v1/rules/batchArchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RuleService_BatchArchiveRules_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_BatchArchiveRules_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_RuleService_UnarchiveRule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.rules.v1.RuleService/UnarchiveRule", runtime.WithHTTPPathPattern("/api/v1/rules/unarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RuleService_UnarchiveRule_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_UnarchiveRule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_RuleService_BatchUnarchiveRules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.rules.v1.RuleService/BatchUnarchiveRules", runtime.WithHTTPPathPattern("/api/v1/rules/batchUnarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RuleService_BatchUnarchiveRules_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_BatchUnarchiveRules_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_RuleService_UndeleteRule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1458,6 +1694,28 @@ func RegisterRuleServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_RuleService_ArchiveRule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.rules.v1.RuleService/ArchiveRule", runtime.WithHTTPPathPattern("/api/v1/rules/archive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RuleService_ArchiveRule_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_ArchiveRule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_RuleService_BatchDeleteRules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1480,6 +1738,72 @@ func RegisterRuleServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_RuleService_BatchArchiveRules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.rules.v1.RuleService/BatchArchiveRules", runtime.WithHTTPPathPattern("/api/v1/rules/batchArchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RuleService_BatchArchiveRules_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_BatchArchiveRules_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_RuleService_UnarchiveRule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.rules.v1.RuleService/UnarchiveRule", runtime.WithHTTPPathPattern("/api/v1/rules/unarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RuleService_UnarchiveRule_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_UnarchiveRule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_RuleService_BatchUnarchiveRules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.rules.v1.RuleService/BatchUnarchiveRules", runtime.WithHTTPPathPattern("/api/v1/rules/batchUnarchive")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RuleService_BatchUnarchiveRules_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_RuleService_BatchUnarchiveRules_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_RuleService_UndeleteRule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1762,8 +2086,16 @@ var ( pattern_RuleService_DeleteRule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "delete"}, "")) + pattern_RuleService_ArchiveRule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "archive"}, "")) + pattern_RuleService_BatchDeleteRules_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "batchDelete"}, "")) + pattern_RuleService_BatchArchiveRules_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "batchArchive"}, "")) + + pattern_RuleService_UnarchiveRule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "unarchive"}, "")) + + pattern_RuleService_BatchUnarchiveRules_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "batchUnarchive"}, "")) + pattern_RuleService_UndeleteRule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "undelete"}, "")) pattern_RuleService_BatchUndeleteRules_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rules", "batchUndelete"}, "")) @@ -1804,8 +2136,16 @@ var ( forward_RuleService_DeleteRule_0 = runtime.ForwardResponseMessage + forward_RuleService_ArchiveRule_0 = runtime.ForwardResponseMessage + forward_RuleService_BatchDeleteRules_0 = runtime.ForwardResponseMessage + forward_RuleService_BatchArchiveRules_0 = runtime.ForwardResponseMessage + + forward_RuleService_UnarchiveRule_0 = runtime.ForwardResponseMessage + + forward_RuleService_BatchUnarchiveRules_0 = runtime.ForwardResponseMessage + forward_RuleService_UndeleteRule_0 = runtime.ForwardResponseMessage forward_RuleService_BatchUndeleteRules_0 = runtime.ForwardResponseMessage diff --git a/go/gen/sift/rules/v1/rules_vtproto.pb.go b/go/gen/sift/rules/v1/rules_vtproto.pb.go index e872bc9d2..500770a55 100644 --- a/go/gen/sift/rules/v1/rules_vtproto.pb.go +++ b/go/gen/sift/rules/v1/rules_vtproto.pb.go @@ -52,6 +52,8 @@ func (m *Rule) CloneVT() *Rule { r.ContextualChannels = m.ContextualChannels.CloneVT() r.DeletedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.DeletedDate).CloneVT()) r.IsExternal = m.IsExternal + r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.IsArchived = m.IsArchived if rhs := m.Conditions; rhs != nil { tmpContainer := make([]*RuleCondition, len(rhs)) for k, v := range rhs { @@ -415,6 +417,7 @@ func (m *UpdateRuleRequest) CloneVT() *UpdateRuleRequest { r.AssetConfiguration = m.AssetConfiguration.CloneVT() r.ContextualChannels = m.ContextualChannels.CloneVT() r.IsExternal = m.IsExternal + r.IsArchived = m.IsArchived if rhs := m.RuleId; rhs != nil { tmpVal := *rhs r.RuleId = &tmpVal @@ -705,6 +708,82 @@ func (m *BatchDeleteRulesResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *ArchiveRuleRequest) CloneVT() *ArchiveRuleRequest { + if m == nil { + return (*ArchiveRuleRequest)(nil) + } + r := new(ArchiveRuleRequest) + r.RuleId = m.RuleId + r.ClientKey = m.ClientKey + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ArchiveRuleRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ArchiveRuleResponse) CloneVT() *ArchiveRuleResponse { + if m == nil { + return (*ArchiveRuleResponse)(nil) + } + r := new(ArchiveRuleResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ArchiveRuleResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchArchiveRulesRequest) CloneVT() *BatchArchiveRulesRequest { + if m == nil { + return (*BatchArchiveRulesRequest)(nil) + } + r := new(BatchArchiveRulesRequest) + if rhs := m.RuleIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.RuleIds = tmpContainer + } + if rhs := m.ClientKeys; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.ClientKeys = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchArchiveRulesRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchArchiveRulesResponse) CloneVT() *BatchArchiveRulesResponse { + if m == nil { + return (*BatchArchiveRulesResponse)(nil) + } + r := new(BatchArchiveRulesResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchArchiveRulesResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *UndeleteRuleRequest) CloneVT() *UndeleteRuleRequest { if m == nil { return (*UndeleteRuleRequest)(nil) @@ -781,6 +860,82 @@ func (m *BatchUndeleteRulesResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *UnarchiveRuleRequest) CloneVT() *UnarchiveRuleRequest { + if m == nil { + return (*UnarchiveRuleRequest)(nil) + } + r := new(UnarchiveRuleRequest) + r.RuleId = m.RuleId + r.ClientKey = m.ClientKey + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UnarchiveRuleRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UnarchiveRuleResponse) CloneVT() *UnarchiveRuleResponse { + if m == nil { + return (*UnarchiveRuleResponse)(nil) + } + r := new(UnarchiveRuleResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UnarchiveRuleResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchUnarchiveRulesRequest) CloneVT() *BatchUnarchiveRulesRequest { + if m == nil { + return (*BatchUnarchiveRulesRequest)(nil) + } + r := new(BatchUnarchiveRulesRequest) + if rhs := m.RuleIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.RuleIds = tmpContainer + } + if rhs := m.ClientKeys; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.ClientKeys = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchUnarchiveRulesRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchUnarchiveRulesResponse) CloneVT() *BatchUnarchiveRulesResponse { + if m == nil { + return (*BatchUnarchiveRulesResponse)(nil) + } + r := new(BatchUnarchiveRulesResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchUnarchiveRulesResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *ViewHumanFriendlyRulesRequest) CloneVT() *ViewHumanFriendlyRulesRequest { if m == nil { return (*ViewHumanFriendlyRulesRequest)(nil) @@ -1076,6 +1231,8 @@ func (m *RuleVersion) CloneVT() *RuleVersion { r.VersionNotes = m.VersionNotes r.GeneratedChangeMessage = m.GeneratedChangeMessage r.DeletedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.DeletedDate).CloneVT()) + r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.IsArchived = m.IsArchived if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -1677,6 +1834,12 @@ func (this *Rule) EqualVT(that *Rule) bool { } } } + if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { + return false + } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -2208,6 +2371,9 @@ func (this *UpdateRuleRequest) EqualVT(that *UpdateRuleRequest) bool { } } } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -2557,7 +2723,7 @@ func (this *BatchDeleteRulesResponse) EqualMessageVT(thatMsg proto.Message) bool } return this.EqualVT(that) } -func (this *UndeleteRuleRequest) EqualVT(that *UndeleteRuleRequest) bool { +func (this *ArchiveRuleRequest) EqualVT(that *ArchiveRuleRequest) bool { if this == that { return true } else if this == nil || that == nil { @@ -2572,14 +2738,14 @@ func (this *UndeleteRuleRequest) EqualVT(that *UndeleteRuleRequest) bool { return string(this.unknownFields) == string(that.unknownFields) } -func (this *UndeleteRuleRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*UndeleteRuleRequest) +func (this *ArchiveRuleRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ArchiveRuleRequest) if !ok { return false } return this.EqualVT(that) } -func (this *UndeleteRuleResponse) EqualVT(that *UndeleteRuleResponse) bool { +func (this *ArchiveRuleResponse) EqualVT(that *ArchiveRuleResponse) bool { if this == that { return true } else if this == nil || that == nil { @@ -2588,14 +2754,14 @@ func (this *UndeleteRuleResponse) EqualVT(that *UndeleteRuleResponse) bool { return string(this.unknownFields) == string(that.unknownFields) } -func (this *UndeleteRuleResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*UndeleteRuleResponse) +func (this *ArchiveRuleResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ArchiveRuleResponse) if !ok { return false } return this.EqualVT(that) } -func (this *BatchUndeleteRulesRequest) EqualVT(that *BatchUndeleteRulesRequest) bool { +func (this *BatchArchiveRulesRequest) EqualVT(that *BatchArchiveRulesRequest) bool { if this == that { return true } else if this == nil || that == nil { @@ -2622,14 +2788,14 @@ func (this *BatchUndeleteRulesRequest) EqualVT(that *BatchUndeleteRulesRequest) return string(this.unknownFields) == string(that.unknownFields) } -func (this *BatchUndeleteRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*BatchUndeleteRulesRequest) +func (this *BatchArchiveRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchArchiveRulesRequest) if !ok { return false } return this.EqualVT(that) } -func (this *BatchUndeleteRulesResponse) EqualVT(that *BatchUndeleteRulesResponse) bool { +func (this *BatchArchiveRulesResponse) EqualVT(that *BatchArchiveRulesResponse) bool { if this == that { return true } else if this == nil || that == nil { @@ -2638,211 +2804,387 @@ func (this *BatchUndeleteRulesResponse) EqualVT(that *BatchUndeleteRulesResponse return string(this.unknownFields) == string(that.unknownFields) } -func (this *BatchUndeleteRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*BatchUndeleteRulesResponse) +func (this *BatchArchiveRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchArchiveRulesResponse) if !ok { return false } return this.EqualVT(that) } -func (this *ViewHumanFriendlyRulesRequest) EqualVT(that *ViewHumanFriendlyRulesRequest) bool { +func (this *UndeleteRuleRequest) EqualVT(that *UndeleteRuleRequest) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.AssetId != that.AssetId { + if this.RuleId != that.RuleId { + return false + } + if this.ClientKey != that.ClientKey { return false } return string(this.unknownFields) == string(that.unknownFields) } -func (this *ViewHumanFriendlyRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*ViewHumanFriendlyRulesRequest) +func (this *UndeleteRuleRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UndeleteRuleRequest) if !ok { return false } return this.EqualVT(that) } -func (this *ViewHumanFriendlyRulesResponse) EqualVT(that *ViewHumanFriendlyRulesResponse) bool { +func (this *UndeleteRuleResponse) EqualVT(that *UndeleteRuleResponse) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.RulesJson != that.RulesJson { - return false - } return string(this.unknownFields) == string(that.unknownFields) } -func (this *ViewHumanFriendlyRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*ViewHumanFriendlyRulesResponse) +func (this *UndeleteRuleResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UndeleteRuleResponse) if !ok { return false } return this.EqualVT(that) } -func (this *UpdateHumanFriendlyRulesRequest) EqualVT(that *UpdateHumanFriendlyRulesRequest) bool { +func (this *BatchUndeleteRulesRequest) EqualVT(that *BatchUndeleteRulesRequest) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.AssetId != that.AssetId { + if len(this.RuleIds) != len(that.RuleIds) { return false } - if this.RulesJson != that.RulesJson { - return false + for i, vx := range this.RuleIds { + vy := that.RuleIds[i] + if vx != vy { + return false + } } - if this.OrganizationId != that.OrganizationId { + if len(this.ClientKeys) != len(that.ClientKeys) { return false } + for i, vx := range this.ClientKeys { + vy := that.ClientKeys[i] + if vx != vy { + return false + } + } return string(this.unknownFields) == string(that.unknownFields) } -func (this *UpdateHumanFriendlyRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*UpdateHumanFriendlyRulesRequest) +func (this *BatchUndeleteRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchUndeleteRulesRequest) if !ok { return false } return this.EqualVT(that) } -func (this *UpdateHumanFriendlyRulesResponse) EqualVT(that *UpdateHumanFriendlyRulesResponse) bool { +func (this *BatchUndeleteRulesResponse) EqualVT(that *BatchUndeleteRulesResponse) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.Success != that.Success { - return false - } - if this.RulesCount != that.RulesCount { - return false - } - if this.Messages != that.Messages { - return false - } return string(this.unknownFields) == string(that.unknownFields) } -func (this *UpdateHumanFriendlyRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*UpdateHumanFriendlyRulesResponse) +func (this *BatchUndeleteRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchUndeleteRulesResponse) if !ok { return false } return this.EqualVT(that) } -func (this *ViewJsonRulesRequest) EqualVT(that *ViewJsonRulesRequest) bool { +func (this *UnarchiveRuleRequest) EqualVT(that *UnarchiveRuleRequest) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.AssetId != that.AssetId { + if this.RuleId != that.RuleId { + return false + } + if this.ClientKey != that.ClientKey { return false } return string(this.unknownFields) == string(that.unknownFields) } -func (this *ViewJsonRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*ViewJsonRulesRequest) +func (this *UnarchiveRuleRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UnarchiveRuleRequest) if !ok { return false } return this.EqualVT(that) } -func (this *ViewJsonRulesResponse) EqualVT(that *ViewJsonRulesResponse) bool { +func (this *UnarchiveRuleResponse) EqualVT(that *UnarchiveRuleResponse) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.RulesJson != that.RulesJson { - return false - } return string(this.unknownFields) == string(that.unknownFields) } -func (this *ViewJsonRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*ViewJsonRulesResponse) +func (this *UnarchiveRuleResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UnarchiveRuleResponse) if !ok { return false } return this.EqualVT(that) } -func (this *JsonRulesRequest) EqualVT(that *JsonRulesRequest) bool { +func (this *BatchUnarchiveRulesRequest) EqualVT(that *BatchUnarchiveRulesRequest) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.AssetId != that.AssetId { + if len(this.RuleIds) != len(that.RuleIds) { return false } - if this.RulesJson != that.RulesJson { - return false + for i, vx := range this.RuleIds { + vy := that.RuleIds[i] + if vx != vy { + return false + } } - if this.OrganizationId != that.OrganizationId { + if len(this.ClientKeys) != len(that.ClientKeys) { return false } + for i, vx := range this.ClientKeys { + vy := that.ClientKeys[i] + if vx != vy { + return false + } + } return string(this.unknownFields) == string(that.unknownFields) } -func (this *JsonRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*JsonRulesRequest) +func (this *BatchUnarchiveRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchUnarchiveRulesRequest) if !ok { return false } return this.EqualVT(that) } -func (this *JsonRulesResponse) EqualVT(that *JsonRulesResponse) bool { +func (this *BatchUnarchiveRulesResponse) EqualVT(that *BatchUnarchiveRulesResponse) bool { if this == that { return true } else if this == nil || that == nil { return false } - if this.Success != that.Success { - return false - } - if this.TotalRulesCount != that.TotalRulesCount { - return false - } - if this.RulesCreatedCount != that.RulesCreatedCount { - return false - } - if this.RulesUpdatedCount != that.RulesUpdatedCount { - return false - } - if this.RulesDeletedCount != that.RulesDeletedCount { - return false - } - if p, q := this.ErrorMessages, that.ErrorMessages; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { - return false - } return string(this.unknownFields) == string(that.unknownFields) } -func (this *JsonRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*JsonRulesResponse) +func (this *BatchUnarchiveRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchUnarchiveRulesResponse) if !ok { return false } return this.EqualVT(that) } -func (this *ValidateJsonRulesRequest) EqualVT(that *ValidateJsonRulesRequest) bool { +func (this *ViewHumanFriendlyRulesRequest) EqualVT(that *ViewHumanFriendlyRulesRequest) bool { if this == that { return true } else if this == nil || that == nil { return false } - if !this.Request.EqualVT(that.Request) { + if this.AssetId != that.AssetId { return false } return string(this.unknownFields) == string(that.unknownFields) } -func (this *ValidateJsonRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { +func (this *ViewHumanFriendlyRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ViewHumanFriendlyRulesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ViewHumanFriendlyRulesResponse) EqualVT(that *ViewHumanFriendlyRulesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.RulesJson != that.RulesJson { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ViewHumanFriendlyRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ViewHumanFriendlyRulesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateHumanFriendlyRulesRequest) EqualVT(that *UpdateHumanFriendlyRulesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AssetId != that.AssetId { + return false + } + if this.RulesJson != that.RulesJson { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateHumanFriendlyRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateHumanFriendlyRulesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateHumanFriendlyRulesResponse) EqualVT(that *UpdateHumanFriendlyRulesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Success != that.Success { + return false + } + if this.RulesCount != that.RulesCount { + return false + } + if this.Messages != that.Messages { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateHumanFriendlyRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateHumanFriendlyRulesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ViewJsonRulesRequest) EqualVT(that *ViewJsonRulesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AssetId != that.AssetId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ViewJsonRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ViewJsonRulesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ViewJsonRulesResponse) EqualVT(that *ViewJsonRulesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.RulesJson != that.RulesJson { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ViewJsonRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ViewJsonRulesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *JsonRulesRequest) EqualVT(that *JsonRulesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AssetId != that.AssetId { + return false + } + if this.RulesJson != that.RulesJson { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *JsonRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*JsonRulesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *JsonRulesResponse) EqualVT(that *JsonRulesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Success != that.Success { + return false + } + if this.TotalRulesCount != that.TotalRulesCount { + return false + } + if this.RulesCreatedCount != that.RulesCreatedCount { + return false + } + if this.RulesUpdatedCount != that.RulesUpdatedCount { + return false + } + if this.RulesDeletedCount != that.RulesDeletedCount { + return false + } + if p, q := this.ErrorMessages, that.ErrorMessages; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *JsonRulesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*JsonRulesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ValidateJsonRulesRequest) EqualVT(that *ValidateJsonRulesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Request.EqualVT(that.Request) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ValidateJsonRulesRequest) EqualMessageVT(thatMsg proto.Message) bool { that, ok := thatMsg.(*ValidateJsonRulesRequest) if !ok { return false @@ -3028,6 +3370,12 @@ func (this *RuleVersion) EqualVT(that *RuleVersion) bool { if !(*timestamppb1.Timestamp)(this.DeletedDate).EqualVT((*timestamppb1.Timestamp)(that.DeletedDate)) { return false } + if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { + return false + } + if this.IsArchived != that.IsArchived { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -3826,13 +4174,29 @@ type RuleServiceClient interface { UpdateRule(ctx context.Context, in *UpdateRuleRequest, opts ...grpc.CallOption) (*UpdateRuleResponse, error) // Updates existing rules or creates rules that do not exist. BatchUpdateRules(ctx context.Context, in *BatchUpdateRulesRequest, opts ...grpc.CallOption) (*BatchUpdateRulesResponse, error) - // Deletes a rule + // Deprecated: Do not use. + // Deprecated - use ArchiveRule instead. + // Archives a rule. DeleteRule(ctx context.Context, in *DeleteRuleRequest, opts ...grpc.CallOption) (*DeleteRuleResponse, error) - // Deletes multiple rules + // Archives a rule. + ArchiveRule(ctx context.Context, in *ArchiveRuleRequest, opts ...grpc.CallOption) (*ArchiveRuleResponse, error) + // Deprecated: Do not use. + // Deprecated - use BatchArchiveRules instead. + // Archives multiple rules. BatchDeleteRules(ctx context.Context, in *BatchDeleteRulesRequest, opts ...grpc.CallOption) (*BatchDeleteRulesResponse, error) - // Undeletes a rule + // Batch archives rules. + BatchArchiveRules(ctx context.Context, in *BatchArchiveRulesRequest, opts ...grpc.CallOption) (*BatchArchiveRulesResponse, error) + // Unarchives a rule. + UnarchiveRule(ctx context.Context, in *UnarchiveRuleRequest, opts ...grpc.CallOption) (*UnarchiveRuleResponse, error) + // Batch unarchives rules. + BatchUnarchiveRules(ctx context.Context, in *BatchUnarchiveRulesRequest, opts ...grpc.CallOption) (*BatchUnarchiveRulesResponse, error) + // Deprecated: Do not use. + // Deprecated - use UnarchiveRule instead. + // Unarchives a rule UndeleteRule(ctx context.Context, in *UndeleteRuleRequest, opts ...grpc.CallOption) (*UndeleteRuleResponse, error) - // Undeletes multiple rules + // Deprecated: Do not use. + // Deprecated - use BatchUnarchiveRules instead. + // Unarchives multiple rules BatchUndeleteRules(ctx context.Context, in *BatchUndeleteRulesRequest, opts ...grpc.CallOption) (*BatchUndeleteRulesResponse, error) // Deprecated: Do not use. // Deprecated - use RuleEvaluationService instead. @@ -3923,6 +4287,7 @@ func (c *ruleServiceClient) BatchUpdateRules(ctx context.Context, in *BatchUpdat return out, nil } +// Deprecated: Do not use. func (c *ruleServiceClient) DeleteRule(ctx context.Context, in *DeleteRuleRequest, opts ...grpc.CallOption) (*DeleteRuleResponse, error) { out := new(DeleteRuleResponse) err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/DeleteRule", in, out, opts...) @@ -3932,6 +4297,16 @@ func (c *ruleServiceClient) DeleteRule(ctx context.Context, in *DeleteRuleReques return out, nil } +func (c *ruleServiceClient) ArchiveRule(ctx context.Context, in *ArchiveRuleRequest, opts ...grpc.CallOption) (*ArchiveRuleResponse, error) { + out := new(ArchiveRuleResponse) + err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/ArchiveRule", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Deprecated: Do not use. func (c *ruleServiceClient) BatchDeleteRules(ctx context.Context, in *BatchDeleteRulesRequest, opts ...grpc.CallOption) (*BatchDeleteRulesResponse, error) { out := new(BatchDeleteRulesResponse) err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/BatchDeleteRules", in, out, opts...) @@ -3941,6 +4316,34 @@ func (c *ruleServiceClient) BatchDeleteRules(ctx context.Context, in *BatchDelet return out, nil } +func (c *ruleServiceClient) BatchArchiveRules(ctx context.Context, in *BatchArchiveRulesRequest, opts ...grpc.CallOption) (*BatchArchiveRulesResponse, error) { + out := new(BatchArchiveRulesResponse) + err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/BatchArchiveRules", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *ruleServiceClient) UnarchiveRule(ctx context.Context, in *UnarchiveRuleRequest, opts ...grpc.CallOption) (*UnarchiveRuleResponse, error) { + out := new(UnarchiveRuleResponse) + err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/UnarchiveRule", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *ruleServiceClient) BatchUnarchiveRules(ctx context.Context, in *BatchUnarchiveRulesRequest, opts ...grpc.CallOption) (*BatchUnarchiveRulesResponse, error) { + out := new(BatchUnarchiveRulesResponse) + err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/BatchUnarchiveRules", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Deprecated: Do not use. func (c *ruleServiceClient) UndeleteRule(ctx context.Context, in *UndeleteRuleRequest, opts ...grpc.CallOption) (*UndeleteRuleResponse, error) { out := new(UndeleteRuleResponse) err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/UndeleteRule", in, out, opts...) @@ -3950,6 +4353,7 @@ func (c *ruleServiceClient) UndeleteRule(ctx context.Context, in *UndeleteRuleRe return out, nil } +// Deprecated: Do not use. func (c *ruleServiceClient) BatchUndeleteRules(ctx context.Context, in *BatchUndeleteRulesRequest, opts ...grpc.CallOption) (*BatchUndeleteRulesResponse, error) { out := new(BatchUndeleteRulesResponse) err := c.cc.Invoke(ctx, "/sift.rules.v1.RuleService/BatchUndeleteRules", in, out, opts...) @@ -4071,13 +4475,29 @@ type RuleServiceServer interface { UpdateRule(context.Context, *UpdateRuleRequest) (*UpdateRuleResponse, error) // Updates existing rules or creates rules that do not exist. BatchUpdateRules(context.Context, *BatchUpdateRulesRequest) (*BatchUpdateRulesResponse, error) - // Deletes a rule + // Deprecated: Do not use. + // Deprecated - use ArchiveRule instead. + // Archives a rule. DeleteRule(context.Context, *DeleteRuleRequest) (*DeleteRuleResponse, error) - // Deletes multiple rules + // Archives a rule. + ArchiveRule(context.Context, *ArchiveRuleRequest) (*ArchiveRuleResponse, error) + // Deprecated: Do not use. + // Deprecated - use BatchArchiveRules instead. + // Archives multiple rules. BatchDeleteRules(context.Context, *BatchDeleteRulesRequest) (*BatchDeleteRulesResponse, error) - // Undeletes a rule + // Batch archives rules. + BatchArchiveRules(context.Context, *BatchArchiveRulesRequest) (*BatchArchiveRulesResponse, error) + // Unarchives a rule. + UnarchiveRule(context.Context, *UnarchiveRuleRequest) (*UnarchiveRuleResponse, error) + // Batch unarchives rules. + BatchUnarchiveRules(context.Context, *BatchUnarchiveRulesRequest) (*BatchUnarchiveRulesResponse, error) + // Deprecated: Do not use. + // Deprecated - use UnarchiveRule instead. + // Unarchives a rule UndeleteRule(context.Context, *UndeleteRuleRequest) (*UndeleteRuleResponse, error) - // Undeletes multiple rules + // Deprecated: Do not use. + // Deprecated - use BatchUnarchiveRules instead. + // Unarchives multiple rules BatchUndeleteRules(context.Context, *BatchUndeleteRulesRequest) (*BatchUndeleteRulesResponse, error) // Deprecated: Do not use. // Deprecated - use RuleEvaluationService instead. @@ -4132,9 +4552,21 @@ func (UnimplementedRuleServiceServer) BatchUpdateRules(context.Context, *BatchUp func (UnimplementedRuleServiceServer) DeleteRule(context.Context, *DeleteRuleRequest) (*DeleteRuleResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteRule not implemented") } +func (UnimplementedRuleServiceServer) ArchiveRule(context.Context, *ArchiveRuleRequest) (*ArchiveRuleResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArchiveRule not implemented") +} func (UnimplementedRuleServiceServer) BatchDeleteRules(context.Context, *BatchDeleteRulesRequest) (*BatchDeleteRulesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BatchDeleteRules not implemented") } +func (UnimplementedRuleServiceServer) BatchArchiveRules(context.Context, *BatchArchiveRulesRequest) (*BatchArchiveRulesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchArchiveRules not implemented") +} +func (UnimplementedRuleServiceServer) UnarchiveRule(context.Context, *UnarchiveRuleRequest) (*UnarchiveRuleResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnarchiveRule not implemented") +} +func (UnimplementedRuleServiceServer) BatchUnarchiveRules(context.Context, *BatchUnarchiveRulesRequest) (*BatchUnarchiveRulesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchUnarchiveRules not implemented") +} func (UnimplementedRuleServiceServer) UndeleteRule(context.Context, *UndeleteRuleRequest) (*UndeleteRuleResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UndeleteRule not implemented") } @@ -4310,79 +4742,151 @@ func _RuleService_DeleteRule_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } -func _RuleService_BatchDeleteRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(BatchDeleteRulesRequest) +func _RuleService_ArchiveRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ArchiveRuleRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(RuleServiceServer).BatchDeleteRules(ctx, in) + return srv.(RuleServiceServer).ArchiveRule(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/sift.rules.v1.RuleService/BatchDeleteRules", + FullMethod: "/sift.rules.v1.RuleService/ArchiveRule", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RuleServiceServer).BatchDeleteRules(ctx, req.(*BatchDeleteRulesRequest)) + return srv.(RuleServiceServer).ArchiveRule(ctx, req.(*ArchiveRuleRequest)) } return interceptor(ctx, in, info, handler) } -func _RuleService_UndeleteRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UndeleteRuleRequest) +func _RuleService_BatchDeleteRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchDeleteRulesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(RuleServiceServer).UndeleteRule(ctx, in) + return srv.(RuleServiceServer).BatchDeleteRules(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/sift.rules.v1.RuleService/UndeleteRule", + FullMethod: "/sift.rules.v1.RuleService/BatchDeleteRules", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RuleServiceServer).UndeleteRule(ctx, req.(*UndeleteRuleRequest)) + return srv.(RuleServiceServer).BatchDeleteRules(ctx, req.(*BatchDeleteRulesRequest)) } return interceptor(ctx, in, info, handler) } -func _RuleService_BatchUndeleteRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(BatchUndeleteRulesRequest) +func _RuleService_BatchArchiveRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchArchiveRulesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(RuleServiceServer).BatchUndeleteRules(ctx, in) + return srv.(RuleServiceServer).BatchArchiveRules(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/sift.rules.v1.RuleService/BatchUndeleteRules", + FullMethod: "/sift.rules.v1.RuleService/BatchArchiveRules", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RuleServiceServer).BatchUndeleteRules(ctx, req.(*BatchUndeleteRulesRequest)) + return srv.(RuleServiceServer).BatchArchiveRules(ctx, req.(*BatchArchiveRulesRequest)) } return interceptor(ctx, in, info, handler) } -func _RuleService_EvaluateRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EvaluateRulesRequest) +func _RuleService_UnarchiveRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UnarchiveRuleRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(RuleServiceServer).EvaluateRules(ctx, in) + return srv.(RuleServiceServer).UnarchiveRule(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/sift.rules.v1.RuleService/EvaluateRules", + FullMethod: "/sift.rules.v1.RuleService/UnarchiveRule", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RuleServiceServer).EvaluateRules(ctx, req.(*EvaluateRulesRequest)) + return srv.(RuleServiceServer).UnarchiveRule(ctx, req.(*UnarchiveRuleRequest)) } return interceptor(ctx, in, info, handler) } -func _RuleService_ViewHumanFriendlyRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _RuleService_BatchUnarchiveRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchUnarchiveRulesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuleServiceServer).BatchUnarchiveRules(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.rules.v1.RuleService/BatchUnarchiveRules", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuleServiceServer).BatchUnarchiveRules(ctx, req.(*BatchUnarchiveRulesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RuleService_UndeleteRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UndeleteRuleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuleServiceServer).UndeleteRule(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.rules.v1.RuleService/UndeleteRule", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuleServiceServer).UndeleteRule(ctx, req.(*UndeleteRuleRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RuleService_BatchUndeleteRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchUndeleteRulesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuleServiceServer).BatchUndeleteRules(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.rules.v1.RuleService/BatchUndeleteRules", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuleServiceServer).BatchUndeleteRules(ctx, req.(*BatchUndeleteRulesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RuleService_EvaluateRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EvaluateRulesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuleServiceServer).EvaluateRules(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.rules.v1.RuleService/EvaluateRules", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuleServiceServer).EvaluateRules(ctx, req.(*EvaluateRulesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RuleService_ViewHumanFriendlyRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ViewHumanFriendlyRulesRequest) if err := dec(in); err != nil { return nil, err @@ -4579,10 +5083,26 @@ var RuleService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeleteRule", Handler: _RuleService_DeleteRule_Handler, }, + { + MethodName: "ArchiveRule", + Handler: _RuleService_ArchiveRule_Handler, + }, { MethodName: "BatchDeleteRules", Handler: _RuleService_BatchDeleteRules_Handler, }, + { + MethodName: "BatchArchiveRules", + Handler: _RuleService_BatchArchiveRules_Handler, + }, + { + MethodName: "UnarchiveRule", + Handler: _RuleService_UnarchiveRule_Handler, + }, + { + MethodName: "BatchUnarchiveRules", + Handler: _RuleService_BatchUnarchiveRules_Handler, + }, { MethodName: "UndeleteRule", Handler: _RuleService_UndeleteRule_Handler, @@ -4666,6 +5186,30 @@ func (m *Rule) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -5700,6 +6244,16 @@ func (m *UpdateRuleRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x70 + } if len(m.Metadata) > 0 { for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { @@ -6421,7 +6975,7 @@ func (m *BatchDeleteRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, err return len(dAtA) - i, nil } -func (m *UndeleteRuleRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ArchiveRuleRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6434,12 +6988,12 @@ func (m *UndeleteRuleRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UndeleteRuleRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ArchiveRuleRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UndeleteRuleRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ArchiveRuleRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6468,7 +7022,7 @@ func (m *UndeleteRuleRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *UndeleteRuleResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ArchiveRuleResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6481,12 +7035,12 @@ func (m *UndeleteRuleResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UndeleteRuleResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ArchiveRuleResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UndeleteRuleResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ArchiveRuleResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6501,7 +7055,7 @@ func (m *UndeleteRuleResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *BatchUndeleteRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *BatchArchiveRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6514,12 +7068,12 @@ func (m *BatchUndeleteRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchUndeleteRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BatchUndeleteRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6552,7 +7106,7 @@ func (m *BatchUndeleteRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, er return len(dAtA) - i, nil } -func (m *BatchUndeleteRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *BatchArchiveRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6565,12 +7119,12 @@ func (m *BatchUndeleteRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchUndeleteRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BatchUndeleteRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6585,7 +7139,7 @@ func (m *BatchUndeleteRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *ViewHumanFriendlyRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *UndeleteRuleRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6598,12 +7152,12 @@ func (m *ViewHumanFriendlyRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ViewHumanFriendlyRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *UndeleteRuleRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ViewHumanFriendlyRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UndeleteRuleRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6615,17 +7169,24 @@ func (m *ViewHumanFriendlyRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ViewHumanFriendlyRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *UndeleteRuleResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6638,12 +7199,12 @@ func (m *ViewHumanFriendlyRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ViewHumanFriendlyRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *UndeleteRuleResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ViewHumanFriendlyRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UndeleteRuleResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6655,17 +7216,10 @@ func (m *ViewHumanFriendlyRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *UpdateHumanFriendlyRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *BatchUndeleteRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6678,12 +7232,12 @@ func (m *UpdateHumanFriendlyRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateHumanFriendlyRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UpdateHumanFriendlyRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6695,31 +7249,28 @@ func (m *UpdateHumanFriendlyRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (i i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) - i-- - dAtA[i] = 0x1a - } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) - i-- - dAtA[i] = 0x12 + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0xa + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *UpdateHumanFriendlyRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *BatchUndeleteRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6732,12 +7283,12 @@ func (m *UpdateHumanFriendlyRulesResponse) MarshalVT() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *UpdateHumanFriendlyRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UpdateHumanFriendlyRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6749,32 +7300,10 @@ func (m *UpdateHumanFriendlyRulesResponse) MarshalToSizedBufferVT(dAtA []byte) ( i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Messages) > 0 { - i -= len(m.Messages) - copy(dAtA[i:], m.Messages) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Messages))) - i-- - dAtA[i] = 0x1a - } - if m.RulesCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCount)) - i-- - dAtA[i] = 0x10 - } - if m.Success { - i-- - if m.Success { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *ViewJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *UnarchiveRuleRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6787,12 +7316,12 @@ func (m *ViewJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ViewJsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *UnarchiveRuleRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ViewJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UnarchiveRuleRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6804,17 +7333,24 @@ func (m *ViewJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ViewJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *UnarchiveRuleResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6827,12 +7363,12 @@ func (m *ViewJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ViewJsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *UnarchiveRuleResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ViewJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UnarchiveRuleResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6844,17 +7380,10 @@ func (m *ViewJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *JsonRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *BatchUnarchiveRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6867,12 +7396,12 @@ func (m *JsonRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *JsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *JsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6884,31 +7413,28 @@ func (m *JsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) - i-- - dAtA[i] = 0x1a - } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) - i-- - dAtA[i] = 0x12 + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0xa + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *JsonRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *BatchUnarchiveRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6921,12 +7447,12 @@ func (m *JsonRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *JsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *JsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -6938,47 +7464,10 @@ func (m *JsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ErrorMessages != nil { - i -= len(*m.ErrorMessages) - copy(dAtA[i:], *m.ErrorMessages) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorMessages))) - i-- - dAtA[i] = 0x32 - } - if m.RulesDeletedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesDeletedCount)) - i-- - dAtA[i] = 0x28 - } - if m.RulesUpdatedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesUpdatedCount)) - i-- - dAtA[i] = 0x20 - } - if m.RulesCreatedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCreatedCount)) - i-- - dAtA[i] = 0x18 - } - if m.TotalRulesCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TotalRulesCount)) - i-- - dAtA[i] = 0x10 - } - if m.Success { - i-- - if m.Success { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *ValidateJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ViewHumanFriendlyRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -6991,12 +7480,12 @@ func (m *ValidateJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ValidateJsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ValidateJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7008,20 +7497,17 @@ func (m *ValidateJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Request != nil { - size, err := m.Request.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ValidateJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ViewHumanFriendlyRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7034,12 +7520,12 @@ func (m *ValidateJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ValidateJsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ValidateJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7051,20 +7537,17 @@ func (m *ValidateJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, er i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Response != nil { - size, err := m.Response.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *UpdateJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *UpdateHumanFriendlyRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7077,12 +7560,12 @@ func (m *UpdateJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateJsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UpdateJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7094,20 +7577,31 @@ func (m *UpdateJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Request != nil { - size, err := m.Request.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x1a + } + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) + i-- + dAtA[i] = 0x12 + } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *UpdateJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *UpdateHumanFriendlyRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7120,12 +7614,12 @@ func (m *UpdateJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateJsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *UpdateJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7137,20 +7631,32 @@ func (m *UpdateJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Response != nil { - size, err := m.Response.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if len(m.Messages) > 0 { + i -= len(m.Messages) + copy(dAtA[i:], m.Messages) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Messages))) + i-- + dAtA[i] = 0x1a + } + if m.RulesCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCount)) + i-- + dAtA[i] = 0x10 + } + if m.Success { + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ListRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ViewJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7163,12 +7669,12 @@ func (m *ListRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ViewJsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ViewJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7180,36 +7686,17 @@ func (m *ListRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrderBy) > 0 { - i -= len(m.OrderBy) - copy(dAtA[i:], m.OrderBy) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) - i-- - dAtA[i] = 0x22 - } - if len(m.Filter) > 0 { - i -= len(m.Filter) - copy(dAtA[i:], m.Filter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) - i-- - dAtA[i] = 0x1a - } - if len(m.PageToken) > 0 { - i -= len(m.PageToken) - copy(dAtA[i:], m.PageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) - i-- - dAtA[i] = 0x12 - } - if m.PageSize != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ListRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ViewJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7222,12 +7709,12 @@ func (m *ListRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ViewJsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ViewJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7239,29 +7726,17 @@ func (m *ListRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.NextPageToken) > 0 { - i -= len(m.NextPageToken) - copy(dAtA[i:], m.NextPageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) i-- - dAtA[i] = 0x12 - } - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Rules[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ListRuleVersionsRequest) MarshalVT() (dAtA []byte, err error) { +func (m *JsonRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7274,12 +7749,12 @@ func (m *ListRuleVersionsRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRuleVersionsRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *JsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListRuleVersionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *JsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7291,36 +7766,31 @@ func (m *ListRuleVersionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Filter) > 0 { - i -= len(m.Filter) - copy(dAtA[i:], m.Filter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) - i-- - dAtA[i] = 0x22 - } - if len(m.PageToken) > 0 { - i -= len(m.PageToken) - copy(dAtA[i:], m.PageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) i-- dAtA[i] = 0x1a } - if m.PageSize != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RuleVersion) MarshalVT() (dAtA []byte, err error) { +func (m *JsonRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7333,12 +7803,12 @@ func (m *RuleVersion) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RuleVersion) MarshalToVT(dAtA []byte) (int, error) { +func (m *JsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleVersion) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *JsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7350,72 +7820,90 @@ func (m *RuleVersion) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.DeletedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if m.ErrorMessages != nil { + i -= len(*m.ErrorMessages) + copy(dAtA[i:], *m.ErrorMessages) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorMessages))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x32 } - if len(m.GeneratedChangeMessage) > 0 { - i -= len(m.GeneratedChangeMessage) - copy(dAtA[i:], m.GeneratedChangeMessage) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GeneratedChangeMessage))) + if m.RulesDeletedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesDeletedCount)) i-- - dAtA[i] = 0x3a + dAtA[i] = 0x28 } - if len(m.VersionNotes) > 0 { - i -= len(m.VersionNotes) - copy(dAtA[i:], m.VersionNotes) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionNotes))) + if m.RulesUpdatedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesUpdatedCount)) i-- - dAtA[i] = 0x32 + dAtA[i] = 0x20 } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + if m.RulesCreatedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCreatedCount)) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x18 } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if m.TotalRulesCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TotalRulesCount)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x10 } - if len(m.Version) > 0 { - i -= len(m.Version) - copy(dAtA[i:], m.Version) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Version))) + if m.Success { i-- - dAtA[i] = 0x1a - } - if len(m.RuleVersionId) > 0 { - i -= len(m.RuleVersionId) - copy(dAtA[i:], m.RuleVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x8 } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + return len(dAtA) - i, nil +} + +func (m *ValidateJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateJsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Request != nil { + size, err := m.Request.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ListRuleVersionsResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ValidateJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7428,12 +7916,12 @@ func (m *ListRuleVersionsResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRuleVersionsResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ValidateJsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ListRuleVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ValidateJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7445,29 +7933,20 @@ func (m *ListRuleVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.NextPageToken) > 0 { - i -= len(m.NextPageToken) - copy(dAtA[i:], m.NextPageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleVersions) > 0 { - for iNdEx := len(m.RuleVersions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.RuleVersions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa + if m.Response != nil { + size, err := m.Response.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *GetRuleVersionRequest) MarshalVT() (dAtA []byte, err error) { +func (m *UpdateJsonRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7480,12 +7959,12 @@ func (m *GetRuleVersionRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetRuleVersionRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *GetRuleVersionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7497,17 +7976,20 @@ func (m *GetRuleVersionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleVersionId) > 0 { - i -= len(m.RuleVersionId) - copy(dAtA[i:], m.RuleVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) + if m.Request != nil { + size, err := m.Request.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *GetRuleVersionResponse) MarshalVT() (dAtA []byte, err error) { +func (m *UpdateJsonRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7520,12 +8002,12 @@ func (m *GetRuleVersionResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetRuleVersionResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *GetRuleVersionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7537,8 +8019,8 @@ func (m *GetRuleVersionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Rule != nil { - size, err := m.Rule.MarshalToSizedBufferVT(dAtA[:i]) + if m.Response != nil { + size, err := m.Response.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -7550,7 +8032,7 @@ func (m *GetRuleVersionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *BatchGetRuleVersionsRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ListRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7563,12 +8045,12 @@ func (m *BatchGetRuleVersionsRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchGetRuleVersionsRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ListRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BatchGetRuleVersionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ListRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7580,19 +8062,36 @@ func (m *BatchGetRuleVersionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleVersionIds) > 0 { - for iNdEx := len(m.RuleVersionIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleVersionIds[iNdEx]) - copy(dAtA[i:], m.RuleVersionIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *BatchGetRuleVersionsResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ListRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7605,12 +8104,12 @@ func (m *BatchGetRuleVersionsResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchGetRuleVersionsResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ListRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BatchGetRuleVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ListRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7622,6 +8121,13 @@ func (m *BatchGetRuleVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } if len(m.Rules) > 0 { for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { size, err := m.Rules[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) @@ -7637,7 +8143,7 @@ func (m *BatchGetRuleVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *RuleConditionExpression) MarshalVT() (dAtA []byte, err error) { +func (m *ListRuleVersionsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7650,12 +8156,12 @@ func (m *RuleConditionExpression) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RuleConditionExpression) MarshalToVT(dAtA []byte) (int, error) { +func (m *ListRuleVersionsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleConditionExpression) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ListRuleVersionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7667,57 +8173,36 @@ func (m *RuleConditionExpression) MarshalToSizedBufferVT(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Expression.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x22 } - return len(dAtA) - i, nil -} - -func (m *RuleConditionExpression_SingleChannelComparison) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *RuleConditionExpression_SingleChannelComparison) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.SingleChannelComparison != nil { - size, err := m.SingleChannelComparison.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) i-- - dAtA[i] = 0xa + dAtA[i] = 0x1a } - return len(dAtA) - i, nil -} -func (m *RuleConditionExpression_CalculatedChannel) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *RuleConditionExpression_CalculatedChannel) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.CalculatedChannel != nil { - size, err := m.CalculatedChannel.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *SingleChannelComparisonExpression) MarshalVT() (dAtA []byte, err error) { + +func (m *RuleVersion) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7730,12 +8215,12 @@ func (m *SingleChannelComparisonExpression) MarshalVT() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *SingleChannelComparisonExpression) MarshalToVT(dAtA []byte) (int, error) { +func (m *RuleVersion) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *SingleChannelComparisonExpression) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *RuleVersion) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7747,84 +8232,184 @@ func (m *SingleChannelComparisonExpression) MarshalToSizedBufferVT(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Threshold.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a } - if m.Comparator != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Comparator)) + if m.DeletedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x42 } - if len(m.ChannelName) > 0 { - i -= len(m.ChannelName) - copy(dAtA[i:], m.ChannelName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelName))) + if len(m.GeneratedChangeMessage) > 0 { + i -= len(m.GeneratedChangeMessage) + copy(dAtA[i:], m.GeneratedChangeMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GeneratedChangeMessage))) + i-- + dAtA[i] = 0x3a + } + if len(m.VersionNotes) > 0 { + i -= len(m.VersionNotes) + copy(dAtA[i:], m.VersionNotes) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionNotes))) + i-- + dAtA[i] = 0x32 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x2a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if len(m.Version) > 0 { + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x1a + } + if len(m.RuleVersionId) > 0 { + i -= len(m.RuleVersionId) + copy(dAtA[i:], m.RuleVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) i-- dAtA[i] = 0x12 } - if len(m.ChannelComponent) > 0 { - i -= len(m.ChannelComponent) - copy(dAtA[i:], m.ChannelComponent) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelComponent))) + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *SingleChannelComparisonExpression_Double) MarshalToVT(dAtA []byte) (int, error) { +func (m *ListRuleVersionsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil } -func (m *SingleChannelComparisonExpression_Double) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Double)))) - i-- - dAtA[i] = 0x21 - return len(dAtA) - i, nil -} -func (m *SingleChannelComparisonExpression_String_) MarshalToVT(dAtA []byte) (int, error) { +func (m *ListRuleVersionsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *SingleChannelComparisonExpression_String_) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ListRuleVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - i -= len(m.String_) - copy(dAtA[i:], m.String_) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.String_))) - i-- - dAtA[i] = 0x2a + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleVersions) > 0 { + for iNdEx := len(m.RuleVersions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RuleVersions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } -func (m *SingleChannelComparisonExpression_LastValue) MarshalToVT(dAtA []byte) (int, error) { + +func (m *GetRuleVersionRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetRuleVersionRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *SingleChannelComparisonExpression_LastValue) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *GetRuleVersionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.LastValue != nil { - size, err := m.LastValue.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.RuleVersionId) > 0 { + i -= len(m.RuleVersionId) + copy(dAtA[i:], m.RuleVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) i-- - dAtA[i] = 0x32 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *LastValueThreshold) MarshalVT() (dAtA []byte, err error) { + +func (m *GetRuleVersionResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7837,12 +8422,12 @@ func (m *LastValueThreshold) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *LastValueThreshold) MarshalToVT(dAtA []byte) (int, error) { +func (m *GetRuleVersionResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *LastValueThreshold) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *GetRuleVersionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7854,10 +8439,20 @@ func (m *LastValueThreshold) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.Rule != nil { + size, err := m.Rule.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *CalculatedChannelConfig) MarshalVT() (dAtA []byte, err error) { +func (m *BatchGetRuleVersionsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7870,12 +8465,12 @@ func (m *CalculatedChannelConfig) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CalculatedChannelConfig) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchGetRuleVersionsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *CalculatedChannelConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchGetRuleVersionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7887,55 +8482,11 @@ func (m *CalculatedChannelConfig) MarshalToSizedBufferVT(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.FunctionDependencies) > 0 { - for iNdEx := len(m.FunctionDependencies) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.FunctionDependencies[iNdEx]).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.FunctionDependencies[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x1a - } - } - if len(m.Expression) > 0 { - i -= len(m.Expression) - copy(dAtA[i:], m.Expression) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Expression))) - i-- - dAtA[i] = 0x12 - } - if len(m.ChannelReferences) > 0 { - for k := range m.ChannelReferences { - v := m.ChannelReferences[k] - baseI := i - size, err := v.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - i -= len(k) - copy(dAtA[i:], k) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k))) - i-- - dAtA[i] = 0xa - i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i)) + if len(m.RuleVersionIds) > 0 { + for iNdEx := len(m.RuleVersionIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleVersionIds[iNdEx]) + copy(dAtA[i:], m.RuleVersionIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionIds[iNdEx]))) i-- dAtA[i] = 0xa } @@ -7943,7 +8494,7 @@ func (m *CalculatedChannelConfig) MarshalToSizedBufferVT(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *ChannelReference) MarshalVT() (dAtA []byte, err error) { +func (m *BatchGetRuleVersionsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -7956,12 +8507,12 @@ func (m *ChannelReference) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ChannelReference) MarshalToVT(dAtA []byte) (int, error) { +func (m *BatchGetRuleVersionsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ChannelReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BatchGetRuleVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -7973,24 +8524,22 @@ func (m *ChannelReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Component) > 0 { - i -= len(m.Component) - copy(dAtA[i:], m.Component) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Component))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa + if len(m.Rules) > 0 { + for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Rules[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *RuleActionConfiguration) MarshalVT() (dAtA []byte, err error) { +func (m *RuleConditionExpression) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8003,12 +8552,12 @@ func (m *RuleActionConfiguration) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RuleActionConfiguration) MarshalToVT(dAtA []byte) (int, error) { +func (m *RuleConditionExpression) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *RuleConditionExpression) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8020,7 +8569,7 @@ func (m *RuleActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Configuration.(interface { + if vtmsg, ok := m.Expression.(interface { MarshalToSizedBufferVT([]byte) (int, error) }); ok { size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) @@ -8032,15 +8581,15 @@ func (m *RuleActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *RuleActionConfiguration_Notification) MarshalToVT(dAtA []byte) (int, error) { +func (m *RuleConditionExpression_SingleChannelComparison) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleActionConfiguration_Notification) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *RuleConditionExpression_SingleChannelComparison) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i := len(dAtA) - if m.Notification != nil { - size, err := m.Notification.MarshalToSizedBufferVT(dAtA[:i]) + if m.SingleChannelComparison != nil { + size, err := m.SingleChannelComparison.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -8051,15 +8600,15 @@ func (m *RuleActionConfiguration_Notification) MarshalToSizedBufferVT(dAtA []byt } return len(dAtA) - i, nil } -func (m *RuleActionConfiguration_Annotation) MarshalToVT(dAtA []byte) (int, error) { +func (m *RuleConditionExpression_CalculatedChannel) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleActionConfiguration_Annotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *RuleConditionExpression_CalculatedChannel) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i := len(dAtA) - if m.Annotation != nil { - size, err := m.Annotation.MarshalToSizedBufferVT(dAtA[:i]) + if m.CalculatedChannel != nil { + size, err := m.CalculatedChannel.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -8070,7 +8619,7 @@ func (m *RuleActionConfiguration_Annotation) MarshalToSizedBufferVT(dAtA []byte) } return len(dAtA) - i, nil } -func (m *NotificationActionConfiguration) MarshalVT() (dAtA []byte, err error) { +func (m *SingleChannelComparisonExpression) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8083,12 +8632,12 @@ func (m *NotificationActionConfiguration) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *NotificationActionConfiguration) MarshalToVT(dAtA []byte) (int, error) { +func (m *SingleChannelComparisonExpression) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *NotificationActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *SingleChannelComparisonExpression) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8100,19 +8649,84 @@ func (m *NotificationActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (i i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RecipientUserIds) > 0 { - for iNdEx := len(m.RecipientUserIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RecipientUserIds[iNdEx]) - copy(dAtA[i:], m.RecipientUserIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RecipientUserIds[iNdEx]))) - i-- - dAtA[i] = 0xa + if vtmsg, ok := m.Threshold.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + } + if m.Comparator != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Comparator)) + i-- + dAtA[i] = 0x18 + } + if len(m.ChannelName) > 0 { + i -= len(m.ChannelName) + copy(dAtA[i:], m.ChannelName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelName))) + i-- + dAtA[i] = 0x12 + } + if len(m.ChannelComponent) > 0 { + i -= len(m.ChannelComponent) + copy(dAtA[i:], m.ChannelComponent) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelComponent))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *AnnotationActionConfiguration) MarshalVT() (dAtA []byte, err error) { +func (m *SingleChannelComparisonExpression_Double) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SingleChannelComparisonExpression_Double) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Double)))) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *SingleChannelComparisonExpression_String_) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SingleChannelComparisonExpression_String_) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.String_) + copy(dAtA[i:], m.String_) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.String_))) + i-- + dAtA[i] = 0x2a + return len(dAtA) - i, nil +} +func (m *SingleChannelComparisonExpression_LastValue) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SingleChannelComparisonExpression_LastValue) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.LastValue != nil { + size, err := m.LastValue.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *LastValueThreshold) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8125,12 +8739,12 @@ func (m *AnnotationActionConfiguration) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *AnnotationActionConfiguration) MarshalToVT(dAtA []byte) (int, error) { +func (m *LastValueThreshold) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *AnnotationActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *LastValueThreshold) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8142,55 +8756,10 @@ func (m *AnnotationActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Metadata) > 0 { - for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Metadata[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x22 - } - } - if m.AssignedToUserId != nil { - i -= len(*m.AssignedToUserId) - copy(dAtA[i:], *m.AssignedToUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.AssignedToUserId))) - i-- - dAtA[i] = 0x1a - } - if m.AnnotationType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AnnotationType)) - i-- - dAtA[i] = 0x10 - } - if len(m.TagIds) > 0 { - for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.TagIds[iNdEx]) - copy(dAtA[i:], m.TagIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } return len(dAtA) - i, nil } -func (m *EvaluateRulesRequest) MarshalVT() (dAtA []byte, err error) { +func (m *CalculatedChannelConfig) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8203,12 +8772,12 @@ func (m *EvaluateRulesRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EvaluateRulesRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *CalculatedChannelConfig) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *EvaluateRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *CalculatedChannelConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8220,40 +8789,55 @@ func (m *EvaluateRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Time.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - } - if m.DryRun { - i-- - if m.DryRun { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.FunctionDependencies) > 0 { + for iNdEx := len(m.FunctionDependencies) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.FunctionDependencies[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.FunctionDependencies[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x28 } - if m.AnnotationOptions != nil { - size, err := m.AnnotationOptions.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.Expression) > 0 { + i -= len(m.Expression) + copy(dAtA[i:], m.Expression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Expression))) i-- dAtA[i] = 0x12 } - if len(m.RuleIds) > 0 { - for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleIds[iNdEx]) - copy(dAtA[i:], m.RuleIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + if len(m.ChannelReferences) > 0 { + for k := range m.ChannelReferences { + v := m.ChannelReferences[k] + baseI := i + size, err := v.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + i -= len(k) + copy(dAtA[i:], k) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i)) i-- dAtA[i] = 0xa } @@ -8261,40 +8845,7 @@ func (m *EvaluateRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *EvaluateRulesRequest_RunId) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *EvaluateRulesRequest_RunId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - i -= len(m.RunId) - copy(dAtA[i:], m.RunId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) - i-- - dAtA[i] = 0x1a - return len(dAtA) - i, nil -} -func (m *EvaluateRulesRequest_TimeRange) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *EvaluateRulesRequest_TimeRange) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.TimeRange != nil { - size, err := m.TimeRange.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x22 - } - return len(dAtA) - i, nil -} -func (m *EvaluatedAnnotationOptions) MarshalVT() (dAtA []byte, err error) { +func (m *ChannelReference) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8307,12 +8858,12 @@ func (m *EvaluatedAnnotationOptions) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EvaluatedAnnotationOptions) MarshalToVT(dAtA []byte) (int, error) { +func (m *ChannelReference) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *EvaluatedAnnotationOptions) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ChannelReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8324,19 +8875,24 @@ func (m *EvaluatedAnnotationOptions) MarshalToSizedBufferVT(dAtA []byte) (int, e i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.TagIds) > 0 { - for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.TagIds[iNdEx]) - copy(dAtA[i:], m.TagIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(m.Component) > 0 { + i -= len(m.Component) + copy(dAtA[i:], m.Component) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Component))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *TimeRangeQuery) MarshalVT() (dAtA []byte, err error) { +func (m *RuleActionConfiguration) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8349,12 +8905,12 @@ func (m *TimeRangeQuery) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TimeRangeQuery) MarshalToVT(dAtA []byte) (int, error) { +func (m *RuleActionConfiguration) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *TimeRangeQuery) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *RuleActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8366,18 +8922,27 @@ func (m *TimeRangeQuery) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.EndTime != nil { - size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVT(dAtA[:i]) + if vtmsg, ok := m.Configuration.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 } - if m.StartTime != nil { - size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVT(dAtA[:i]) + return len(dAtA) - i, nil +} + +func (m *RuleActionConfiguration_Notification) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RuleActionConfiguration_Notification) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Notification != nil { + size, err := m.Notification.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -8388,8 +8953,26 @@ func (m *TimeRangeQuery) MarshalToSizedBufferVT(dAtA []byte) (int, error) { } return len(dAtA) - i, nil } +func (m *RuleActionConfiguration_Annotation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} -func (m *EvaluateRulesResponse) MarshalVT() (dAtA []byte, err error) { +func (m *RuleActionConfiguration_Annotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *NotificationActionConfiguration) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8402,12 +8985,12 @@ func (m *EvaluateRulesResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EvaluateRulesResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *NotificationActionConfiguration) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *EvaluateRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *NotificationActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8419,41 +9002,19 @@ func (m *EvaluateRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ReportId != nil { - i -= len(*m.ReportId) - copy(dAtA[i:], *m.ReportId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ReportId))) - i-- - dAtA[i] = 0x22 - } - if m.JobId != nil { - i -= len(*m.JobId) - copy(dAtA[i:], *m.JobId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.JobId))) - i-- - dAtA[i] = 0x1a - } - if len(m.DryRunAnnotations) > 0 { - for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.DryRunAnnotations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.RecipientUserIds) > 0 { + for iNdEx := len(m.RecipientUserIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RecipientUserIds[iNdEx]) + copy(dAtA[i:], m.RecipientUserIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RecipientUserIds[iNdEx]))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0xa } } - if m.CreatedAnnotationCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CreatedAnnotationCount)) - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *DryRunAnnotation) MarshalVT() (dAtA []byte, err error) { +func (m *AnnotationActionConfiguration) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -8466,12 +9027,12 @@ func (m *DryRunAnnotation) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DryRunAnnotation) MarshalToVT(dAtA []byte) (int, error) { +func (m *AnnotationActionConfiguration) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *DryRunAnnotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *AnnotationActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8483,69 +9044,73 @@ func (m *DryRunAnnotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ConditionVersionId) > 0 { - i -= len(m.ConditionVersionId) - copy(dAtA[i:], m.ConditionVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionVersionId))) + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + } + if m.AssignedToUserId != nil { + i -= len(*m.AssignedToUserId) + copy(dAtA[i:], *m.AssignedToUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.AssignedToUserId))) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x1a } - if m.EndTime != nil { - size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if m.AnnotationType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AnnotationType)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x10 } - if m.StartTime != nil { - size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if len(m.TagIds) > 0 { + for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.TagIds[iNdEx]) + copy(dAtA[i:], m.TagIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) + i-- + dAtA[i] = 0xa } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x12 - } - if len(m.ConditionId) > 0 { - i -= len(m.ConditionId) - copy(dAtA[i:], m.ConditionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionId))) - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Rule) MarshalVTStrict() (dAtA []byte, err error) { +func (m *EvaluateRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Rule) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *EvaluateRulesRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Rule) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *EvaluateRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8557,208 +9122,99 @@ func (m *Rule) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Metadata) > 0 { - for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Metadata[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x9a - } - } - if m.IsExternal { - i-- - if m.IsExternal { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x90 - } - if m.DeletedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if vtmsg, ok := m.Time.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x8a } - if m.ContextualChannels != nil { - size, err := m.ContextualChannels.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1 + if m.DryRun { i-- - dAtA[i] = 0x82 - } - if m.AssetConfiguration != nil { - size, err := m.AssetConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if m.DryRun { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x7a - } - if len(m.ClientKey) > 0 { - i -= len(m.ClientKey) - copy(dAtA[i:], m.ClientKey) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) i-- - dAtA[i] = 0x72 + dAtA[i] = 0x28 } - if m.RuleVersion != nil { - size, err := m.RuleVersion.MarshalToSizedBufferVTStrict(dAtA[:i]) + if m.AnnotationOptions != nil { + size, err := m.AnnotationOptions.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x6a + dAtA[i] = 0x12 } - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Conditions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) i-- - dAtA[i] = 0x62 - } - } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) - i-- - dAtA[i] = 0x5a - } - if len(m.ModifiedByUserId) > 0 { - i -= len(m.ModifiedByUserId) - copy(dAtA[i:], m.ModifiedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) - i-- - dAtA[i] = 0x52 - } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) - i-- - dAtA[i] = 0x4a - } - if m.ModifiedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + dAtA[i] = 0xa } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x42 } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + return len(dAtA) - i, nil +} + +func (m *EvaluateRulesRequest_RunId) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EvaluateRulesRequest_RunId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x1a + return len(dAtA) - i, nil +} +func (m *EvaluateRulesRequest_TimeRange) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EvaluateRulesRequest_TimeRange) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.TimeRange != nil { + size, err := m.TimeRange.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x3a - } - if m.IsEnabled { - i-- - if m.IsEnabled { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) - i-- dAtA[i] = 0x22 } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x1a - } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } - -func (m *RuleCondition) MarshalVTStrict() (dAtA []byte, err error) { +func (m *EvaluatedAnnotationOptions) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *RuleCondition) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *EvaluatedAnnotationOptions) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleCondition) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *EvaluatedAnnotationOptions) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8770,105 +9226,37 @@ func (m *RuleCondition) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleConditionVersionId) > 0 { - i -= len(m.RuleConditionVersionId) - copy(dAtA[i:], m.RuleConditionVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleConditionVersionId))) - i-- - dAtA[i] = 0x52 - } - if len(m.Actions) > 0 { - for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Actions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.TagIds) > 0 { + for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.TagIds[iNdEx]) + copy(dAtA[i:], m.TagIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) i-- - dAtA[i] = 0x4a - } - } - if len(m.ModifiedByUserId) > 0 { - i -= len(m.ModifiedByUserId) - copy(dAtA[i:], m.ModifiedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) - i-- - dAtA[i] = 0x42 - } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) - i-- - dAtA[i] = 0x3a - } - if m.ModifiedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 - } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x2a - } - if m.Expression != nil { - size, err := m.Expression.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + dAtA[i] = 0xa } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleConditionId) > 0 { - i -= len(m.RuleConditionId) - copy(dAtA[i:], m.RuleConditionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleConditionId))) - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RuleAction) MarshalVTStrict() (dAtA []byte, err error) { +func (m *TimeRangeQuery) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *RuleAction) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *TimeRangeQuery) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleAction) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *TimeRangeQuery) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8880,98 +9268,48 @@ func (m *RuleAction) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleActionVersionId) > 0 { - i -= len(m.RuleActionVersionId) - copy(dAtA[i:], m.RuleActionVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleActionVersionId))) - i-- - dAtA[i] = 0x4a - } - if len(m.ModifiedByUserId) > 0 { - i -= len(m.ModifiedByUserId) - copy(dAtA[i:], m.ModifiedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) - i-- - dAtA[i] = 0x42 - } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) - i-- - dAtA[i] = 0x3a - } - if m.ModifiedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 - } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if m.EndTime != nil { + size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x12 } - if m.Configuration != nil { - size, err := m.Configuration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if m.StartTime != nil { + size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x22 - } - if m.ActionType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ActionType)) - i-- - dAtA[i] = 0x18 - } - if len(m.RuleConditionId) > 0 { - i -= len(m.RuleConditionId) - copy(dAtA[i:], m.RuleConditionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleConditionId))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleActionId) > 0 { - i -= len(m.RuleActionId) - copy(dAtA[i:], m.RuleActionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleActionId))) - i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RuleAssetConfiguration) MarshalVTStrict() (dAtA []byte, err error) { +func (m *EvaluateRulesResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *RuleAssetConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *EvaluateRulesResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *RuleAssetConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *EvaluateRulesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -8983,91 +9321,59 @@ func (m *RuleAssetConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.TagIds) > 0 { - for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.TagIds[iNdEx]) - copy(dAtA[i:], m.TagIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - if len(m.AssetIds) > 0 { - for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AssetIds[iNdEx]) - copy(dAtA[i:], m.AssetIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *ContextualChannels) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ContextualChannels) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *ContextualChannels) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil + if m.ReportId != nil { + i -= len(*m.ReportId) + copy(dAtA[i:], *m.ReportId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ReportId))) + i-- + dAtA[i] = 0x22 } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if m.JobId != nil { + i -= len(*m.JobId) + copy(dAtA[i:], *m.JobId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.JobId))) + i-- + dAtA[i] = 0x1a } - if len(m.Channels) > 0 { - for iNdEx := len(m.Channels) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Channels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if len(m.DryRunAnnotations) > 0 { + for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.DryRunAnnotations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 } } + if m.CreatedAnnotationCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CreatedAnnotationCount)) + i-- + dAtA[i] = 0x8 + } return len(dAtA) - i, nil } -func (m *AssetExpressionValidationResult) MarshalVTStrict() (dAtA []byte, err error) { +func (m *DryRunAnnotation) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *AssetExpressionValidationResult) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *DryRunAnnotation) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *AssetExpressionValidationResult) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *DryRunAnnotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9079,38 +9385,51 @@ func (m *AssetExpressionValidationResult) MarshalToSizedBufferVTStrict(dAtA []by i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Error != nil { - i -= len(*m.Error) - copy(dAtA[i:], *m.Error) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Error))) + if len(m.ConditionVersionId) > 0 { + i -= len(m.ConditionVersionId) + copy(dAtA[i:], m.ConditionVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionVersionId))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x2a } - if len(m.AssetTagId) > 0 { - i -= len(m.AssetTagId) - copy(dAtA[i:], m.AssetTagId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetTagId))) + if m.EndTime != nil { + size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.StartTime != nil { + size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x1a } - if len(m.AssetName) > 0 { - i -= len(m.AssetName) - copy(dAtA[i:], m.AssetName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetName))) + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) i-- dAtA[i] = 0x12 } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + if len(m.ConditionId) > 0 { + i -= len(m.ConditionId) + copy(dAtA[i:], m.ConditionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *SearchRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *Rule) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9123,12 +9442,12 @@ func (m *SearchRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *SearchRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *Rule) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *SearchRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *Rule) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9140,177 +9459,232 @@ func (m *SearchRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.AssetTags != nil { - if vtmsg, ok := interface{}(m.AssetTags).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.AssetTags) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x5a - } - if m.IncludeDeleted { + if m.IsArchived { i-- - if m.IncludeDeleted { + if m.IsArchived { dAtA[i] = 1 } else { dAtA[i] = 0 } i-- - dAtA[i] = 0x50 + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 } - if len(m.AssetIds) > 0 { - for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AssetIds[iNdEx]) - copy(dAtA[i:], m.AssetIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) - i-- - dAtA[i] = 0x4a + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 } - if len(m.RuleIds) > 0 { - for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleIds[iNdEx]) - copy(dAtA[i:], m.RuleIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } i-- - dAtA[i] = 0x42 + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a } } - if m.OrderBy != nil { - i -= len(*m.OrderBy) - copy(dAtA[i:], *m.OrderBy) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.OrderBy))) - i-- - dAtA[i] = 0x3a - } - if m.Regexp { + if m.IsExternal { i-- - if m.Regexp { + if m.IsExternal { dAtA[i] = 1 } else { dAtA[i] = 0 } i-- - dAtA[i] = 0x30 - } - if m.CaseSensitive { + dAtA[i] = 0x1 i-- - if m.CaseSensitive { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + dAtA[i] = 0x90 + } + if m.DeletedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x28 - } - if len(m.NameMatches) > 0 { - i -= len(m.NameMatches) - copy(dAtA[i:], m.NameMatches) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NameMatches))) + dAtA[i] = 0x1 i-- - dAtA[i] = 0x22 + dAtA[i] = 0x8a } - if m.Order != nil { - i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Order)) + if m.ContextualChannels != nil { + size, err := m.ContextualChannels.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x18 - } - if m.Offset != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Offset)) + dAtA[i] = 0x1 i-- - dAtA[i] = 0x10 + dAtA[i] = 0x82 } - if m.Limit != nil { - i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Limit)) + if m.AssetConfiguration != nil { + size, err := m.AssetConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *SearchRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err + dAtA[i] = 0x7a } - return dAtA[:n], nil -} - -func (m *SearchRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *SearchRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x72 } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if m.RuleVersion != nil { + size, err := m.RuleVersion.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x6a } - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Conditions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x62 } } - if m.Count != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Count)) + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *GetRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil + dAtA[i] = 0x5a } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x52 } - return dAtA[:n], nil + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x4a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.IsEnabled { + i-- + if m.IsEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *GetRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RuleCondition) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RuleCondition) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *RuleCondition) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9322,24 +9696,87 @@ func (m *GetRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ClientKey) > 0 { - i -= len(m.ClientKey) - copy(dAtA[i:], m.ClientKey) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + if len(m.RuleConditionVersionId) > 0 { + i -= len(m.RuleConditionVersionId) + copy(dAtA[i:], m.RuleConditionVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleConditionVersionId))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x52 + } + if len(m.Actions) > 0 { + for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Actions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x42 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x3a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.Expression != nil { + size, err := m.Expression.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a } if len(m.RuleId) > 0 { i -= len(m.RuleId) copy(dAtA[i:], m.RuleId) i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- + dAtA[i] = 0x12 + } + if len(m.RuleConditionId) > 0 { + i -= len(m.RuleConditionId) + copy(dAtA[i:], m.RuleConditionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleConditionId))) + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *GetRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *RuleAction) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9352,12 +9789,12 @@ func (m *GetRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RuleAction) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *RuleAction) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9369,20 +9806,80 @@ func (m *GetRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Rule != nil { - size, err := m.Rule.MarshalToSizedBufferVTStrict(dAtA[:i]) + if len(m.RuleActionVersionId) > 0 { + i -= len(m.RuleActionVersionId) + copy(dAtA[i:], m.RuleActionVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleActionVersionId))) + i-- + dAtA[i] = 0x4a + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x42 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x3a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.Configuration != nil { + size, err := m.Configuration.MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- + dAtA[i] = 0x22 + } + if m.ActionType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ActionType)) + i-- + dAtA[i] = 0x18 + } + if len(m.RuleConditionId) > 0 { + i -= len(m.RuleConditionId) + copy(dAtA[i:], m.RuleConditionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleConditionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleActionId) > 0 { + i -= len(m.RuleActionId) + copy(dAtA[i:], m.RuleActionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleActionId))) + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BatchGetRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *RuleAssetConfiguration) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9395,12 +9892,12 @@ func (m *BatchGetRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchGetRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RuleAssetConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchGetRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *RuleAssetConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9412,20 +9909,20 @@ func (m *BatchGetRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ClientKeys) > 0 { - for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ClientKeys[iNdEx]) - copy(dAtA[i:], m.ClientKeys[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + if len(m.TagIds) > 0 { + for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.TagIds[iNdEx]) + copy(dAtA[i:], m.TagIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) i-- dAtA[i] = 0x12 } } - if len(m.RuleIds) > 0 { - for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleIds[iNdEx]) - copy(dAtA[i:], m.RuleIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + if len(m.AssetIds) > 0 { + for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetIds[iNdEx]) + copy(dAtA[i:], m.AssetIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) i-- dAtA[i] = 0xa } @@ -9433,7 +9930,7 @@ func (m *BatchGetRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *BatchGetRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ContextualChannels) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9446,12 +9943,12 @@ func (m *BatchGetRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchGetRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ContextualChannels) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchGetRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ContextualChannels) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9463,9 +9960,9 @@ func (m *BatchGetRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if len(m.Channels) > 0 { + for iNdEx := len(m.Channels) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Channels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } @@ -9478,7 +9975,7 @@ func (m *BatchGetRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *CreateRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *AssetExpressionValidationResult) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9491,12 +9988,12 @@ func (m *CreateRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CreateRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *AssetExpressionValidationResult) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *CreateRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *AssetExpressionValidationResult) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9508,60 +10005,38 @@ func (m *CreateRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Update != nil { - size, err := m.Update.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if m.Error != nil { + i -= len(*m.Error) + copy(dAtA[i:], *m.Error) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Error))) i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *CreateRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err + dAtA[i] = 0x22 } - return dAtA[:n], nil -} - -func (m *CreateRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *CreateRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil + if len(m.AssetTagId) > 0 { + i -= len(m.AssetTagId) + copy(dAtA[i:], m.AssetTagId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetTagId))) + i-- + dAtA[i] = 0x1a } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if len(m.AssetName) > 0 { + i -= len(m.AssetName) + copy(dAtA[i:], m.AssetName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetName))) + i-- + dAtA[i] = 0x12 } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *UpdateRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *SearchRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9574,12 +10049,12 @@ func (m *UpdateRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *SearchRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *SearchRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9591,96 +10066,76 @@ func (m *UpdateRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Metadata) > 0 { - for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Metadata[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + if m.AssetTags != nil { + if vtmsg, ok := interface{}(m.AssetTags).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x6a + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.AssetTags) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } + i-- + dAtA[i] = 0x5a } - if m.IsExternal { + if m.IncludeDeleted { i-- - if m.IsExternal { + if m.IncludeDeleted { dAtA[i] = 1 } else { dAtA[i] = 0 } i-- - dAtA[i] = 0x60 + dAtA[i] = 0x50 } - if m.ContextualChannels != nil { - size, err := m.ContextualChannels.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if len(m.AssetIds) > 0 { + for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetIds[iNdEx]) + copy(dAtA[i:], m.AssetIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) + i-- + dAtA[i] = 0x4a } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x5a } - if m.AssetConfiguration != nil { - size, err := m.AssetConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0x42 } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x52 } - if m.ClientKey != nil { - i -= len(*m.ClientKey) - copy(dAtA[i:], *m.ClientKey) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ClientKey))) - i-- - dAtA[i] = 0x4a - } - if len(m.VersionNotes) > 0 { - i -= len(m.VersionNotes) - copy(dAtA[i:], m.VersionNotes) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionNotes))) - i-- - dAtA[i] = 0x42 - } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + if m.OrderBy != nil { + i -= len(*m.OrderBy) + copy(dAtA[i:], *m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.OrderBy))) i-- dAtA[i] = 0x3a } - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Conditions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 + if m.Regexp { + i-- + if m.Regexp { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x30 } - if m.IsEnabled { + if m.CaseSensitive { i-- - if m.IsEnabled { + if m.CaseSensitive { dAtA[i] = 1 } else { dAtA[i] = 0 @@ -9688,38 +10143,32 @@ func (m *UpdateRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i-- dAtA[i] = 0x28 } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + if len(m.NameMatches) > 0 { + i -= len(m.NameMatches) + copy(dAtA[i:], m.NameMatches) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NameMatches))) i-- dAtA[i] = 0x22 } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + if m.Order != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Order)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x18 } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + if m.Offset != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Offset)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if m.RuleId != nil { - i -= len(*m.RuleId) - copy(dAtA[i:], *m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleId))) + if m.Limit != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.Limit)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *UpdateConditionRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *SearchRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9732,12 +10181,12 @@ func (m *UpdateConditionRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateConditionRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *SearchRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateConditionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *SearchRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9749,39 +10198,27 @@ func (m *UpdateConditionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Actions) > 0 { - for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Actions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if len(m.Rules) > 0 { + for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x12 } } - if m.Expression != nil { - size, err := m.Expression.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - if m.RuleConditionId != nil { - i -= len(*m.RuleConditionId) - copy(dAtA[i:], *m.RuleConditionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleConditionId))) + if m.Count != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Count)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *UpdateActionRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *GetRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9794,12 +10231,12 @@ func (m *UpdateActionRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateActionRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateActionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9811,32 +10248,24 @@ func (m *UpdateActionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, er i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Configuration != nil { - size, err := m.Configuration.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - if m.ActionType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ActionType)) + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } - if m.RuleActionId != nil { - i -= len(*m.RuleActionId) - copy(dAtA[i:], *m.RuleActionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleActionId))) + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *UpdateRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *GetRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9849,12 +10278,12 @@ func (m *UpdateRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9866,17 +10295,20 @@ func (m *UpdateRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + if m.Rule != nil { + size, err := m.Rule.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ValidationResult) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchGetRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9889,12 +10321,12 @@ func (m *ValidationResult) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ValidationResult) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchGetRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ValidationResult) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchGetRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9906,43 +10338,28 @@ func (m *ValidationResult) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Error != nil { - i -= len(*m.Error) - copy(dAtA[i:], *m.Error) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Error))) - i-- - dAtA[i] = 0x22 - } - if len(m.AssetExpressionValidationResults) > 0 { - for iNdEx := len(m.AssetExpressionValidationResults) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.AssetExpressionValidationResults[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x12 } } - if len(m.ClientKey) > 0 { - i -= len(m.ClientKey) - copy(dAtA[i:], m.ClientKey) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) - i-- - dAtA[i] = 0xa + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *BatchUpdateRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchGetRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -9955,12 +10372,12 @@ func (m *BatchUpdateRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchUpdateRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchGetRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchUpdateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchGetRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -9972,26 +10389,6 @@ func (m *BatchUpdateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.OverrideExpressionValidation { - i-- - if m.OverrideExpressionValidation { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - } - if m.ValidateOnly { - i-- - if m.ValidateOnly { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - } if len(m.Rules) > 0 { for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) @@ -10007,7 +10404,7 @@ func (m *BatchUpdateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int return len(dAtA) - i, nil } -func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalVTStrict() (dAtA []byte, err error) { +func (m *CreateRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10020,12 +10417,12 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalVTStrict() (dAtA []byt return dAtA[:n], nil } -func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *CreateRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *CreateRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10037,31 +10434,20 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalToSizedBufferVTStrict( i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ClientKey != nil { - i -= len(*m.ClientKey) - copy(dAtA[i:], *m.ClientKey) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ClientKey))) - i-- - dAtA[i] = 0x1a - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + if m.Update != nil { + size, err := m.Update.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BatchUpdateRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *CreateRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10074,12 +10460,12 @@ func (m *BatchUpdateRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchUpdateRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *CreateRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchUpdateRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *CreateRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10091,64 +10477,17 @@ func (m *BatchUpdateRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.CreatedRuleIdentifiers) > 0 { - for iNdEx := len(m.CreatedRuleIdentifiers) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.CreatedRuleIdentifiers[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 - } - } - if len(m.ValidationResults) > 0 { - for iNdEx := len(m.ValidationResults) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.ValidationResults[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x2a - } - } - if m.ValidateOnly { - i-- - if m.ValidateOnly { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - } - if m.RulesUpdatedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesUpdatedCount)) - i-- - dAtA[i] = 0x18 - } - if m.RulesCreatedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCreatedCount)) - i-- - dAtA[i] = 0x10 - } - if m.Success { - i-- - if m.Success { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *DeleteRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10161,12 +10500,12 @@ func (m *DeleteRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DeleteRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *DeleteRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10178,25 +10517,146 @@ func (m *DeleteRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ClientKey) > 0 { - i -= len(m.ClientKey) - copy(dAtA[i:], m.ClientKey) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + if m.IsArchived { i-- - dAtA[i] = 0x12 - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } i-- - dAtA[i] = 0xa + dAtA[i] = 0x70 } - return len(dAtA) - i, nil -} - -func (m *DeleteRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x6a + } + } + if m.IsExternal { + i-- + if m.IsExternal { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + } + if m.ContextualChannels != nil { + size, err := m.ContextualChannels.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + if m.AssetConfiguration != nil { + size, err := m.AssetConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + if m.ClientKey != nil { + i -= len(*m.ClientKey) + copy(dAtA[i:], *m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ClientKey))) + i-- + dAtA[i] = 0x4a + } + if len(m.VersionNotes) > 0 { + i -= len(m.VersionNotes) + copy(dAtA[i:], m.VersionNotes) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionNotes))) + i-- + dAtA[i] = 0x42 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x3a + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Conditions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + } + if m.IsEnabled { + i-- + if m.IsEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0x22 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if m.RuleId != nil { + i -= len(*m.RuleId) + copy(dAtA[i:], *m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateConditionRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { return nil, nil } size := m.SizeVT() @@ -10208,12 +10668,12 @@ func (m *DeleteRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DeleteRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateConditionRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *DeleteRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateConditionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10225,10 +10685,39 @@ func (m *DeleteRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Actions) > 0 { + for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Actions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if m.Expression != nil { + size, err := m.Expression.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.RuleConditionId != nil { + i -= len(*m.RuleConditionId) + copy(dAtA[i:], *m.RuleConditionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleConditionId))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *BatchDeleteRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateActionRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10241,12 +10730,12 @@ func (m *BatchDeleteRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchDeleteRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateActionRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchDeleteRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateActionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10258,28 +10747,32 @@ func (m *BatchDeleteRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ClientKeys) > 0 { - for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ClientKeys[iNdEx]) - copy(dAtA[i:], m.ClientKeys[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) - i-- - dAtA[i] = 0x12 + if m.Configuration != nil { + size, err := m.Configuration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a } - if len(m.RuleIds) > 0 { - for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleIds[iNdEx]) - copy(dAtA[i:], m.RuleIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if m.ActionType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ActionType)) + i-- + dAtA[i] = 0x10 + } + if m.RuleActionId != nil { + i -= len(*m.RuleActionId) + copy(dAtA[i:], *m.RuleActionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.RuleActionId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BatchDeleteRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10292,12 +10785,12 @@ func (m *BatchDeleteRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BatchDeleteRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchDeleteRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10309,10 +10802,17 @@ func (m *BatchDeleteRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *UndeleteRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ValidationResult) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10325,12 +10825,12 @@ func (m *UndeleteRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UndeleteRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ValidationResult) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UndeleteRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ValidationResult) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10342,6 +10842,25 @@ func (m *UndeleteRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, er i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.Error != nil { + i -= len(*m.Error) + copy(dAtA[i:], *m.Error) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Error))) + i-- + dAtA[i] = 0x22 + } + if len(m.AssetExpressionValidationResults) > 0 { + for iNdEx := len(m.AssetExpressionValidationResults) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.AssetExpressionValidationResults[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } if len(m.ClientKey) > 0 { i -= len(m.ClientKey) copy(dAtA[i:], m.ClientKey) @@ -10359,7 +10878,7 @@ func (m *UndeleteRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, er return len(dAtA) - i, nil } -func (m *UndeleteRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchUpdateRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10372,12 +10891,12 @@ func (m *UndeleteRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UndeleteRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUpdateRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UndeleteRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUpdateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10389,53 +10908,34 @@ func (m *UndeleteRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - return len(dAtA) - i, nil -} - -func (m *BatchUndeleteRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BatchUndeleteRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *BatchUndeleteRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if m.OverrideExpressionValidation { + i-- + if m.OverrideExpressionValidation { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 } - if len(m.ClientKeys) > 0 { - for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ClientKeys[iNdEx]) - copy(dAtA[i:], m.ClientKeys[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) - i-- - dAtA[i] = 0x12 + if m.ValidateOnly { + i-- + if m.ValidateOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x10 } - if len(m.RuleIds) > 0 { - for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleIds[iNdEx]) - copy(dAtA[i:], m.RuleIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + if len(m.Rules) > 0 { + for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } @@ -10443,7 +10943,7 @@ func (m *BatchUndeleteRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (i return len(dAtA) - i, nil } -func (m *BatchUndeleteRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10456,12 +10956,12 @@ func (m *BatchUndeleteRulesResponse) MarshalVTStrict() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *BatchUndeleteRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchUndeleteRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUpdateRulesResponse_RuleIdentifiers) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10473,10 +10973,31 @@ func (m *BatchUndeleteRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) ( i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.ClientKey != nil { + i -= len(*m.ClientKey) + copy(dAtA[i:], *m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ClientKey))) + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *ViewHumanFriendlyRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchUpdateRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10489,12 +11010,12 @@ func (m *ViewHumanFriendlyRulesRequest) MarshalVTStrict() (dAtA []byte, err erro return dAtA[:n], nil } -func (m *ViewHumanFriendlyRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUpdateRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ViewHumanFriendlyRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUpdateRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10506,17 +11027,64 @@ func (m *ViewHumanFriendlyRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + if len(m.CreatedRuleIdentifiers) > 0 { + for iNdEx := len(m.CreatedRuleIdentifiers) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.CreatedRuleIdentifiers[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + } + if len(m.ValidationResults) > 0 { + for iNdEx := len(m.ValidationResults) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ValidationResults[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + } + if m.ValidateOnly { i-- - dAtA[i] = 0xa + if m.ValidateOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.RulesUpdatedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesUpdatedCount)) + i-- + dAtA[i] = 0x18 + } + if m.RulesCreatedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCreatedCount)) + i-- + dAtA[i] = 0x10 + } + if m.Success { + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ViewHumanFriendlyRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *DeleteRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10529,12 +11097,12 @@ func (m *ViewHumanFriendlyRulesResponse) MarshalVTStrict() (dAtA []byte, err err return dAtA[:n], nil } -func (m *ViewHumanFriendlyRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *DeleteRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ViewHumanFriendlyRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *DeleteRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10546,17 +11114,24 @@ func (m *ViewHumanFriendlyRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byt i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *UpdateHumanFriendlyRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *DeleteRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10569,12 +11144,12 @@ func (m *UpdateHumanFriendlyRulesRequest) MarshalVTStrict() (dAtA []byte, err er return dAtA[:n], nil } -func (m *UpdateHumanFriendlyRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *DeleteRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateHumanFriendlyRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *DeleteRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10586,31 +11161,10 @@ func (m *UpdateHumanFriendlyRulesRequest) MarshalToSizedBufferVTStrict(dAtA []by i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) - i-- - dAtA[i] = 0x1a - } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) - i-- - dAtA[i] = 0x12 - } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *UpdateHumanFriendlyRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchDeleteRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10623,12 +11177,12 @@ func (m *UpdateHumanFriendlyRulesResponse) MarshalVTStrict() (dAtA []byte, err e return dAtA[:n], nil } -func (m *UpdateHumanFriendlyRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchDeleteRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateHumanFriendlyRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchDeleteRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10640,32 +11194,28 @@ func (m *UpdateHumanFriendlyRulesResponse) MarshalToSizedBufferVTStrict(dAtA []b i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Messages) > 0 { - i -= len(m.Messages) - copy(dAtA[i:], m.Messages) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Messages))) - i-- - dAtA[i] = 0x1a - } - if m.RulesCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCount)) - i-- - dAtA[i] = 0x10 + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } - if m.Success { - i-- - if m.Success { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ViewJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchDeleteRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10678,12 +11228,12 @@ func (m *ViewJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ViewJsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchDeleteRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ViewJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchDeleteRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10695,17 +11245,10 @@ func (m *ViewJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *ViewJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ArchiveRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10718,12 +11261,12 @@ func (m *ViewJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ViewJsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ArchiveRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ViewJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ArchiveRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10735,17 +11278,24 @@ func (m *ViewJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *JsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ArchiveRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10758,12 +11308,12 @@ func (m *JsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *JsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ArchiveRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *JsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ArchiveRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10775,31 +11325,10 @@ func (m *JsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrganizationId) > 0 { - i -= len(m.OrganizationId) - copy(dAtA[i:], m.OrganizationId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) - i-- - dAtA[i] = 0x1a - } - if len(m.RulesJson) > 0 { - i -= len(m.RulesJson) - copy(dAtA[i:], m.RulesJson) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) - i-- - dAtA[i] = 0x12 - } - if len(m.AssetId) > 0 { - i -= len(m.AssetId) - copy(dAtA[i:], m.AssetId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *JsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchArchiveRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10812,12 +11341,12 @@ func (m *JsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *JsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *JsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10829,47 +11358,28 @@ func (m *JsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ErrorMessages != nil { - i -= len(*m.ErrorMessages) - copy(dAtA[i:], *m.ErrorMessages) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorMessages))) - i-- - dAtA[i] = 0x32 - } - if m.RulesDeletedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesDeletedCount)) - i-- - dAtA[i] = 0x28 - } - if m.RulesUpdatedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesUpdatedCount)) - i-- - dAtA[i] = 0x20 - } - if m.RulesCreatedCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCreatedCount)) - i-- - dAtA[i] = 0x18 - } - if m.TotalRulesCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TotalRulesCount)) - i-- - dAtA[i] = 0x10 + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } - if m.Success { - i-- - if m.Success { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ValidateJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchArchiveRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10882,12 +11392,12 @@ func (m *ValidateJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ValidateJsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ValidateJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchArchiveRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10899,20 +11409,10 @@ func (m *ValidateJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Request != nil { - size, err := m.Request.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *ValidateJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UndeleteRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10925,12 +11425,12 @@ func (m *ValidateJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ValidateJsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UndeleteRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ValidateJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UndeleteRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10942,20 +11442,24 @@ func (m *ValidateJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (i i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Response != nil { - size, err := m.Response.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *UpdateJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UndeleteRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -10968,12 +11472,12 @@ func (m *UpdateJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateJsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UndeleteRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UndeleteRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -10985,20 +11489,10 @@ func (m *UpdateJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Request != nil { - size, err := m.Request.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *UpdateJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchUndeleteRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11011,12 +11505,12 @@ func (m *UpdateJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateJsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *UpdateJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11028,20 +11522,28 @@ func (m *UpdateJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Response != nil { - size, err := m.Response.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ListRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchUndeleteRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11054,12 +11556,12 @@ func (m *ListRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ListRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUndeleteRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11071,36 +11573,10 @@ func (m *ListRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OrderBy) > 0 { - i -= len(m.OrderBy) - copy(dAtA[i:], m.OrderBy) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) - i-- - dAtA[i] = 0x22 - } - if len(m.Filter) > 0 { - i -= len(m.Filter) - copy(dAtA[i:], m.Filter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) - i-- - dAtA[i] = 0x1a - } - if len(m.PageToken) > 0 { - i -= len(m.PageToken) - copy(dAtA[i:], m.PageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) - i-- - dAtA[i] = 0x12 - } - if m.PageSize != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *ListRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UnarchiveRuleRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11113,12 +11589,12 @@ func (m *ListRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UnarchiveRuleRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ListRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UnarchiveRuleRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11130,29 +11606,24 @@ func (m *ListRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.NextPageToken) > 0 { - i -= len(m.NextPageToken) - copy(dAtA[i:], m.NextPageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) i-- dAtA[i] = 0x12 } - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ListRuleVersionsRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UnarchiveRuleResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11165,12 +11636,12 @@ func (m *ListRuleVersionsRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRuleVersionsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UnarchiveRuleResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ListRuleVersionsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UnarchiveRuleResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11182,38 +11653,12 @@ func (m *ListRuleVersionsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Filter) > 0 { - i -= len(m.Filter) - copy(dAtA[i:], m.Filter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) - i-- - dAtA[i] = 0x22 - } - if len(m.PageToken) > 0 { - i -= len(m.PageToken) - copy(dAtA[i:], m.PageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) - i-- - dAtA[i] = 0x1a - } - if m.PageSize != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) - i-- - dAtA[i] = 0x10 - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RuleVersion) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil + return len(dAtA) - i, nil +} + +func (m *BatchUnarchiveRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } size := m.SizeVT() dAtA = make([]byte, size) @@ -11224,12 +11669,12 @@ func (m *RuleVersion) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RuleVersion) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *RuleVersion) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11241,72 +11686,28 @@ func (m *RuleVersion) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.DeletedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x42 - } - if len(m.GeneratedChangeMessage) > 0 { - i -= len(m.GeneratedChangeMessage) - copy(dAtA[i:], m.GeneratedChangeMessage) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GeneratedChangeMessage))) - i-- - dAtA[i] = 0x3a - } - if len(m.VersionNotes) > 0 { - i -= len(m.VersionNotes) - copy(dAtA[i:], m.VersionNotes) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionNotes))) - i-- - dAtA[i] = 0x32 - } - if len(m.CreatedByUserId) > 0 { - i -= len(m.CreatedByUserId) - copy(dAtA[i:], m.CreatedByUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) - i-- - dAtA[i] = 0x2a } - if m.CreatedDate != nil { - size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x22 - } - if len(m.Version) > 0 { - i -= len(m.Version) - copy(dAtA[i:], m.Version) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Version))) - i-- - dAtA[i] = 0x1a - } - if len(m.RuleVersionId) > 0 { - i -= len(m.RuleVersionId) - copy(dAtA[i:], m.RuleVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleId) > 0 { - i -= len(m.RuleId) - copy(dAtA[i:], m.RuleId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ListRuleVersionsResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchUnarchiveRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11319,12 +11720,12 @@ func (m *ListRuleVersionsResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ListRuleVersionsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ListRuleVersionsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchUnarchiveRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11336,29 +11737,10 @@ func (m *ListRuleVersionsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.NextPageToken) > 0 { - i -= len(m.NextPageToken) - copy(dAtA[i:], m.NextPageToken) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) - i-- - dAtA[i] = 0x12 - } - if len(m.RuleVersions) > 0 { - for iNdEx := len(m.RuleVersions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.RuleVersions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } - } return len(dAtA) - i, nil } -func (m *GetRuleVersionRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ViewHumanFriendlyRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11371,12 +11753,12 @@ func (m *GetRuleVersionRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetRuleVersionRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetRuleVersionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11388,17 +11770,17 @@ func (m *GetRuleVersionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleVersionId) > 0 { - i -= len(m.RuleVersionId) - copy(dAtA[i:], m.RuleVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *GetRuleVersionResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ViewHumanFriendlyRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11411,12 +11793,12 @@ func (m *GetRuleVersionResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetRuleVersionResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetRuleVersionResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ViewHumanFriendlyRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11428,20 +11810,17 @@ func (m *GetRuleVersionResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Rule != nil { - size, err := m.Rule.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BatchGetRuleVersionsRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateHumanFriendlyRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11454,12 +11833,12 @@ func (m *BatchGetRuleVersionsRequest) MarshalVTStrict() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *BatchGetRuleVersionsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchGetRuleVersionsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11471,19 +11850,31 @@ func (m *BatchGetRuleVersionsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.RuleVersionIds) > 0 { - for iNdEx := len(m.RuleVersionIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleVersionIds[iNdEx]) - copy(dAtA[i:], m.RuleVersionIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x1a + } + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) + i-- + dAtA[i] = 0x12 + } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BatchGetRuleVersionsResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateHumanFriendlyRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11496,12 +11887,12 @@ func (m *BatchGetRuleVersionsResponse) MarshalVTStrict() (dAtA []byte, err error return dAtA[:n], nil } -func (m *BatchGetRuleVersionsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchGetRuleVersionsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateHumanFriendlyRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11513,22 +11904,32 @@ func (m *BatchGetRuleVersionsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa + if len(m.Messages) > 0 { + i -= len(m.Messages) + copy(dAtA[i:], m.Messages) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Messages))) + i-- + dAtA[i] = 0x1a + } + if m.RulesCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCount)) + i-- + dAtA[i] = 0x10 + } + if m.Success { + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *RuleConditionExpression) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ViewJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11541,12 +11942,12 @@ func (m *RuleConditionExpression) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RuleConditionExpression) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ViewJsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *RuleConditionExpression) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ViewJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11558,62 +11959,111 @@ func (m *RuleConditionExpression) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if msg, ok := m.Expression.(*RuleConditionExpression_CalculatedChannel); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - } - if msg, ok := m.Expression.(*RuleConditionExpression_SingleChannelComparison); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RuleConditionExpression_SingleChannelComparison) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ViewJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ViewJsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *RuleConditionExpression_SingleChannelComparison) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - i := len(dAtA) - if m.SingleChannelComparison != nil { - size, err := m.SingleChannelComparison.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) +func (m *ViewJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RuleConditionExpression_CalculatedChannel) MarshalToVTStrict(dAtA []byte) (int, error) { + +func (m *JsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *JsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *RuleConditionExpression_CalculatedChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *JsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.CalculatedChannel != nil { - size, err := m.CalculatedChannel.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x1a + } + if len(m.RulesJson) > 0 { + i -= len(m.RulesJson) + copy(dAtA[i:], m.RulesJson) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RulesJson))) i-- dAtA[i] = 0x12 } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *SingleChannelComparisonExpression) MarshalVTStrict() (dAtA []byte, err error) { + +func (m *JsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11626,12 +12076,12 @@ func (m *SingleChannelComparisonExpression) MarshalVTStrict() (dAtA []byte, err return dAtA[:n], nil } -func (m *SingleChannelComparisonExpression) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *JsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *SingleChannelComparisonExpression) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *JsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11643,96 +12093,133 @@ func (m *SingleChannelComparisonExpression) MarshalToSizedBufferVTStrict(dAtA [] i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if msg, ok := m.Threshold.(*SingleChannelComparisonExpression_LastValue); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size + if m.ErrorMessages != nil { + i -= len(*m.ErrorMessages) + copy(dAtA[i:], *m.ErrorMessages) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorMessages))) + i-- + dAtA[i] = 0x32 } - if msg, ok := m.Threshold.(*SingleChannelComparisonExpression_String_); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size + if m.RulesDeletedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesDeletedCount)) + i-- + dAtA[i] = 0x28 } - if msg, ok := m.Threshold.(*SingleChannelComparisonExpression_Double); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size + if m.RulesUpdatedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesUpdatedCount)) + i-- + dAtA[i] = 0x20 } - if m.Comparator != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Comparator)) + if m.RulesCreatedCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RulesCreatedCount)) i-- dAtA[i] = 0x18 } - if len(m.ChannelName) > 0 { - i -= len(m.ChannelName) - copy(dAtA[i:], m.ChannelName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelName))) + if m.TotalRulesCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TotalRulesCount)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if len(m.ChannelComponent) > 0 { - i -= len(m.ChannelComponent) - copy(dAtA[i:], m.ChannelComponent) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelComponent))) + if m.Success { i-- - dAtA[i] = 0xa + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *SingleChannelComparisonExpression_Double) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ValidateJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil } -func (m *SingleChannelComparisonExpression_Double) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - i := len(dAtA) - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Double)))) - i-- - dAtA[i] = 0x21 - return len(dAtA) - i, nil -} -func (m *SingleChannelComparisonExpression_String_) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ValidateJsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *SingleChannelComparisonExpression_String_) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ValidateJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - i -= len(m.String_) - copy(dAtA[i:], m.String_) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.String_))) - i-- - dAtA[i] = 0x2a + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Request != nil { + size, err := m.Request.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *SingleChannelComparisonExpression_LastValue) MarshalToVTStrict(dAtA []byte) (int, error) { + +func (m *ValidateJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateJsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *SingleChannelComparisonExpression_LastValue) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ValidateJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.LastValue != nil { - size, err := m.LastValue.MarshalToSizedBufferVTStrict(dAtA[:i]) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Response != nil { + size, err := m.Response.MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x32 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *LastValueThreshold) MarshalVTStrict() (dAtA []byte, err error) { + +func (m *UpdateJsonRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11745,12 +12232,12 @@ func (m *LastValueThreshold) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *LastValueThreshold) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *LastValueThreshold) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11762,10 +12249,20 @@ func (m *LastValueThreshold) MarshalToSizedBufferVTStrict(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.Request != nil { + size, err := m.Request.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *CalculatedChannelConfig) MarshalVTStrict() (dAtA []byte, err error) { +func (m *UpdateJsonRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11778,12 +12275,12 @@ func (m *CalculatedChannelConfig) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CalculatedChannelConfig) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *CalculatedChannelConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *UpdateJsonRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11795,63 +12292,20 @@ func (m *CalculatedChannelConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.FunctionDependencies) > 0 { - for iNdEx := len(m.FunctionDependencies) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.FunctionDependencies[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.FunctionDependencies[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x1a + if m.Response != nil { + size, err := m.Response.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } - } - if len(m.Expression) > 0 { - i -= len(m.Expression) - copy(dAtA[i:], m.Expression) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Expression))) + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x12 - } - if len(m.ChannelReferences) > 0 { - for k := range m.ChannelReferences { - v := m.ChannelReferences[k] - baseI := i - size, err := v.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - i -= len(k) - copy(dAtA[i:], k) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k))) - i-- - dAtA[i] = 0xa - i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0xa - } + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ChannelReference) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ListRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11864,12 +12318,12 @@ func (m *ChannelReference) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ChannelReference) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ListRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *ChannelReference) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ListRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11881,24 +12335,36 @@ func (m *ChannelReference) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Component) > 0 { - i -= len(m.Component) - copy(dAtA[i:], m.Component) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Component))) + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) i-- dAtA[i] = 0x12 } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *RuleActionConfiguration) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ListRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -11911,12 +12377,12 @@ func (m *RuleActionConfiguration) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RuleActionConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ListRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *RuleActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ListRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -11928,96 +12394,21 @@ func (m *RuleActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if msg, ok := m.Configuration.(*RuleActionConfiguration_Annotation); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - } - if msg, ok := m.Configuration.(*RuleActionConfiguration_Notification); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - } - return len(dAtA) - i, nil -} - -func (m *RuleActionConfiguration_Notification) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *RuleActionConfiguration_Notification) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Notification != nil { - size, err := m.Notification.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} -func (m *RuleActionConfiguration_Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *RuleActionConfiguration_Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Annotation != nil { - size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) i-- dAtA[i] = 0x12 } - return len(dAtA) - i, nil -} -func (m *NotificationActionConfiguration) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NotificationActionConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) -} - -func (m *NotificationActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if len(m.RecipientUserIds) > 0 { - for iNdEx := len(m.RecipientUserIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RecipientUserIds[iNdEx]) - copy(dAtA[i:], m.RecipientUserIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RecipientUserIds[iNdEx]))) + if len(m.Rules) > 0 { + for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } @@ -12025,7 +12416,7 @@ func (m *NotificationActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []by return len(dAtA) - i, nil } -func (m *AnnotationActionConfiguration) MarshalVTStrict() (dAtA []byte, err error) { +func (m *ListRuleVersionsRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -12038,12 +12429,12 @@ func (m *AnnotationActionConfiguration) MarshalVTStrict() (dAtA []byte, err erro return dAtA[:n], nil } -func (m *AnnotationActionConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ListRuleVersionsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *AnnotationActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ListRuleVersionsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -12055,55 +12446,36 @@ func (m *AnnotationActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Metadata) > 0 { - for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Metadata[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x22 - } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x22 } - if m.AssignedToUserId != nil { - i -= len(*m.AssignedToUserId) - copy(dAtA[i:], *m.AssignedToUserId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.AssignedToUserId))) + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) i-- dAtA[i] = 0x1a } - if m.AnnotationType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AnnotationType)) + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) i-- dAtA[i] = 0x10 } - if len(m.TagIds) > 0 { - for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.TagIds[iNdEx]) - copy(dAtA[i:], m.TagIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *EvaluateRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *RuleVersion) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -12116,12 +12488,12 @@ func (m *EvaluateRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EvaluateRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RuleVersion) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *EvaluateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *RuleVersion) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -12133,86 +12505,144 @@ func (m *EvaluateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.DryRun { + if m.IsArchived { i-- - if m.DryRun { + if m.IsArchived { dAtA[i] = 1 } else { dAtA[i] = 0 } i-- - dAtA[i] = 0x28 + dAtA[i] = 0x50 } - if msg, ok := m.Time.(*EvaluateRulesRequest_TimeRange); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a } - if msg, ok := m.Time.(*EvaluateRulesRequest_RunId); ok { - size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if m.DeletedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 } - if m.AnnotationOptions != nil { - size, err := m.AnnotationOptions.MarshalToSizedBufferVTStrict(dAtA[:i]) + if len(m.GeneratedChangeMessage) > 0 { + i -= len(m.GeneratedChangeMessage) + copy(dAtA[i:], m.GeneratedChangeMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GeneratedChangeMessage))) + i-- + dAtA[i] = 0x3a + } + if len(m.VersionNotes) > 0 { + i -= len(m.VersionNotes) + copy(dAtA[i:], m.VersionNotes) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionNotes))) + i-- + dAtA[i] = 0x32 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x2a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- + dAtA[i] = 0x22 + } + if len(m.Version) > 0 { + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x1a + } + if len(m.RuleVersionId) > 0 { + i -= len(m.RuleVersionId) + copy(dAtA[i:], m.RuleVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) + i-- dAtA[i] = 0x12 } - if len(m.RuleIds) > 0 { - for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RuleIds[iNdEx]) - copy(dAtA[i:], m.RuleIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *EvaluateRulesRequest_RunId) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ListRuleVersionsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } size := m.SizeVT() - return m.MarshalToSizedBufferVTStrict(dAtA[:size]) + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil } -func (m *EvaluateRulesRequest_RunId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - i := len(dAtA) - i -= len(m.RunId) - copy(dAtA[i:], m.RunId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) - i-- - dAtA[i] = 0x1a - return len(dAtA) - i, nil -} -func (m *EvaluateRulesRequest_TimeRange) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *ListRuleVersionsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *EvaluateRulesRequest_TimeRange) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *ListRuleVersionsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.TimeRange != nil { - size, err := m.TimeRange.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x12 + } + if len(m.RuleVersions) > 0 { + for iNdEx := len(m.RuleVersions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RuleVersions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *EvaluatedAnnotationOptions) MarshalVTStrict() (dAtA []byte, err error) { + +func (m *GetRuleVersionRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -12225,12 +12655,12 @@ func (m *EvaluatedAnnotationOptions) MarshalVTStrict() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *EvaluatedAnnotationOptions) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleVersionRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *EvaluatedAnnotationOptions) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleVersionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -12242,19 +12672,17 @@ func (m *EvaluatedAnnotationOptions) MarshalToSizedBufferVTStrict(dAtA []byte) ( i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.TagIds) > 0 { - for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.TagIds[iNdEx]) - copy(dAtA[i:], m.TagIds[iNdEx]) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(m.RuleVersionId) > 0 { + i -= len(m.RuleVersionId) + copy(dAtA[i:], m.RuleVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionId))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *TimeRangeQuery) MarshalVTStrict() (dAtA []byte, err error) { +func (m *GetRuleVersionResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -12267,12 +12695,12 @@ func (m *TimeRangeQuery) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TimeRangeQuery) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleVersionResponse) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *TimeRangeQuery) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *GetRuleVersionResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -12284,18 +12712,8 @@ func (m *TimeRangeQuery) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.EndTime != nil { - size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - if m.StartTime != nil { - size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if m.Rule != nil { + size, err := m.Rule.MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } @@ -12307,7 +12725,7 @@ func (m *TimeRangeQuery) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *EvaluateRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *BatchGetRuleVersionsRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -12320,12 +12738,12 @@ func (m *EvaluateRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EvaluateRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *BatchGetRuleVersionsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *EvaluateRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *BatchGetRuleVersionsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -12337,41 +12755,64 @@ func (m *EvaluateRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ReportId != nil { - i -= len(*m.ReportId) - copy(dAtA[i:], *m.ReportId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ReportId))) - i-- - dAtA[i] = 0x22 + if len(m.RuleVersionIds) > 0 { + for iNdEx := len(m.RuleVersionIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleVersionIds[iNdEx]) + copy(dAtA[i:], m.RuleVersionIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleVersionIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } } - if m.JobId != nil { - i -= len(*m.JobId) - copy(dAtA[i:], *m.JobId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.JobId))) - i-- - dAtA[i] = 0x1a + return len(dAtA) - i, nil +} + +func (m *BatchGetRuleVersionsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if len(m.DryRunAnnotations) > 0 { - for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.DryRunAnnotations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchGetRuleVersionsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchGetRuleVersionsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Rules) > 0 { + for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Rules[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0xa } } - if m.CreatedAnnotationCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CreatedAnnotationCount)) - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *DryRunAnnotation) MarshalVTStrict() (dAtA []byte, err error) { +func (m *RuleConditionExpression) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -12384,12 +12825,12 @@ func (m *DryRunAnnotation) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DryRunAnnotation) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RuleConditionExpression) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *DryRunAnnotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *RuleConditionExpression) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -12401,768 +12842,894 @@ func (m *DryRunAnnotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ConditionVersionId) > 0 { - i -= len(m.ConditionVersionId) - copy(dAtA[i:], m.ConditionVersionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionVersionId))) - i-- - dAtA[i] = 0x2a - } - if m.EndTime != nil { - size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if msg, ok := m.Expression.(*RuleConditionExpression_CalculatedChannel); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x22 } - if m.StartTime != nil { - size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if msg, ok := m.Expression.(*RuleConditionExpression_SingleChannelComparison); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *RuleConditionExpression_SingleChannelComparison) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RuleConditionExpression_SingleChannelComparison) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.SingleChannelComparison != nil { + size, err := m.SingleChannelComparison.MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0xa } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + return len(dAtA) - i, nil +} +func (m *RuleConditionExpression_CalculatedChannel) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RuleConditionExpression_CalculatedChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.CalculatedChannel != nil { + size, err := m.CalculatedChannel.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x12 } - if len(m.ConditionId) > 0 { - i -= len(m.ConditionId) - copy(dAtA[i:], m.ConditionId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionId))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } +func (m *SingleChannelComparisonExpression) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} -func (m *Rule) SizeVT() (n int) { +func (m *SingleChannelComparisonExpression) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SingleChannelComparisonExpression) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.AssetId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Name) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.IsEnabled { - n += 2 - } - if m.CreatedDate != nil { - l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ModifiedDate != nil { - l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.CreatedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.ModifiedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - l = len(m.OrganizationId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if msg, ok := m.Threshold.(*SingleChannelComparisonExpression_LastValue); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if msg, ok := m.Threshold.(*SingleChannelComparisonExpression_String_); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size } - if m.RuleVersion != nil { - l = m.RuleVersion.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if msg, ok := m.Threshold.(*SingleChannelComparisonExpression_Double); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - l = len(m.ClientKey) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.Comparator != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Comparator)) + i-- + dAtA[i] = 0x18 } - if m.AssetConfiguration != nil { - l = m.AssetConfiguration.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.ChannelName) > 0 { + i -= len(m.ChannelName) + copy(dAtA[i:], m.ChannelName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelName))) + i-- + dAtA[i] = 0x12 } - if m.ContextualChannels != nil { - l = m.ContextualChannels.SizeVT() - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.ChannelComponent) > 0 { + i -= len(m.ChannelComponent) + copy(dAtA[i:], m.ChannelComponent) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelComponent))) + i-- + dAtA[i] = 0xa } - if m.DeletedDate != nil { - l = (*timestamppb1.Timestamp)(m.DeletedDate).SizeVT() - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *SingleChannelComparisonExpression_Double) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SingleChannelComparisonExpression_Double) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Double)))) + i-- + dAtA[i] = 0x21 + return len(dAtA) - i, nil +} +func (m *SingleChannelComparisonExpression_String_) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SingleChannelComparisonExpression_String_) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.String_) + copy(dAtA[i:], m.String_) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.String_))) + i-- + dAtA[i] = 0x2a + return len(dAtA) - i, nil +} +func (m *SingleChannelComparisonExpression_LastValue) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SingleChannelComparisonExpression_LastValue) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.LastValue != nil { + size, err := m.LastValue.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 } - if m.IsExternal { - n += 3 + return len(dAtA) - i, nil +} +func (m *LastValueThreshold) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if len(m.Metadata) > 0 { - for _, e := range m.Metadata { - if size, ok := interface{}(e).(interface { - SizeVT() int - }); ok { - l = size.SizeVT() - } else { - l = proto.Size(e) - } - n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) - } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *RuleCondition) SizeVT() (n int) { +func (m *LastValueThreshold) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *LastValueThreshold) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.RuleConditionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.Expression != nil { - l = m.Expression.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.CreatedDate != nil { - l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ModifiedDate != nil { - l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.CreatedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.ModifiedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if len(m.Actions) > 0 { - for _, e := range m.Actions { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + return len(dAtA) - i, nil +} + +func (m *CalculatedChannelConfig) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - l = len(m.RuleConditionVersionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *RuleAction) SizeVT() (n int) { +func (m *CalculatedChannelConfig) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CalculatedChannelConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.RuleActionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.RuleConditionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ActionType != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.ActionType)) - } - if m.Configuration != nil { - l = m.Configuration.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.CreatedDate != nil { - l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.FunctionDependencies) > 0 { + for iNdEx := len(m.FunctionDependencies) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.FunctionDependencies[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.FunctionDependencies[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a + } } - if m.ModifiedDate != nil { - l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.Expression) > 0 { + i -= len(m.Expression) + copy(dAtA[i:], m.Expression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Expression))) + i-- + dAtA[i] = 0x12 } - l = len(m.CreatedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.ChannelReferences) > 0 { + for k := range m.ChannelReferences { + v := m.ChannelReferences[k] + baseI := i + size, err := v.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + i -= len(k) + copy(dAtA[i:], k) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } } - l = len(m.ModifiedByUserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *ChannelReference) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - l = len(m.RuleActionVersionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *RuleAssetConfiguration) SizeVT() (n int) { +func (m *ChannelReference) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ChannelReference) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if len(m.AssetIds) > 0 { - for _, s := range m.AssetIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if len(m.TagIds) > 0 { - for _, s := range m.TagIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + if len(m.Component) > 0 { + i -= len(m.Component) + copy(dAtA[i:], m.Component) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Component))) + i-- + dAtA[i] = 0x12 } - n += len(m.unknownFields) - return n + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *ContextualChannels) SizeVT() (n int) { +func (m *RuleActionConfiguration) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - if len(m.Channels) > 0 { - for _, e := range m.Channels { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *AssetExpressionValidationResult) SizeVT() (n int) { +func (m *RuleActionConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RuleActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.AssetId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.AssetName) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - l = len(m.AssetTagId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if msg, ok := m.Configuration.(*RuleActionConfiguration_Annotation); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - if m.Error != nil { - l = len(*m.Error) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if msg, ok := m.Configuration.(*RuleActionConfiguration_Notification); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *SearchRulesRequest) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Limit != nil { - n += 1 + protohelpers.SizeOfVarint(uint64(*m.Limit)) - } - if m.Offset != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.Offset)) - } - if m.Order != nil { - n += 1 + protohelpers.SizeOfVarint(uint64(*m.Order)) - } - l = len(m.NameMatches) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.CaseSensitive { - n += 2 - } - if m.Regexp { - n += 2 - } - if m.OrderBy != nil { - l = len(*m.OrderBy) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if len(m.RuleIds) > 0 { - for _, s := range m.RuleIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) +func (m *RuleActionConfiguration_Notification) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RuleActionConfiguration_Notification) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Notification != nil { + size, err := m.Notification.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - if len(m.AssetIds) > 0 { - for _, s := range m.AssetIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} +func (m *RuleActionConfiguration_Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RuleActionConfiguration_Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - if m.IncludeDeleted { - n += 2 + return len(dAtA) - i, nil +} +func (m *NotificationActionConfiguration) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.AssetTags != nil { - if size, ok := interface{}(m.AssetTags).(interface { - SizeVT() int - }); ok { - l = size.SizeVT() - } else { - l = proto.Size(m.AssetTags) - } - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *SearchRulesResponse) SizeVT() (n int) { +func (m *NotificationActionConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *NotificationActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if m.Count != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.Count)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if len(m.Rules) > 0 { - for _, e := range m.Rules { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.RecipientUserIds) > 0 { + for iNdEx := len(m.RecipientUserIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RecipientUserIds[iNdEx]) + copy(dAtA[i:], m.RecipientUserIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RecipientUserIds[iNdEx]))) + i-- + dAtA[i] = 0xa } } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *GetRuleRequest) SizeVT() (n int) { +func (m *AnnotationActionConfiguration) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 - } - var l int - _ = l - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return nil, nil } - l = len(m.ClientKey) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *GetRuleResponse) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Rule != nil { - l = m.Rule.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n +func (m *AnnotationActionConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchGetRulesRequest) SizeVT() (n int) { +func (m *AnnotationActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if len(m.RuleIds) > 0 { - for _, s := range m.RuleIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 } } - if len(m.ClientKeys) > 0 { - for _, s := range m.ClientKeys { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.AssignedToUserId != nil { + i -= len(*m.AssignedToUserId) + copy(dAtA[i:], *m.AssignedToUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.AssignedToUserId))) + i-- + dAtA[i] = 0x1a + } + if m.AnnotationType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AnnotationType)) + i-- + dAtA[i] = 0x10 + } + if len(m.TagIds) > 0 { + for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.TagIds[iNdEx]) + copy(dAtA[i:], m.TagIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) + i-- + dAtA[i] = 0xa } } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *BatchGetRulesResponse) SizeVT() (n int) { +func (m *EvaluateRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - if len(m.Rules) > 0 { - for _, e := range m.Rules { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *CreateRuleRequest) SizeVT() (n int) { +func (m *EvaluateRulesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *EvaluateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if m.Update != nil { - l = m.Update.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - n += len(m.unknownFields) - return n -} - -func (m *CreateRuleResponse) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n -} - -func (m *UpdateRuleRequest) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.RuleId != nil { - l = len(*m.RuleId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Name) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.AssetId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.IsEnabled { - n += 2 - } - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.DryRun { + i-- + if m.DryRun { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x28 } - l = len(m.OrganizationId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.VersionNotes) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ClientKey != nil { - l = len(*m.ClientKey) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.AssetConfiguration != nil { - l = m.AssetConfiguration.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if msg, ok := m.Time.(*EvaluateRulesRequest_TimeRange); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - if m.ContextualChannels != nil { - l = m.ContextualChannels.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if msg, ok := m.Time.(*EvaluateRulesRequest_RunId); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - if m.IsExternal { - n += 2 + if m.AnnotationOptions != nil { + size, err := m.AnnotationOptions.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - if len(m.Metadata) > 0 { - for _, e := range m.Metadata { - if size, ok := interface{}(e).(interface { - SizeVT() int - }); ok { - l = size.SizeVT() - } else { - l = proto.Size(e) - } - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.RuleIds) > 0 { + for iNdEx := len(m.RuleIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RuleIds[iNdEx]) + copy(dAtA[i:], m.RuleIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleIds[iNdEx]))) + i-- + dAtA[i] = 0xa } } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *UpdateConditionRequest) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.RuleConditionId != nil { - l = len(*m.RuleConditionId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) +func (m *EvaluateRulesRequest_RunId) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *EvaluateRulesRequest_RunId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x1a + return len(dAtA) - i, nil +} +func (m *EvaluateRulesRequest_TimeRange) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *EvaluateRulesRequest_TimeRange) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.TimeRange != nil { + size, err := m.TimeRange.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 } - if m.Expression != nil { - l = m.Expression.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return len(dAtA) - i, nil +} +func (m *EvaluatedAnnotationOptions) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if len(m.Actions) > 0 { - for _, e := range m.Actions { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *UpdateActionRequest) SizeVT() (n int) { +func (m *EvaluatedAnnotationOptions) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *EvaluatedAnnotationOptions) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if m.RuleActionId != nil { - l = len(*m.RuleActionId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ActionType != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.ActionType)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.Configuration != nil { - l = m.Configuration.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.TagIds) > 0 { + for iNdEx := len(m.TagIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.TagIds[iNdEx]) + copy(dAtA[i:], m.TagIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TagIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *UpdateRuleResponse) SizeVT() (n int) { +func (m *TimeRangeQuery) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *ValidationResult) SizeVT() (n int) { +func (m *TimeRangeQuery) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimeRangeQuery) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.ClientKey) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if len(m.AssetExpressionValidationResults) > 0 { - for _, e := range m.AssetExpressionValidationResults { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.EndTime != nil { + size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - if m.Error != nil { - l = len(*m.Error) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.StartTime != nil { + size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *BatchUpdateRulesRequest) SizeVT() (n int) { +func (m *EvaluateRulesResponse) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 - } - var l int - _ = l - if len(m.Rules) > 0 { - for _, e := range m.Rules { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - } - if m.ValidateOnly { - n += 2 + return nil, nil } - if m.OverrideExpressionValidation { - n += 2 + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *BatchUpdateRulesResponse_RuleIdentifiers) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Name) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.ClientKey != nil { - l = len(*m.ClientKey) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - n += len(m.unknownFields) - return n +func (m *EvaluateRulesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchUpdateRulesResponse) SizeVT() (n int) { +func (m *EvaluateRulesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if m.Success { - n += 2 - } - if m.RulesCreatedCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesCreatedCount)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } - if m.RulesUpdatedCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesUpdatedCount)) + if m.ReportId != nil { + i -= len(*m.ReportId) + copy(dAtA[i:], *m.ReportId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ReportId))) + i-- + dAtA[i] = 0x22 } - if m.ValidateOnly { - n += 2 + if m.JobId != nil { + i -= len(*m.JobId) + copy(dAtA[i:], *m.JobId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.JobId))) + i-- + dAtA[i] = 0x1a } - if len(m.ValidationResults) > 0 { - for _, e := range m.ValidationResults { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.DryRunAnnotations) > 0 { + for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.DryRunAnnotations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } } - if len(m.CreatedRuleIdentifiers) > 0 { - for _, e := range m.CreatedRuleIdentifiers { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + if m.CreatedAnnotationCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CreatedAnnotationCount)) + i-- + dAtA[i] = 0x8 } - n += len(m.unknownFields) - return n + return len(dAtA) - i, nil } -func (m *DeleteRuleRequest) SizeVT() (n int) { +func (m *DryRunAnnotation) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 - } - var l int - _ = l - l = len(m.RuleId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return nil, nil } - l = len(m.ClientKey) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - n += len(m.unknownFields) - return n + return dAtA[:n], nil } -func (m *DeleteRuleResponse) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += len(m.unknownFields) - return n +func (m *DryRunAnnotation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *BatchDeleteRulesRequest) SizeVT() (n int) { +func (m *DryRunAnnotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { - return 0 + return 0, nil } + i := len(dAtA) + _ = i var l int _ = l - if len(m.RuleIds) > 0 { - for _, s := range m.RuleIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ConditionVersionId) > 0 { + i -= len(m.ConditionVersionId) + copy(dAtA[i:], m.ConditionVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionVersionId))) + i-- + dAtA[i] = 0x2a + } + if m.EndTime != nil { + size, err := (*timestamppb1.Timestamp)(m.EndTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 } - if len(m.ClientKeys) > 0 { - for _, s := range m.ClientKeys { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.StartTime != nil { + size, err := (*timestamppb1.Timestamp)(m.StartTime).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a } - n += len(m.unknownFields) - return n -} - -func (m *BatchDeleteRulesResponse) SizeVT() (n int) { - if m == nil { - return 0 + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 } - var l int - _ = l - n += len(m.unknownFields) - return n + if len(m.ConditionId) > 0 { + i -= len(m.ConditionId) + copy(dAtA[i:], m.ConditionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ConditionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *UndeleteRuleRequest) SizeVT() (n int) { +func (m *Rule) SizeVT() (n int) { if m == nil { return 0 } @@ -13172,99 +13739,134 @@ func (m *UndeleteRuleRequest) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.ClientKey) + l = len(m.AssetId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - n += len(m.unknownFields) - return n -} - -func (m *UndeleteRuleResponse) SizeVT() (n int) { - if m == nil { - return 0 + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - var l int - _ = l - n += len(m.unknownFields) - return n -} - -func (m *BatchUndeleteRulesRequest) SizeVT() (n int) { - if m == nil { - return 0 + l = len(m.Description) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - var l int - _ = l - if len(m.RuleIds) > 0 { - for _, s := range m.RuleIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + if m.IsEnabled { + n += 2 } - if len(m.ClientKeys) > 0 { - for _, s := range m.ClientKeys { - l = len(s) + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - n += len(m.unknownFields) - return n -} - -func (m *BatchUndeleteRulesResponse) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += len(m.unknownFields) - return n -} - -func (m *ViewHumanFriendlyRulesRequest) SizeVT() (n int) { - if m == nil { - return 0 + if m.RuleVersion != nil { + l = m.RuleVersion.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - var l int - _ = l - l = len(m.AssetId) + l = len(m.ClientKey) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.AssetConfiguration != nil { + l = m.AssetConfiguration.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ContextualChannels != nil { + l = m.ContextualChannels.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.DeletedDate != nil { + l = (*timestamppb1.Timestamp)(m.DeletedDate).SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.IsExternal { + n += 3 + } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.ArchivedDate != nil { + l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.IsArchived { + n += 3 + } n += len(m.unknownFields) return n } -func (m *ViewHumanFriendlyRulesResponse) SizeVT() (n int) { +func (m *RuleCondition) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RulesJson) + l = len(m.RuleConditionId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - n += len(m.unknownFields) - return n -} - -func (m *UpdateHumanFriendlyRulesRequest) SizeVT() (n int) { - if m == nil { - return 0 + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - var l int - _ = l - l = len(m.AssetId) + if m.Expression != nil { + l = m.Expression.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.RulesJson) + l = len(m.ModifiedByUserId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.OrganizationId) + if len(m.Actions) > 0 { + for _, e := range m.Actions { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.RuleConditionVersionId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } @@ -13272,19 +13874,44 @@ func (m *UpdateHumanFriendlyRulesRequest) SizeVT() (n int) { return n } -func (m *UpdateHumanFriendlyRulesResponse) SizeVT() (n int) { +func (m *RuleAction) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Success { - n += 2 + l = len(m.RuleActionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.RulesCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesCount)) + l = len(m.RuleConditionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.Messages) + if m.ActionType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.ActionType)) + } + if m.Configuration != nil { + l = m.Configuration.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.RuleActionVersionId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } @@ -13292,35 +13919,45 @@ func (m *UpdateHumanFriendlyRulesResponse) SizeVT() (n int) { return n } -func (m *ViewJsonRulesRequest) SizeVT() (n int) { +func (m *RuleAssetConfiguration) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.AssetId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.AssetIds) > 0 { + for _, s := range m.AssetIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.TagIds) > 0 { + for _, s := range m.TagIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } n += len(m.unknownFields) return n } -func (m *ViewJsonRulesResponse) SizeVT() (n int) { +func (m *ContextualChannels) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RulesJson) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.Channels) > 0 { + for _, e := range m.Channels { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } n += len(m.unknownFields) return n } -func (m *JsonRulesRequest) SizeVT() (n int) { +func (m *AssetExpressionValidationResult) SizeVT() (n int) { if m == nil { return 0 } @@ -13330,129 +13967,154 @@ func (m *JsonRulesRequest) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.RulesJson) + l = len(m.AssetName) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.OrganizationId) + l = len(m.AssetTagId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.Error != nil { + l = len(*m.Error) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } -func (m *JsonRulesResponse) SizeVT() (n int) { +func (m *SearchRulesRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Success { + if m.Limit != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Limit)) + } + if m.Offset != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Offset)) + } + if m.Order != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.Order)) + } + l = len(m.NameMatches) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CaseSensitive { n += 2 } - if m.TotalRulesCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.TotalRulesCount)) + if m.Regexp { + n += 2 } - if m.RulesCreatedCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesCreatedCount)) + if m.OrderBy != nil { + l = len(*m.OrderBy) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.RulesUpdatedCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesUpdatedCount)) + if len(m.RuleIds) > 0 { + for _, s := range m.RuleIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } - if m.RulesDeletedCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesDeletedCount)) + if len(m.AssetIds) > 0 { + for _, s := range m.AssetIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } - if m.ErrorMessages != nil { - l = len(*m.ErrorMessages) + if m.IncludeDeleted { + n += 2 + } + if m.AssetTags != nil { + if size, ok := interface{}(m.AssetTags).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.AssetTags) + } n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *ValidateJsonRulesRequest) SizeVT() (n int) { +func (m *SearchRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Request != nil { - l = m.Request.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.Count != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Count)) } - n += len(m.unknownFields) - return n -} - -func (m *ValidateJsonRulesResponse) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Response != nil { - l = m.Response.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.Rules) > 0 { + for _, e := range m.Rules { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } n += len(m.unknownFields) return n } -func (m *UpdateJsonRulesRequest) SizeVT() (n int) { +func (m *GetRuleRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Request != nil { - l = m.Request.SizeVT() + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ClientKey) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *UpdateJsonRulesResponse) SizeVT() (n int) { +func (m *GetRuleResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Response != nil { - l = m.Response.SizeVT() + if m.Rule != nil { + l = m.Rule.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *ListRulesRequest) SizeVT() (n int) { +func (m *BatchGetRulesRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.PageSize != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) - } - l = len(m.PageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Filter) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.RuleIds) > 0 { + for _, s := range m.RuleIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } - l = len(m.OrderBy) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.ClientKeys) > 0 { + for _, s := range m.ClientKeys { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } n += len(m.unknownFields) return n } -func (m *ListRulesResponse) SizeVT() (n int) { +func (m *BatchGetRulesResponse) SizeVT() (n int) { if m == nil { return 0 } @@ -13464,32 +14126,31 @@ func (m *ListRulesResponse) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - l = len(m.NextPageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } n += len(m.unknownFields) return n } -func (m *ListRuleVersionsRequest) SizeVT() (n int) { +func (m *CreateRuleRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RuleId) - if l > 0 { + if m.Update != nil { + l = m.Update.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.PageSize != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) - } - l = len(m.PageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + n += len(m.unknownFields) + return n +} + +func (m *CreateRuleResponse) SizeVT() (n int) { + if m == nil { + return 0 } - l = len(m.Filter) + var l int + _ = l + l = len(m.RuleId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } @@ -13497,29 +14158,38 @@ func (m *ListRuleVersionsRequest) SizeVT() (n int) { return n } -func (m *RuleVersion) SizeVT() (n int) { +func (m *UpdateRuleRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RuleId) - if l > 0 { + if m.RuleId != nil { + l = len(*m.RuleId) n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.RuleVersionId) + l = len(m.Name) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.Version) + l = len(m.Description) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.CreatedDate != nil { - l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + l = len(m.AssetId) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.CreatedByUserId) + if m.IsEnabled { + n += 2 + } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.OrganizationId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } @@ -13527,83 +14197,128 @@ func (m *RuleVersion) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.GeneratedChangeMessage) - if l > 0 { + if m.ClientKey != nil { + l = len(*m.ClientKey) n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.DeletedDate != nil { - l = (*timestamppb1.Timestamp)(m.DeletedDate).SizeVT() + if m.AssetConfiguration != nil { + l = m.AssetConfiguration.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ContextualChannels != nil { + l = m.ContextualChannels.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.IsExternal { + n += 2 + } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.IsArchived { + n += 2 + } n += len(m.unknownFields) return n } -func (m *ListRuleVersionsResponse) SizeVT() (n int) { +func (m *UpdateConditionRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.RuleVersions) > 0 { - for _, e := range m.RuleVersions { + if m.RuleConditionId != nil { + l = len(*m.RuleConditionId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Expression != nil { + l = m.Expression.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.Actions) > 0 { + for _, e := range m.Actions { l = e.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - l = len(m.NextPageToken) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } n += len(m.unknownFields) return n } -func (m *GetRuleVersionRequest) SizeVT() (n int) { +func (m *UpdateActionRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RuleVersionId) - if l > 0 { + if m.RuleActionId != nil { + l = len(*m.RuleActionId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ActionType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.ActionType)) + } + if m.Configuration != nil { + l = m.Configuration.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *GetRuleVersionResponse) SizeVT() (n int) { +func (m *UpdateRuleResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Rule != nil { - l = m.Rule.SizeVT() + l = len(m.RuleId) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *BatchGetRuleVersionsRequest) SizeVT() (n int) { +func (m *ValidationResult) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.RuleVersionIds) > 0 { - for _, s := range m.RuleVersionIds { - l = len(s) + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ClientKey) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.AssetExpressionValidationResults) > 0 { + for _, e := range m.AssetExpressionValidationResults { + l = e.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.Error != nil { + l = len(*m.Error) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } -func (m *BatchGetRuleVersionsResponse) SizeVT() (n int) { +func (m *BatchUpdateRulesRequest) SizeVT() (n int) { if m == nil { return 0 } @@ -13615,103 +14330,151 @@ func (m *BatchGetRuleVersionsResponse) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.ValidateOnly { + n += 2 + } + if m.OverrideExpressionValidation { + n += 2 + } n += len(m.unknownFields) return n } -func (m *RuleConditionExpression) SizeVT() (n int) { +func (m *BatchUpdateRulesResponse_RuleIdentifiers) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if vtmsg, ok := m.Expression.(interface{ SizeVT() int }); ok { - n += vtmsg.SizeVT() + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ClientKey != nil { + l = len(*m.ClientKey) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *RuleConditionExpression_SingleChannelComparison) SizeVT() (n int) { +func (m *BatchUpdateRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.SingleChannelComparison != nil { - l = m.SingleChannelComparison.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if m.Success { + n += 2 + } + if m.RulesCreatedCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesCreatedCount)) + } + if m.RulesUpdatedCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesUpdatedCount)) + } + if m.ValidateOnly { + n += 2 + } + if len(m.ValidationResults) > 0 { + for _, e := range m.ValidationResults { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.CreatedRuleIdentifiers) > 0 { + for _, e := range m.CreatedRuleIdentifiers { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } + n += len(m.unknownFields) return n } -func (m *RuleConditionExpression_CalculatedChannel) SizeVT() (n int) { + +func (m *DeleteRuleRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.CalculatedChannel != nil { - l = m.CalculatedChannel.SizeVT() + l = len(m.RuleId) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + l = len(m.ClientKey) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) return n } -func (m *SingleChannelComparisonExpression) SizeVT() (n int) { + +func (m *DeleteRuleResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.ChannelComponent) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.ChannelName) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.Comparator != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.Comparator)) - } - if vtmsg, ok := m.Threshold.(interface{ SizeVT() int }); ok { - n += vtmsg.SizeVT() - } n += len(m.unknownFields) return n } -func (m *SingleChannelComparisonExpression_Double) SizeVT() (n int) { +func (m *BatchDeleteRulesRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - n += 9 + if len(m.RuleIds) > 0 { + for _, s := range m.RuleIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.ClientKeys) > 0 { + for _, s := range m.ClientKeys { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) return n } -func (m *SingleChannelComparisonExpression_String_) SizeVT() (n int) { + +func (m *BatchDeleteRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.String_) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + n += len(m.unknownFields) return n } -func (m *SingleChannelComparisonExpression_LastValue) SizeVT() (n int) { + +func (m *ArchiveRuleRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.LastValue != nil { - l = m.LastValue.SizeVT() + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ClientKey) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + n += len(m.unknownFields) return n } -func (m *LastValueThreshold) SizeVT() (n int) { + +func (m *ArchiveRuleResponse) SizeVT() (n int) { if m == nil { return 0 } @@ -13721,38 +14484,21 @@ func (m *LastValueThreshold) SizeVT() (n int) { return n } -func (m *CalculatedChannelConfig) SizeVT() (n int) { +func (m *BatchArchiveRulesRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.ChannelReferences) > 0 { - for k, v := range m.ChannelReferences { - _ = k - _ = v - l = 0 - if v != nil { - l = v.SizeVT() - } - l += 1 + protohelpers.SizeOfVarint(uint64(l)) - mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + l - n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize)) + if len(m.RuleIds) > 0 { + for _, s := range m.RuleIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - l = len(m.Expression) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if len(m.FunctionDependencies) > 0 { - for _, e := range m.FunctionDependencies { - if size, ok := interface{}(e).(interface { - SizeVT() int - }); ok { - l = size.SizeVT() - } else { - l = proto.Size(e) - } + if len(m.ClientKeys) > 0 { + for _, s := range m.ClientKeys { + l = len(s) n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } @@ -13760,17 +14506,27 @@ func (m *CalculatedChannelConfig) SizeVT() (n int) { return n } -func (m *ChannelReference) SizeVT() (n int) { +func (m *BatchArchiveRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Name) + n += len(m.unknownFields) + return n +} + +func (m *UndeleteRuleRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RuleId) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - l = len(m.Component) + l = len(m.ClientKey) if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } @@ -13778,95 +14534,77 @@ func (m *ChannelReference) SizeVT() (n int) { return n } -func (m *RuleActionConfiguration) SizeVT() (n int) { +func (m *UndeleteRuleResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if vtmsg, ok := m.Configuration.(interface{ SizeVT() int }); ok { - n += vtmsg.SizeVT() - } n += len(m.unknownFields) return n } -func (m *RuleActionConfiguration_Notification) SizeVT() (n int) { +func (m *BatchUndeleteRulesRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Notification != nil { - l = m.Notification.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if len(m.RuleIds) > 0 { + for _, s := range m.RuleIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.ClientKeys) > 0 { + for _, s := range m.ClientKeys { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } + n += len(m.unknownFields) return n } -func (m *RuleActionConfiguration_Annotation) SizeVT() (n int) { + +func (m *BatchUndeleteRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.Annotation != nil { - l = m.Annotation.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + n += len(m.unknownFields) return n } -func (m *NotificationActionConfiguration) SizeVT() (n int) { + +func (m *UnarchiveRuleRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.RecipientUserIds) > 0 { - for _, s := range m.RecipientUserIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ClientKey) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *AnnotationActionConfiguration) SizeVT() (n int) { +func (m *UnarchiveRuleResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.TagIds) > 0 { - for _, s := range m.TagIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - } - if m.AnnotationType != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.AnnotationType)) - } - if m.AssignedToUserId != nil { - l = len(*m.AssignedToUserId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if len(m.Metadata) > 0 { - for _, e := range m.Metadata { - if size, ok := interface{}(e).(interface { - SizeVT() int - }); ok { - l = size.SizeVT() - } else { - l = proto.Size(e) - } - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - } n += len(m.unknownFields) return n } -func (m *EvaluateRulesRequest) SizeVT() (n int) { +func (m *BatchUnarchiveRulesRequest) SizeVT() (n int) { if m == nil { return 0 } @@ -13878,134 +14616,1865 @@ func (m *EvaluateRulesRequest) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } - if m.AnnotationOptions != nil { - l = m.AnnotationOptions.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if vtmsg, ok := m.Time.(interface{ SizeVT() int }); ok { - n += vtmsg.SizeVT() - } - if m.DryRun { - n += 2 + if len(m.ClientKeys) > 0 { + for _, s := range m.ClientKeys { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } } n += len(m.unknownFields) return n } -func (m *EvaluateRulesRequest_RunId) SizeVT() (n int) { +func (m *BatchUnarchiveRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RunId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + n += len(m.unknownFields) return n } -func (m *EvaluateRulesRequest_TimeRange) SizeVT() (n int) { + +func (m *ViewHumanFriendlyRulesRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.TimeRange != nil { - l = m.TimeRange.SizeVT() + l = len(m.AssetId) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + n += len(m.unknownFields) return n } -func (m *EvaluatedAnnotationOptions) SizeVT() (n int) { + +func (m *ViewHumanFriendlyRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.TagIds) > 0 { - for _, s := range m.TagIds { - l = len(s) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + l = len(m.RulesJson) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *TimeRangeQuery) SizeVT() (n int) { +func (m *UpdateHumanFriendlyRulesRequest) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.StartTime != nil { - l = (*timestamppb1.Timestamp)(m.StartTime).SizeVT() + l = len(m.AssetId) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.EndTime != nil { - l = (*timestamppb1.Timestamp)(m.EndTime).SizeVT() + l = len(m.RulesJson) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } n += len(m.unknownFields) return n } -func (m *EvaluateRulesResponse) SizeVT() (n int) { +func (m *UpdateHumanFriendlyRulesResponse) SizeVT() (n int) { if m == nil { return 0 } var l int _ = l - if m.CreatedAnnotationCount != 0 { - n += 1 + protohelpers.SizeOfVarint(uint64(m.CreatedAnnotationCount)) + if m.Success { + n += 2 } - if len(m.DryRunAnnotations) > 0 { - for _, e := range m.DryRunAnnotations { - l = e.SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } + if m.RulesCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesCount)) } - if m.JobId != nil { - l = len(*m.JobId) + l = len(m.Messages) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } - if m.ReportId != nil { - l = len(*m.ReportId) - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + n += len(m.unknownFields) + return n +} + +func (m *ViewJsonRulesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AssetId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ViewJsonRulesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RulesJson) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *JsonRulesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AssetId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.RulesJson) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *JsonRulesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Success { + n += 2 + } + if m.TotalRulesCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.TotalRulesCount)) + } + if m.RulesCreatedCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesCreatedCount)) + } + if m.RulesUpdatedCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesUpdatedCount)) + } + if m.RulesDeletedCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RulesDeletedCount)) + } + if m.ErrorMessages != nil { + l = len(*m.ErrorMessages) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ValidateJsonRulesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Request != nil { + l = m.Request.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ValidateJsonRulesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Response != nil { + l = m.Response.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateJsonRulesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Request != nil { + l = m.Request.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateJsonRulesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Response != nil { + l = m.Response.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListRulesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListRulesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Rules) > 0 { + for _, e := range m.Rules { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListRuleVersionsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *RuleVersion) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.RuleVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Version) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.VersionNotes) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.GeneratedChangeMessage) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.DeletedDate != nil { + l = (*timestamppb1.Timestamp)(m.DeletedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ArchivedDate != nil { + l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.IsArchived { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *ListRuleVersionsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RuleVersions) > 0 { + for _, e := range m.RuleVersions { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetRuleVersionRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RuleVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetRuleVersionResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Rule != nil { + l = m.Rule.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *BatchGetRuleVersionsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RuleVersionIds) > 0 { + for _, s := range m.RuleVersionIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *BatchGetRuleVersionsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Rules) > 0 { + for _, e := range m.Rules { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *RuleConditionExpression) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Expression.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *RuleConditionExpression_SingleChannelComparison) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SingleChannelComparison != nil { + l = m.SingleChannelComparison.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *RuleConditionExpression_CalculatedChannel) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CalculatedChannel != nil { + l = m.CalculatedChannel.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *SingleChannelComparisonExpression) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ChannelComponent) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ChannelName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Comparator != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Comparator)) + } + if vtmsg, ok := m.Threshold.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *SingleChannelComparisonExpression_Double) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *SingleChannelComparisonExpression_String_) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.String_) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *SingleChannelComparisonExpression_LastValue) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastValue != nil { + l = m.LastValue.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *LastValueThreshold) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *CalculatedChannelConfig) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ChannelReferences) > 0 { + for k, v := range m.ChannelReferences { + _ = k + _ = v + l = 0 + if v != nil { + l = v.SizeVT() + } + l += 1 + protohelpers.SizeOfVarint(uint64(l)) + mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + l + n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize)) + } + } + l = len(m.Expression) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.FunctionDependencies) > 0 { + for _, e := range m.FunctionDependencies { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *ChannelReference) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Component) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *RuleActionConfiguration) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Configuration.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *RuleActionConfiguration_Notification) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Notification != nil { + l = m.Notification.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *RuleActionConfiguration_Annotation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + l = m.Annotation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *NotificationActionConfiguration) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RecipientUserIds) > 0 { + for _, s := range m.RecipientUserIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *AnnotationActionConfiguration) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.TagIds) > 0 { + for _, s := range m.TagIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.AnnotationType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.AnnotationType)) + } + if m.AssignedToUserId != nil { + l = len(*m.AssignedToUserId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *EvaluateRulesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RuleIds) > 0 { + for _, s := range m.RuleIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.AnnotationOptions != nil { + l = m.AnnotationOptions.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.Time.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if m.DryRun { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *EvaluateRulesRequest_RunId) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RunId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *EvaluateRulesRequest_TimeRange) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TimeRange != nil { + l = m.TimeRange.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *EvaluatedAnnotationOptions) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.TagIds) > 0 { + for _, s := range m.TagIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *TimeRangeQuery) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.StartTime != nil { + l = (*timestamppb1.Timestamp)(m.StartTime).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.EndTime != nil { + l = (*timestamppb1.Timestamp)(m.EndTime).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *EvaluateRulesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CreatedAnnotationCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.CreatedAnnotationCount)) + } + if len(m.DryRunAnnotations) > 0 { + for _, e := range m.DryRunAnnotations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.JobId != nil { + l = len(*m.JobId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ReportId != nil { + l = len(*m.ReportId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *DryRunAnnotation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ConditionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.StartTime != nil { + l = (*timestamppb1.Timestamp)(m.StartTime).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.EndTime != nil { + l = (*timestamppb1.Timestamp)(m.EndTime).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ConditionVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *Rule) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Rule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsEnabled = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, &RuleCondition{}) + if err := m.Conditions[len(m.Conditions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RuleVersion == nil { + m.RuleVersion = &RuleVersion{} + } + if err := m.RuleVersion.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AssetConfiguration == nil { + m.AssetConfiguration = &RuleAssetConfiguration{} + } + if err := m.AssetConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ContextualChannels == nil { + m.ContextualChannels = &ContextualChannels{} + } + if err := m.ContextualChannels.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DeletedDate == nil { + m.DeletedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsExternal = bool(v != 0) + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RuleCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RuleCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleConditionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Expression == nil { + m.Expression = &RuleConditionExpression{} + } + if err := m.Expression.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actions = append(m.Actions, &RuleAction{}) + if err := m.Actions[len(m.Actions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleConditionVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } } - n += len(m.unknownFields) - return n -} -func (m *DryRunAnnotation) SizeVT() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ConditionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.Name) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.StartTime != nil { - l = (*timestamppb1.Timestamp)(m.StartTime).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - if m.EndTime != nil { - l = (*timestamppb1.Timestamp)(m.EndTime).SizeVT() - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) - } - l = len(m.ConditionVersionId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - n += len(m.unknownFields) - return n + return nil } - -func (m *Rule) UnmarshalVT(dAtA []byte) error { +func (m *RuleAction) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14028,15 +16497,15 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Rule: wiretype end group for non-group") + return fmt.Errorf("proto: RuleAction: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RuleAction: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14064,11 +16533,11 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleId = string(dAtA[iNdEx:postIndex]) + m.RuleActionId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14096,13 +16565,13 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetId = string(dAtA[iNdEx:postIndex]) + m.RuleConditionId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) } - var stringLen uint64 + m.ActionType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14112,29 +16581,16 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.ActionType |= ActionKind(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14144,45 +16600,29 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) + if m.Configuration == nil { + m.Configuration = &RuleActionConfiguration{} } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if err := m.Configuration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.IsEnabled = bool(v != 0) - case 7: + iNdEx = postIndex + case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } @@ -14218,7 +16658,7 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) } @@ -14254,7 +16694,7 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex - case 9: + case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) } @@ -14286,7 +16726,7 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 10: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) } @@ -14318,9 +16758,9 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 11: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleActionVersionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14348,47 +16788,64 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + m.RuleActionVersionId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - if msglen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RuleAssetConfiguration) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.Conditions = append(m.Conditions, &RuleCondition{}) - if err := m.Conditions[len(m.Conditions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 13: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RuleAssetConfiguration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RuleAssetConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersion", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14398,31 +16855,27 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.RuleVersion == nil { - m.RuleVersion = &RuleVersion{} - } - if err := m.RuleVersion.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 14: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14450,11 +16903,62 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ClientKey = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 15: + m.TagIds = append(m.TagIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ContextualChannels) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContextualChannels: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContextualChannels: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14481,18 +16985,67 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AssetConfiguration == nil { - m.AssetConfiguration = &RuleAssetConfiguration{} - } - if err := m.AssetConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Channels = append(m.Channels, &ChannelReference{}) + if err := m.Channels[len(m.Channels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 16: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AssetExpressionValidationResult) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetExpressionValidationResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetExpressionValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14502,33 +17055,29 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.ContextualChannels == nil { - m.ContextualChannels = &ContextualChannels{} - } - if err := m.ContextualChannels.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AssetId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 17: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14538,33 +17087,29 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.DeletedDate == nil { - m.DeletedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AssetName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 18: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetTagId", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14574,17 +17119,29 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.IsExternal = bool(v != 0) - case 19: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetTagId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14594,33 +17151,24 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } - } + s := string(dAtA[iNdEx:postIndex]) + m.Error = &s iNdEx = postIndex default: iNdEx = preIndex @@ -14644,7 +17192,7 @@ func (m *Rule) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { +func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14667,17 +17215,17 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleCondition: wiretype end group for non-group") + return fmt.Errorf("proto: SearchRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleCondition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SearchRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) } - var stringLen uint64 + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14687,29 +17235,17 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleConditionId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + m.Limit = &v case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Offset", wireType) } - var stringLen uint64 + m.Offset = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14719,29 +17255,36 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Offset |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + var v SearchOrder + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= SearchOrder(b&0x7F) << shift + if b < 0x80 { + break + } } - m.RuleId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: + m.Order = &v + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NameMatches", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14751,33 +17294,29 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Expression == nil { - m.Expression = &RuleConditionExpression{} - } - if err := m.Expression.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.NameMatches = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CaseSensitive", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14787,33 +17326,17 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.CaseSensitive = bool(v != 0) case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Regexp", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14823,31 +17346,15 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.Regexp = bool(v != 0) case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14875,11 +17382,12 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.OrderBy = &s iNdEx = postIndex case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14907,13 +17415,13 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14923,31 +17431,49 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Actions = append(m.Actions, &RuleAction{}) - if err := m.Actions[len(m.Actions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeDeleted", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeDeleted = bool(v != 0) + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetTags", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14957,23 +17483,35 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleConditionVersionId = string(dAtA[iNdEx:postIndex]) + if m.AssetTags == nil { + m.AssetTags = &v11.NamedResources{} + } + if unmarshal, ok := interface{}(m.AssetTags).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssetTags); err != nil { + return err + } + } iNdEx = postIndex default: iNdEx = preIndex @@ -14997,7 +17535,7 @@ func (m *RuleCondition) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RuleAction) UnmarshalVT(dAtA []byte) error { +func (m *SearchRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15020,17 +17558,17 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleAction: wiretype end group for non-group") + return fmt.Errorf("proto: SearchRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleAction: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SearchRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) } - var stringLen uint64 + m.Count = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15040,29 +17578,16 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Count |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleActionId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15072,84 +17597,82 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleConditionId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) - } - m.ActionType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ActionType |= ActionKind(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + m.Rules = append(m.Rules, &Rule{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - if msglen < 0 { - return protohelpers.ErrInvalidLength + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.Configuration == nil { - m.Configuration = &RuleActionConfiguration{} + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetRuleRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if err := m.Configuration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 5: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetRuleRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15159,33 +17682,29 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.RuleId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 6: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15195,33 +17714,80 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.ClientKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { return err } - iNdEx = postIndex - case 7: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetRuleResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetRuleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15231,27 +17797,82 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + if m.Rule == nil { + m.Rule = &Rule{} + } + if err := m.Rule.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 8: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchGetRulesRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchGetRulesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchGetRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15279,11 +17900,11 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 9: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleActionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15311,7 +17932,7 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleActionVersionId = string(dAtA[iNdEx:postIndex]) + m.ClientKeys = append(m.ClientKeys, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -15335,7 +17956,7 @@ func (m *RuleAction) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RuleAssetConfiguration) UnmarshalVT(dAtA []byte) error { +func (m *BatchGetRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15358,17 +17979,17 @@ func (m *RuleAssetConfiguration) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleAssetConfiguration: wiretype end group for non-group") + return fmt.Errorf("proto: BatchGetRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleAssetConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchGetRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15378,29 +17999,82 @@ func (m *RuleAssetConfiguration) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) + m.Rules = append(m.Rules, &Rule{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateRuleRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateRuleRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Update", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15410,23 +18084,27 @@ func (m *RuleAssetConfiguration) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.TagIds = append(m.TagIds, string(dAtA[iNdEx:postIndex])) + if m.Update == nil { + m.Update = &UpdateRuleRequest{} + } + if err := m.Update.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -15450,7 +18128,7 @@ func (m *RuleAssetConfiguration) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ContextualChannels) UnmarshalVT(dAtA []byte) error { +func (m *CreateRuleResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15473,17 +18151,17 @@ func (m *ContextualChannels) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ContextualChannels: wiretype end group for non-group") + return fmt.Errorf("proto: CreateRuleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ContextualChannels: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15493,25 +18171,23 @@ func (m *ContextualChannels) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Channels = append(m.Channels, &ChannelReference{}) - if err := m.Channels[len(m.Channels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.RuleId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -15535,7 +18211,7 @@ func (m *ContextualChannels) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *AssetExpressionValidationResult) UnmarshalVT(dAtA []byte) error { +func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15558,15 +18234,15 @@ func (m *AssetExpressionValidationResult) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AssetExpressionValidationResult: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AssetExpressionValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15594,11 +18270,12 @@ func (m *AssetExpressionValidationResult) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetId = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.RuleId = &s iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15626,11 +18303,11 @@ func (m *AssetExpressionValidationResult) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetName = string(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetTagId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15658,11 +18335,11 @@ func (m *AssetExpressionValidationResult) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetTagId = string(dAtA[iNdEx:postIndex]) + m.Description = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15690,65 +18367,13 @@ func (m *AssetExpressionValidationResult) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Error = &s + m.AssetId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SearchRulesRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SearchRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 5: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) } - var v uint32 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15758,17 +18383,17 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= uint32(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - m.Limit = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Offset", wireType) + m.IsEnabled = bool(v != 0) + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) } - m.Offset = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15778,34 +18403,29 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Offset |= uint32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + if msglen < 0 { + return protohelpers.ErrInvalidLength } - var v SearchOrder - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= SearchOrder(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - m.Order = &v - case 4: + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, &UpdateConditionRequest{}) + if err := m.Conditions[len(m.Conditions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NameMatches", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15833,13 +18453,13 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NameMatches = string(dAtA[iNdEx:postIndex]) + m.OrganizationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CaseSensitive", wireType) + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VersionNotes", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15849,35 +18469,27 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.CaseSensitive = bool(v != 0) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Regexp", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - m.Regexp = bool(v != 0) - case 7: + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VersionNotes = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15906,13 +18518,13 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } s := string(dAtA[iNdEx:postIndex]) - m.OrderBy = &s + m.ClientKey = &s iNdEx = postIndex - case 8: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15922,29 +18534,33 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) + if m.AssetConfiguration == nil { + m.AssetConfiguration = &RuleAssetConfiguration{} + } + if err := m.AssetConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 9: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15954,27 +18570,31 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) + if m.ContextualChannels == nil { + m.ContextualChannels = &ContextualChannels{} + } + if err := m.ContextualChannels.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 10: + case 12: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeDeleted", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -15991,10 +18611,10 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { break } } - m.IncludeDeleted = bool(v != 0) - case 11: + m.IsExternal = bool(v != 0) + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetTags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16021,21 +18641,39 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AssetTags == nil { - m.AssetTags = &v11.NamedResources{} - } - if unmarshal, ok := interface{}(m.AssetTags).(interface { + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { UnmarshalVT([]byte) error }); ok { if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssetTags); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { return err } } iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -16058,7 +18696,7 @@ func (m *SearchRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *SearchRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *UpdateConditionRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16081,17 +18719,17 @@ func (m *SearchRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SearchRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateConditionRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SearchRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateConditionRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) } - m.Count = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16101,14 +18739,28 @@ func (m *SearchRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Count |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 2: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.RuleConditionId = &s + iNdEx = postIndex + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16135,8 +18787,44 @@ func (m *SearchRulesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &Rule{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if m.Expression == nil { + m.Expression = &RuleConditionExpression{} + } + if err := m.Expression.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actions = append(m.Actions, &UpdateActionRequest{}) + if err := m.Actions[len(m.Actions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -16162,7 +18850,7 @@ func (m *SearchRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetRuleRequest) UnmarshalVT(dAtA []byte) error { +func (m *UpdateActionRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16185,15 +18873,15 @@ func (m *GetRuleRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateActionRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateActionRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16221,13 +18909,33 @@ func (m *GetRuleRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleId = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.RuleActionId = &s iNdEx = postIndex case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) + } + m.ActionType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ActionType |= ActionKind(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16237,23 +18945,27 @@ func (m *GetRuleRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.ClientKey = string(dAtA[iNdEx:postIndex]) + if m.Configuration == nil { + m.Configuration = &RuleActionConfiguration{} + } + if err := m.Configuration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -16277,7 +18989,7 @@ func (m *GetRuleRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetRuleResponse) UnmarshalVT(dAtA []byte) error { +func (m *UpdateRuleResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16300,17 +19012,17 @@ func (m *GetRuleResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetRuleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateRuleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16320,27 +19032,23 @@ func (m *GetRuleResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Rule == nil { - m.Rule = &Rule{} - } - if err := m.Rule.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.RuleId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -16364,7 +19072,7 @@ func (m *GetRuleResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchGetRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *ValidationResult) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16387,15 +19095,15 @@ func (m *BatchGetRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchGetRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ValidationResult: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchGetRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16423,11 +19131,11 @@ func (m *BatchGetRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) + m.RuleId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16455,64 +19163,47 @@ func (m *BatchGetRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ClientKeys = append(m.ClientKeys, string(dAtA[iNdEx:postIndex])) + m.ClientKey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BatchGetRulesResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetExpressionValidationResults", wireType) } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if msglen < 0 { + return protohelpers.ErrInvalidLength } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BatchGetRulesResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BatchGetRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetExpressionValidationResults = append(m.AssetExpressionValidationResults, &AssetExpressionValidationResult{}) + if err := m.AssetExpressionValidationResults[len(m.AssetExpressionValidationResults)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16522,25 +19213,24 @@ func (m *BatchGetRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &Rule{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.Error = &s iNdEx = postIndex default: iNdEx = preIndex @@ -16564,7 +19254,7 @@ func (m *BatchGetRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateRuleRequest) UnmarshalVT(dAtA []byte) error { +func (m *BatchUpdateRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16587,15 +19277,15 @@ func (m *CreateRuleRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUpdateRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUpdateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Update", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16622,69 +19312,16 @@ func (m *CreateRuleRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Update == nil { - m.Update = &UpdateRuleRequest{} - } - if err := m.Update.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Rules = append(m.Rules, &UpdateRuleRequest{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CreateRuleResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CreateRuleResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CreateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16694,24 +19331,32 @@ func (m *CreateRuleResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + m.ValidateOnly = bool(v != 0) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OverrideExpressionValidation", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - m.RuleId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + m.OverrideExpressionValidation = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -16734,7 +19379,7 @@ func (m *CreateRuleResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { +func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16757,10 +19402,10 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -16793,8 +19438,7 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.RuleId = &s + m.RuleId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -16830,7 +19474,7 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16858,99 +19502,65 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Description = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.ClientKey = &s iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.AssetId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IsEnabled = bool(v != 0) - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchUpdateRulesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.Conditions = append(m.Conditions, &UpdateConditionRequest{}) - if err := m.Conditions[len(m.Conditions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchUpdateRulesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchUpdateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16960,29 +19570,17 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VersionNotes", wireType) + m.Success = bool(v != 0) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesCreatedCount", wireType) } - var stringLen uint64 + m.RulesCreatedCount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16992,29 +19590,16 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.RulesCreatedCount |= int32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.VersionNotes = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesUpdatedCount", wireType) } - var stringLen uint64 + m.RulesUpdatedCount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -17024,30 +19609,16 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.RulesUpdatedCount |= int32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.ClientKey = &s - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -17057,31 +19628,15 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AssetConfiguration == nil { - m.AssetConfiguration = &RuleAssetConfiguration{} - } - if err := m.AssetConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 11: + m.ValidateOnly = bool(v != 0) + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ValidationResults", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -17108,36 +19663,14 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ContextualChannels == nil { - m.ContextualChannels = &ContextualChannels{} - } - if err := m.ContextualChannels.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.ValidationResults = append(m.ValidationResults, &ValidationResult{}) + if err := m.ValidationResults[len(m.ValidationResults)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 12: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IsExternal = bool(v != 0) - case 13: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedRuleIdentifiers", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -17164,17 +19697,9 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } + m.CreatedRuleIdentifiers = append(m.CreatedRuleIdentifiers, &BatchUpdateRulesResponse_RuleIdentifiers{}) + if err := m.CreatedRuleIdentifiers[len(m.CreatedRuleIdentifiers)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -17199,7 +19724,7 @@ func (m *UpdateRuleRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateConditionRequest) UnmarshalVT(dAtA []byte) error { +func (m *DeleteRuleRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17222,15 +19747,15 @@ func (m *UpdateConditionRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateConditionRequest: wiretype end group for non-group") + return fmt.Errorf("proto: DeleteRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateConditionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -17258,14 +19783,13 @@ func (m *UpdateConditionRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.RuleConditionId = &s + m.RuleId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -17275,62 +19799,75 @@ func (m *UpdateConditionRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Expression == nil { - m.Expression = &RuleConditionExpression{} - } - if err := m.Expression.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.ClientKey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - if msglen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeleteRuleResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.Actions = append(m.Actions, &UpdateActionRequest{}) - if err := m.Actions[len(m.Actions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeleteRuleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -17353,7 +19890,7 @@ func (m *UpdateConditionRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateActionRequest) UnmarshalVT(dAtA []byte) error { +func (m *BatchDeleteRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17376,15 +19913,15 @@ func (m *UpdateActionRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateActionRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchDeleteRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateActionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchDeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -17412,33 +19949,13 @@ func (m *UpdateActionRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.RuleActionId = &s + m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) - } - m.ActionType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ActionType |= ActionKind(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -17448,27 +19965,23 @@ func (m *UpdateActionRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Configuration == nil { - m.Configuration = &RuleActionConfiguration{} - } - if err := m.Configuration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.ClientKeys = append(m.ClientKeys, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -17492,7 +20005,7 @@ func (m *UpdateActionRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateRuleResponse) UnmarshalVT(dAtA []byte) error { +func (m *BatchDeleteRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17515,44 +20028,12 @@ func (m *UpdateRuleResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateRuleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchDeleteRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchDeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -17575,7 +20056,7 @@ func (m *UpdateRuleResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ValidationResult) UnmarshalVT(dAtA []byte) error { +func (m *ArchiveRuleRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17598,10 +20079,10 @@ func (m *ValidationResult) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ValidationResult: wiretype end group for non-group") + return fmt.Errorf("proto: ArchiveRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ArchiveRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -17668,73 +20149,57 @@ func (m *ValidationResult) UnmarshalVT(dAtA []byte) error { } m.ClientKey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetExpressionValidationResults", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.AssetExpressionValidationResults = append(m.AssetExpressionValidationResults, &AssetExpressionValidationResult{}) - if err := m.AssetExpressionValidationResults[len(m.AssetExpressionValidationResults)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ArchiveRuleResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Error = &s - iNdEx = postIndex + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ArchiveRuleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ArchiveRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -17757,7 +20222,7 @@ func (m *ValidationResult) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchUpdateRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *BatchArchiveRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17780,17 +20245,17 @@ func (m *BatchUpdateRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUpdateRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchArchiveRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUpdateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchArchiveRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -17800,31 +20265,29 @@ func (m *BatchUpdateRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &UpdateRuleRequest{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -17834,32 +20297,75 @@ func (m *BatchUpdateRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.ValidateOnly = bool(v != 0) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OverrideExpressionValidation", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientKeys = append(m.ClientKeys, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchArchiveRulesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - m.OverrideExpressionValidation = bool(v != 0) + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchArchiveRulesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchArchiveRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -17882,7 +20388,7 @@ func (m *BatchUpdateRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVT(dAtA []byte) error { +func (m *UndeleteRuleRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17905,10 +20411,10 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVT(dAtA []byte) erro fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: wiretype end group for non-group") + return fmt.Errorf("proto: UndeleteRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UndeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -17945,7 +20451,7 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVT(dAtA []byte) erro iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -17973,41 +20479,59 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVT(dAtA []byte) erro if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.ClientKey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UndeleteRuleResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.ClientKey = &s - iNdEx = postIndex + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UndeleteRuleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UndeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -18030,7 +20554,7 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVT(dAtA []byte) erro } return nil } -func (m *BatchUpdateRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *BatchUndeleteRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18053,37 +20577,17 @@ func (m *BatchUpdateRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUpdateRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUndeleteRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUpdateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUndeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Success = bool(v != 0) - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesCreatedCount", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } - m.RulesCreatedCount = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -18093,55 +20597,29 @@ func (m *BatchUpdateRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.RulesCreatedCount |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesUpdatedCount", wireType) - } - m.RulesUpdatedCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RulesUpdatedCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if postIndex > l { + return io.ErrUnexpectedEOF } - m.ValidateOnly = bool(v != 0) - case 5: + m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidationResults", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -18151,60 +20629,75 @@ func (m *BatchUpdateRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.ValidationResults = append(m.ValidationResults, &ValidationResult{}) - if err := m.ValidationResults[len(m.ValidationResults)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.ClientKeys = append(m.ClientKeys, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedRuleIdentifiers", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - if msglen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchUndeleteRulesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.CreatedRuleIdentifiers = append(m.CreatedRuleIdentifiers, &BatchUpdateRulesResponse_RuleIdentifiers{}) - if err := m.CreatedRuleIdentifiers[len(m.CreatedRuleIdentifiers)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchUndeleteRulesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchUndeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -18227,7 +20720,7 @@ func (m *BatchUpdateRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *DeleteRuleRequest) UnmarshalVT(dAtA []byte) error { +func (m *UnarchiveRuleRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18250,10 +20743,10 @@ func (m *DeleteRuleRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DeleteRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UnarchiveRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnarchiveRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -18342,7 +20835,7 @@ func (m *DeleteRuleRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *DeleteRuleResponse) UnmarshalVT(dAtA []byte) error { +func (m *UnarchiveRuleResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18365,10 +20858,10 @@ func (m *DeleteRuleResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DeleteRuleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UnarchiveRuleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnarchiveRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -18393,7 +20886,7 @@ func (m *DeleteRuleResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchDeleteRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *BatchUnarchiveRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18416,10 +20909,10 @@ func (m *BatchDeleteRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -18508,7 +21001,7 @@ func (m *BatchDeleteRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchDeleteRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *BatchUnarchiveRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18531,10 +21024,10 @@ func (m *BatchDeleteRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -18559,7 +21052,7 @@ func (m *BatchDeleteRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UndeleteRuleRequest) UnmarshalVT(dAtA []byte) error { +func (m *ViewHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18582,47 +21075,15 @@ func (m *UndeleteRuleRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UndeleteRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ViewHumanFriendlyRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UndeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ViewHumanFriendlyRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -18650,7 +21111,7 @@ func (m *UndeleteRuleRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ClientKey = string(dAtA[iNdEx:postIndex]) + m.AssetId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -18674,7 +21135,7 @@ func (m *UndeleteRuleRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UndeleteRuleResponse) UnmarshalVT(dAtA []byte) error { +func (m *ViewHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18697,12 +21158,44 @@ func (m *UndeleteRuleResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UndeleteRuleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ViewHumanFriendlyRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UndeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ViewHumanFriendlyRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesJson", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RulesJson = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -18725,7 +21218,7 @@ func (m *UndeleteRuleResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchUndeleteRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *UpdateHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18748,15 +21241,15 @@ func (m *BatchUndeleteRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUndeleteRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateHumanFriendlyRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUndeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateHumanFriendlyRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -18784,11 +21277,11 @@ func (m *BatchUndeleteRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) + m.AssetId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RulesJson", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -18816,7 +21309,39 @@ func (m *BatchUndeleteRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ClientKeys = append(m.ClientKeys, string(dAtA[iNdEx:postIndex])) + m.RulesJson = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -18840,7 +21365,7 @@ func (m *BatchUndeleteRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchUndeleteRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *UpdateHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18863,12 +21388,83 @@ func (m *BatchUndeleteRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUndeleteRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateHumanFriendlyRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUndeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateHumanFriendlyRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = bool(v != 0) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesCount", wireType) + } + m.RulesCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RulesCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Messages = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -18891,7 +21487,7 @@ func (m *BatchUndeleteRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ViewHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *ViewJsonRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18914,10 +21510,10 @@ func (m *ViewHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ViewHumanFriendlyRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ViewJsonRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ViewHumanFriendlyRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ViewJsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -18974,7 +21570,7 @@ func (m *ViewHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ViewHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *ViewJsonRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18997,10 +21593,10 @@ func (m *ViewHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ViewHumanFriendlyRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ViewJsonRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ViewHumanFriendlyRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ViewJsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -19057,7 +21653,7 @@ func (m *ViewHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *JsonRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19080,10 +21676,10 @@ func (m *UpdateHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateHumanFriendlyRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: JsonRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateHumanFriendlyRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: JsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -19204,7 +21800,7 @@ func (m *UpdateHumanFriendlyRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19227,10 +21823,10 @@ func (m *UpdateHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateHumanFriendlyRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: JsonRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateHumanFriendlyRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: JsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -19255,9 +21851,9 @@ func (m *UpdateHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { m.Success = bool(v != 0) case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesCount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TotalRulesCount", wireType) } - m.RulesCount = 0 + m.TotalRulesCount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19267,14 +21863,71 @@ func (m *UpdateHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.RulesCount |= int32(b&0x7F) << shift + m.TotalRulesCount |= int32(b&0x7F) << shift if b < 0x80 { break } } case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesCreatedCount", wireType) + } + m.RulesCreatedCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RulesCreatedCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesUpdatedCount", wireType) + } + m.RulesUpdatedCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RulesUpdatedCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesDeletedCount", wireType) + } + m.RulesDeletedCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RulesDeletedCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessages", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -19302,7 +21955,8 @@ func (m *UpdateHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Messages = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.ErrorMessages = &s iNdEx = postIndex default: iNdEx = preIndex @@ -19326,7 +21980,7 @@ func (m *UpdateHumanFriendlyRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ViewJsonRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *ValidateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19349,17 +22003,17 @@ func (m *ViewJsonRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ViewJsonRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ValidateJsonRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ViewJsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ValidateJsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19369,23 +22023,27 @@ func (m *ViewJsonRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetId = string(dAtA[iNdEx:postIndex]) + if m.Request == nil { + m.Request = &JsonRulesRequest{} + } + if err := m.Request.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -19409,7 +22067,7 @@ func (m *ViewJsonRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ViewJsonRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *ValidateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19432,17 +22090,17 @@ func (m *ViewJsonRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ViewJsonRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ValidateJsonRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ViewJsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ValidateJsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesJson", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19452,23 +22110,27 @@ func (m *ViewJsonRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.RulesJson = string(dAtA[iNdEx:postIndex]) + if m.Response == nil { + m.Response = &JsonRulesResponse{} + } + if err := m.Response.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -19492,7 +22154,7 @@ func (m *ViewJsonRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *JsonRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *UpdateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19515,17 +22177,17 @@ func (m *JsonRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: JsonRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateJsonRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: JsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateJsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19535,61 +22197,84 @@ func (m *JsonRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.AssetId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesJson", wireType) + if m.Request == nil { + m.Request = &JsonRulesRequest{} } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + if err := m.Request.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.RulesJson = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateJsonRulesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateJsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19599,23 +22284,27 @@ func (m *JsonRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + if m.Response == nil { + m.Response = &JsonRulesResponse{} + } + if err := m.Response.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -19639,7 +22328,7 @@ func (m *JsonRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *ListRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19662,17 +22351,17 @@ func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: JsonRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: JsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) } - var v int + m.PageSize = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19682,17 +22371,16 @@ func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.PageSize |= uint32(b&0x7F) << shift if b < 0x80 { break } } - m.Success = bool(v != 0) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalRulesCount", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } - m.TotalRulesCount = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19702,35 +22390,29 @@ func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.TotalRulesCount |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesCreatedCount", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.RulesCreatedCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RulesCreatedCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesUpdatedCount", wireType) + if postIndex > l { + return io.ErrUnexpectedEOF } - m.RulesUpdatedCount = 0 + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19740,33 +22422,27 @@ func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.RulesUpdatedCount |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesDeletedCount", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.RulesDeletedCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RulesDeletedCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - case 6: + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessages", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -19794,8 +22470,7 @@ func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.ErrorMessages = &s + m.OrderBy = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -19819,7 +22494,7 @@ func (m *JsonRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ValidateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *ListRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19842,15 +22517,15 @@ func (m *ValidateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ValidateJsonRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ListRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ValidateJsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -19877,13 +22552,43 @@ func (m *ValidateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Request == nil { - m.Request = &JsonRulesRequest{} - } - if err := m.Request.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Rules = append(m.Rules, &Rule{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -19906,7 +22611,7 @@ func (m *ValidateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ValidateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *ListRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -19929,17 +22634,17 @@ func (m *ValidateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ValidateJsonRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListRuleVersionsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ValidateJsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListRuleVersionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -19949,84 +22654,80 @@ func (m *ValidateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Response == nil { - m.Response = &JsonRulesResponse{} + m.RuleId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) } - if err := m.Response.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UpdateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UpdateJsonRulesRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateJsonRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20036,27 +22737,23 @@ func (m *UpdateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Request == nil { - m.Request = &JsonRulesRequest{} - } - if err := m.Request.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Filter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -20080,7 +22777,7 @@ func (m *UpdateJsonRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20103,15 +22800,111 @@ func (m *UpdateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateJsonRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: RuleVersion: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateJsonRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RuleVersion: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -20138,69 +22931,50 @@ func (m *UpdateJsonRulesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Response == nil { - m.Response = &JsonRulesResponse{} + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} } - if err := m.Response.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ListRulesRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ListRulesRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ListRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VersionNotes", wireType) } - m.PageSize = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20210,14 +22984,27 @@ func (m *ListRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 2: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VersionNotes = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field GeneratedChangeMessage", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20245,13 +23032,49 @@ func (m *ListRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) + m.GeneratedChangeMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DeletedDate == nil { + m.DeletedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20261,29 +23084,33 @@ func (m *ListRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Filter = string(dAtA[iNdEx:postIndex]) + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20293,24 +23120,12 @@ func (m *ListRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OrderBy = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -20333,7 +23148,7 @@ func (m *ListRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListRulesResponse) UnmarshalVT(dAtA []byte) error { +func (m *ListRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20356,15 +23171,15 @@ func (m *ListRulesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListRuleVersionsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListRuleVersionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -20391,8 +23206,8 @@ func (m *ListRulesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &Rule{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.RuleVersions = append(m.RuleVersions, &RuleVersion{}) + if err := m.RuleVersions[len(m.RuleVersions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -20450,7 +23265,7 @@ func (m *ListRulesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { +func (m *GetRuleVersionRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20473,15 +23288,15 @@ func (m *ListRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListRuleVersionsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: GetRuleVersionRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListRuleVersionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetRuleVersionRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20509,64 +23324,64 @@ func (m *ListRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleId = string(dAtA[iNdEx:postIndex]) + m.RuleVersionId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) - } - m.PageSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetRuleVersionResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetRuleVersionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetRuleVersionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20576,23 +23391,27 @@ func (m *ListRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Filter = string(dAtA[iNdEx:postIndex]) + if m.Rule == nil { + m.Rule = &Rule{} + } + if err := m.Rule.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -20616,7 +23435,7 @@ func (m *ListRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { +func (m *BatchGetRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20639,15 +23458,15 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleVersion: wiretype end group for non-group") + return fmt.Errorf("proto: BatchGetRuleVersionsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleVersion: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchGetRuleVersionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20675,45 +23494,64 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleId = string(dAtA[iNdEx:postIndex]) + m.RuleVersionIds = append(m.RuleVersionIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchGetRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.RuleVersionId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchGetRuleVersionsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchGetRuleVersionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20723,27 +23561,80 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Version = string(dAtA[iNdEx:postIndex]) + m.Rules = append(m.Rules, &Rule{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RuleConditionExpression) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RuleConditionExpression: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RuleConditionExpression: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SingleChannelComparison", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -20770,18 +23661,23 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if oneof, ok := m.Expression.(*RuleConditionExpression_SingleChannelComparison); ok { + if err := oneof.SingleChannelComparison.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &SingleChannelComparisonExpression{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &RuleConditionExpression_SingleChannelComparison{SingleChannelComparison: v} } iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CalculatedChannel", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20791,27 +23687,87 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + if oneof, ok := m.Expression.(*RuleConditionExpression_CalculatedChannel); ok { + if err := oneof.CalculatedChannel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &CalculatedChannelConfig{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &RuleConditionExpression_CalculatedChannel{CalculatedChannel: v} + } iNdEx = postIndex - case 6: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SingleChannelComparisonExpression: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SingleChannelComparisonExpression: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VersionNotes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChannelComponent", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20839,11 +23795,11 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.VersionNotes = string(dAtA[iNdEx:postIndex]) + m.ChannelComponent = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GeneratedChangeMessage", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChannelName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20871,13 +23827,13 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.GeneratedChangeMessage = string(dAtA[iNdEx:postIndex]) + m.ChannelName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Comparator", wireType) } - var msglen int + m.Comparator = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20887,84 +23843,27 @@ func (m *RuleVersion) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Comparator |= ConditionComparator(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DeletedDate == nil { - m.DeletedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ListRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + case 4: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Double", wireType) } - if iNdEx >= l { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ListRuleVersionsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ListRuleVersionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Threshold = &SingleChannelComparisonExpression_Double{Double: float64(math.Float64frombits(v))} + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -20974,31 +23873,29 @@ func (m *ListRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleVersions = append(m.RuleVersions, &RuleVersion{}) - if err := m.RuleVersions[len(m.RuleVersions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Threshold = &SingleChannelComparisonExpression_String_{String_: string(dAtA[iNdEx:postIndex])} iNdEx = postIndex - case 2: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastValue", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -21008,23 +23905,32 @@ func (m *ListRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.NextPageToken = string(dAtA[iNdEx:postIndex]) + if oneof, ok := m.Threshold.(*SingleChannelComparisonExpression_LastValue); ok { + if err := oneof.LastValue.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &LastValueThreshold{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Threshold = &SingleChannelComparisonExpression_LastValue{LastValue: v} + } iNdEx = postIndex default: iNdEx = preIndex @@ -21048,7 +23954,7 @@ func (m *ListRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetRuleVersionRequest) UnmarshalVT(dAtA []byte) error { +func (m *LastValueThreshold) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -21071,44 +23977,12 @@ func (m *GetRuleVersionRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetRuleVersionRequest: wiretype end group for non-group") + return fmt.Errorf("proto: LastValueThreshold: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetRuleVersionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: LastValueThreshold: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RuleVersionId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -21131,7 +24005,7 @@ func (m *GetRuleVersionRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *GetRuleVersionResponse) UnmarshalVT(dAtA []byte) error { +func (m *CalculatedChannelConfig) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -21154,15 +24028,15 @@ func (m *GetRuleVersionResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetRuleVersionResponse: wiretype end group for non-group") + return fmt.Errorf("proto: CalculatedChannelConfig: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetRuleVersionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CalculatedChannelConfig: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChannelReferences", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -21189,11 +24063,178 @@ func (m *GetRuleVersionResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Rule == nil { - m.Rule = &Rule{} + if m.ChannelReferences == nil { + m.ChannelReferences = make(map[string]*ChannelReference) } - if err := m.Rule.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + var mapkey string + var mapvalue *ChannelReference + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return protohelpers.ErrInvalidLength + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return protohelpers.ErrInvalidLength + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return protohelpers.ErrInvalidLength + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &ChannelReference{} + if err := mapvalue.UnmarshalVT(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.ChannelReferences[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Expression = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FunctionDependencies", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FunctionDependencies = append(m.FunctionDependencies, &v11.FunctionDependency{}) + if unmarshal, ok := interface{}(m.FunctionDependencies[len(m.FunctionDependencies)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.FunctionDependencies[len(m.FunctionDependencies)-1]); err != nil { + return err + } } iNdEx = postIndex default: @@ -21218,7 +24259,7 @@ func (m *GetRuleVersionResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *BatchGetRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { +func (m *ChannelReference) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -21241,15 +24282,15 @@ func (m *BatchGetRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchGetRuleVersionsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ChannelReference: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchGetRuleVersionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ChannelReference: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -21277,64 +24318,13 @@ func (m *BatchGetRuleVersionsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleVersionIds = append(m.RuleVersionIds, string(dAtA[iNdEx:postIndex])) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BatchGetRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BatchGetRuleVersionsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BatchGetRuleVersionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Component", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -21344,25 +24334,23 @@ func (m *BatchGetRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &Rule{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Component = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -21386,7 +24374,7 @@ func (m *BatchGetRuleVersionsResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RuleConditionExpression) UnmarshalVT(dAtA []byte) error { +func (m *RuleActionConfiguration) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -21409,15 +24397,15 @@ func (m *RuleConditionExpression) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleConditionExpression: wiretype end group for non-group") + return fmt.Errorf("proto: RuleActionConfiguration: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleConditionExpression: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RuleActionConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SingleChannelComparison", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Notification", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -21444,21 +24432,21 @@ func (m *RuleConditionExpression) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Expression.(*RuleConditionExpression_SingleChannelComparison); ok { - if err := oneof.SingleChannelComparison.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if oneof, ok := m.Configuration.(*RuleActionConfiguration_Notification); ok { + if err := oneof.Notification.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - v := &SingleChannelComparisonExpression{} + v := &NotificationActionConfiguration{} if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Expression = &RuleConditionExpression_SingleChannelComparison{SingleChannelComparison: v} + m.Configuration = &RuleActionConfiguration_Notification{Notification: v} } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CalculatedChannel", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -21485,16 +24473,16 @@ func (m *RuleConditionExpression) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Expression.(*RuleConditionExpression_CalculatedChannel); ok { - if err := oneof.CalculatedChannel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if oneof, ok := m.Configuration.(*RuleActionConfiguration_Annotation); ok { + if err := oneof.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - v := &CalculatedChannelConfig{} + v := &AnnotationActionConfiguration{} if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Expression = &RuleConditionExpression_CalculatedChannel{CalculatedChannel: v} + m.Configuration = &RuleActionConfiguration_Annotation{Annotation: v} } iNdEx = postIndex default: @@ -21519,7 +24507,7 @@ func (m *RuleConditionExpression) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { +func (m *NotificationActionConfiguration) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -21542,15 +24530,15 @@ func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SingleChannelComparisonExpression: wiretype end group for non-group") + return fmt.Errorf("proto: NotificationActionConfiguration: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SingleChannelComparisonExpression: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NotificationActionConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelComponent", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RecipientUserIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -21578,11 +24566,62 @@ func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ChannelComponent = string(dAtA[iNdEx:postIndex]) + m.RecipientUserIds = append(m.RecipientUserIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationActionConfiguration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationActionConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -21610,13 +24649,13 @@ func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ChannelName = string(dAtA[iNdEx:postIndex]) + m.TagIds = append(m.TagIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 3: + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Comparator", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) } - m.Comparator = 0 + m.AnnotationType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -21626,25 +24665,14 @@ func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Comparator |= ConditionComparator(b&0x7F) << shift + m.AnnotationType |= v12.AnnotationType(b&0x7F) << shift if b < 0x80 { break } } - case 4: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Double", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) - iNdEx += 8 - m.Threshold = &SingleChannelComparisonExpression_Double{Double: float64(math.Float64frombits(v))} - case 5: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUserId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -21672,11 +24700,12 @@ func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Threshold = &SingleChannelComparisonExpression_String_{String_: string(dAtA[iNdEx:postIndex])} + s := string(dAtA[iNdEx:postIndex]) + m.AssignedToUserId = &s iNdEx = postIndex - case 6: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastValue", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -21698,74 +24727,24 @@ func (m *SingleChannelComparisonExpression) UnmarshalVT(dAtA []byte) error { } postIndex := iNdEx + msglen if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Threshold.(*SingleChannelComparisonExpression_LastValue); ok { - if err := oneof.LastValue.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &LastValueThreshold{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Threshold = &SingleChannelComparisonExpression_LastValue{LastValue: v} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *LastValueThreshold) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: LastValueThreshold: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: LastValueThreshold: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -21788,7 +24767,7 @@ func (m *LastValueThreshold) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CalculatedChannelConfig) UnmarshalVT(dAtA []byte) error { +func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -21811,15 +24790,47 @@ func (m *CalculatedChannelConfig) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CalculatedChannelConfig: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CalculatedChannelConfig: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChannelReferences", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationOptions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -21846,109 +24857,16 @@ func (m *CalculatedChannelConfig) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ChannelReferences == nil { - m.ChannelReferences = make(map[string]*ChannelReference) + if m.AnnotationOptions == nil { + m.AnnotationOptions = &EvaluatedAnnotationOptions{} } - var mapkey string - var mapvalue *ChannelReference - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return protohelpers.ErrInvalidLength - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return protohelpers.ErrInvalidLength - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return protohelpers.ErrInvalidLength - } - postmsgIndex := iNdEx + mapmsglen - if postmsgIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue = &ChannelReference{} - if err := mapvalue.UnmarshalVT(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - } else { - iNdEx = entryPreIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } + if err := m.AnnotationOptions.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.ChannelReferences[mapkey] = mapvalue iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -21976,11 +24894,11 @@ func (m *CalculatedChannelConfig) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Expression = string(dAtA[iNdEx:postIndex]) + m.Time = &EvaluateRulesRequest_RunId{RunId: string(dAtA[iNdEx:postIndex])} iNdEx = postIndex - case 3: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FunctionDependencies", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TimeRange", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -22007,19 +24925,38 @@ func (m *CalculatedChannelConfig) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FunctionDependencies = append(m.FunctionDependencies, &v11.FunctionDependency{}) - if unmarshal, ok := interface{}(m.FunctionDependencies[len(m.FunctionDependencies)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if oneof, ok := m.Time.(*EvaluateRulesRequest_TimeRange); ok { + if err := oneof.TimeRange.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.FunctionDependencies[len(m.FunctionDependencies)-1]); err != nil { + v := &TimeRangeQuery{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Time = &EvaluateRulesRequest_TimeRange{TimeRange: v} } iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DryRun = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -22042,7 +24979,7 @@ func (m *CalculatedChannelConfig) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ChannelReference) UnmarshalVT(dAtA []byte) error { +func (m *EvaluatedAnnotationOptions) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -22058,54 +24995,22 @@ func (m *ChannelReference) UnmarshalVT(dAtA []byte) error { b := dAtA[iNdEx] iNdEx++ wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ChannelReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ChannelReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF + if b < 0x80 { + break } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvaluatedAnnotationOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvaluatedAnnotationOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Component", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22133,7 +25038,7 @@ func (m *ChannelReference) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Component = string(dAtA[iNdEx:postIndex]) + m.TagIds = append(m.TagIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -22157,7 +25062,7 @@ func (m *ChannelReference) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RuleActionConfiguration) UnmarshalVT(dAtA []byte) error { +func (m *TimeRangeQuery) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -22180,15 +25085,15 @@ func (m *RuleActionConfiguration) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleActionConfiguration: wiretype end group for non-group") + return fmt.Errorf("proto: TimeRangeQuery: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleActionConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TimeRangeQuery: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Notification", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -22215,21 +25120,16 @@ func (m *RuleActionConfiguration) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Configuration.(*RuleActionConfiguration_Notification); ok { - if err := oneof.Notification.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &NotificationActionConfiguration{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Configuration = &RuleActionConfiguration_Notification{Notification: v} + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -22256,16 +25156,11 @@ func (m *RuleActionConfiguration) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Configuration.(*RuleActionConfiguration_Annotation); ok { - if err := oneof.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &AnnotationActionConfiguration{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Configuration = &RuleActionConfiguration_Annotation{Annotation: v} + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -22290,7 +25185,7 @@ func (m *RuleActionConfiguration) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *NotificationActionConfiguration) UnmarshalVT(dAtA []byte) error { +func (m *EvaluateRulesResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -22313,15 +25208,68 @@ func (m *NotificationActionConfiguration) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NotificationActionConfiguration: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NotificationActionConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) + } + m.CreatedAnnotationCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CreatedAnnotationCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RecipientUserIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DryRunAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DryRunAnnotations = append(m.DryRunAnnotations, &DryRunAnnotation{}) + if err := m.DryRunAnnotations[len(m.DryRunAnnotations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22349,7 +25297,41 @@ func (m *NotificationActionConfiguration) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RecipientUserIds = append(m.RecipientUserIds, string(dAtA[iNdEx:postIndex])) + s := string(dAtA[iNdEx:postIndex]) + m.JobId = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ReportId = &s iNdEx = postIndex default: iNdEx = preIndex @@ -22373,7 +25355,7 @@ func (m *NotificationActionConfiguration) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { +func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -22396,15 +25378,15 @@ func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnnotationActionConfiguration: wiretype end group for non-group") + return fmt.Errorf("proto: DryRunAnnotation: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnnotationActionConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DryRunAnnotation: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ConditionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22432,13 +25414,13 @@ func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TagIds = append(m.TagIds, string(dAtA[iNdEx:postIndex])) + m.ConditionId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationType", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - m.AnnotationType = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -22448,16 +25430,29 @@ func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.AnnotationType |= v12.AnnotationType(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssignedToUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -22467,28 +25462,31 @@ func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.AssignedToUserId = &s + if m.StartTime == nil { + m.StartTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -22515,18 +25513,44 @@ func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if m.EndTime == nil { + m.EndTime = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConditionVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConditionVersionId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -22550,7 +25574,7 @@ func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -22573,15 +25597,15 @@ func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: Rule: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22609,13 +25633,17 @@ func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RuleId = stringValue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationOptions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -22625,31 +25653,31 @@ func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.AnnotationOptions == nil { - m.AnnotationOptions = &EvaluatedAnnotationOptions{} - } - if err := m.AnnotationOptions.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.AssetId = stringValue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22677,13 +25705,17 @@ func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Time = &EvaluateRulesRequest_RunId{RunId: string(dAtA[iNdEx:postIndex])} + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TimeRange", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -22693,36 +25725,31 @@ func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Time.(*EvaluateRulesRequest_TimeRange); ok { - if err := oneof.TimeRange.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &TimeRangeQuery{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Time = &EvaluateRulesRequest_TimeRange{TimeRange: v} + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.Description = stringValue iNdEx = postIndex - case 5: + case 6: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DryRun", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -22739,61 +25766,82 @@ func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { break } } - m.DryRun = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + m.IsEnabled = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return protohelpers.ErrInvalidLength } - if (iNdEx + skippy) > l { + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { return io.ErrUnexpectedEOF } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluatedAnnotationOptions) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} } - if iNdEx >= l { + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluatedAnnotationOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluatedAnnotationOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22821,64 +25869,53 @@ func (m *EvaluatedAnnotationOptions) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TagIds = append(m.TagIds, string(dAtA[iNdEx:postIndex])) + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TimeRangeQuery) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TimeRangeQuery: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TimeRangeQuery: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -22888,31 +25925,31 @@ func (m *TimeRangeQuery) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.OrganizationId = stringValue iNdEx = postIndex - case 2: + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -22939,86 +25976,14 @@ func (m *TimeRangeQuery) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Conditions = append(m.Conditions, &RuleCondition{}) + if err := m.Conditions[len(m.Conditions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EvaluateRulesResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) - } - m.CreatedAnnotationCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CreatedAnnotationCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DryRunAnnotations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersion", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -23045,14 +26010,16 @@ func (m *EvaluateRulesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DryRunAnnotations = append(m.DryRunAnnotations, &DryRunAnnotation{}) - if err := m.DryRunAnnotations[len(m.DryRunAnnotations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if m.RuleVersion == nil { + m.RuleVersion = &RuleVersion{} + } + if err := m.RuleVersion.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23080,14 +26047,17 @@ func (m *EvaluateRulesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.JobId = &s + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ClientKey = stringValue iNdEx = postIndex - case 4: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23097,81 +26067,33 @@ func (m *EvaluateRulesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.ReportId = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.AssetConfiguration == nil { + m.AssetConfiguration = &RuleAssetConfiguration{} } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.AssetConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DryRunAnnotation: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DryRunAnnotation: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 16: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23181,29 +26103,33 @@ func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.ConditionId = string(dAtA[iNdEx:postIndex]) + if m.ContextualChannels == nil { + m.ContextualChannels = &ContextualChannels{} + } + if err := m.ContextualChannels.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 17: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23213,27 +26139,51 @@ func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: + if m.DeletedDate == nil { + m.DeletedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsExternal = bool(v != 0) + case 19: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -23260,16 +26210,22 @@ func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartTime == nil { - m.StartTime = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.StartTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } } iNdEx = postIndex - case 4: + case 20: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -23296,18 +26252,18 @@ func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndTime == nil { - m.EndTime = ×tamppb.Timestamp{} + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} } - if err := (*timestamppb1.Timestamp)(m.EndTime).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConditionVersionId", wireType) + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23317,24 +26273,12 @@ func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ConditionVersionId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -23357,7 +26301,7 @@ func (m *DryRunAnnotation) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -23380,15 +26324,15 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Rule: wiretype end group for non-group") + return fmt.Errorf("proto: RuleCondition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RuleCondition: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23420,11 +26364,11 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleId = stringValue + m.RuleConditionId = stringValue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23456,13 +26400,13 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssetId = stringValue + m.RuleId = stringValue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23472,33 +26416,33 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.Expression == nil { + m.Expression = &RuleConditionExpression{} + } + if err := m.Expression.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Name = stringValue iNdEx = postIndex - case 4: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23508,33 +26452,33 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Description = stringValue iNdEx = postIndex case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23544,17 +26488,33 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.IsEnabled = bool(v != 0) + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23564,31 +26524,67 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.CreatedByUserId = stringValue iNdEx = postIndex case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -23615,16 +26611,14 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Actions = append(m.Actions, &RuleAction{}) + if err := m.Actions[len(m.Actions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 9: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionVersionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23656,11 +26650,62 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.CreatedByUserId = stringValue + m.RuleConditionVersionId = stringValue iNdEx = postIndex - case 10: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RuleAction: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RuleAction: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23692,11 +26737,11 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ModifiedByUserId = stringValue + m.RuleActionId = stringValue iNdEx = postIndex - case 11: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23728,13 +26773,13 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.OrganizationId = stringValue + m.RuleConditionId = stringValue iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) } - var msglen int + m.ActionType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23744,29 +26789,14 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.ActionType |= ActionKind(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, &RuleCondition{}) - if err := m.Conditions[len(m.Conditions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersion", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -23793,18 +26823,18 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.RuleVersion == nil { - m.RuleVersion = &RuleVersion{} + if m.Configuration == nil { + m.Configuration = &RuleActionConfiguration{} } - if err := m.RuleVersion.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Configuration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 14: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23814,31 +26844,31 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.ClientKey = stringValue iNdEx = postIndex - case 15: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -23865,18 +26895,18 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AssetConfiguration == nil { - m.AssetConfiguration = &RuleAssetConfiguration{} + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} } - if err := m.AssetConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 16: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23886,33 +26916,33 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.ContextualChannels == nil { - m.ContextualChannels = &ContextualChannels{} - } - if err := m.ContextualChannels.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.CreatedByUserId = stringValue iNdEx = postIndex - case 17: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23922,53 +26952,33 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.DeletedDate == nil { - m.DeletedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.ModifiedByUserId = stringValue iNdEx = postIndex - case 18: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IsExternal = bool(v != 0) - case 19: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleActionVersionId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -23978,33 +26988,27 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.RuleActionVersionId = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -24028,7 +27032,7 @@ func (m *Rule) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *RuleAssetConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24051,15 +27055,15 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleCondition: wiretype end group for non-group") + return fmt.Errorf("proto: RuleAssetConfiguration: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleCondition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RuleAssetConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24091,11 +27095,11 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleConditionId = stringValue + m.AssetIds = append(m.AssetIds, stringValue) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24127,47 +27131,62 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleId = stringValue + m.TagIds = append(m.TagIds, stringValue) iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.Expression == nil { - m.Expression = &RuleConditionExpression{} + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ContextualChannels) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if err := m.Expression.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 5: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContextualChannels: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContextualChannels: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -24194,52 +27213,65 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Channels = append(m.Channels, &ChannelReference{}) + if err := m.Channels[len(m.Channels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AssetExpressionValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 7: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetExpressionValidationResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetExpressionValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24271,11 +27303,11 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.CreatedByUserId = stringValue + m.AssetId = stringValue iNdEx = postIndex - case 8: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24307,13 +27339,13 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ModifiedByUserId = stringValue + m.AssetName = stringValue iNdEx = postIndex - case 9: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetTagId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -24323,29 +27355,31 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Actions = append(m.Actions, &RuleAction{}) - if err := m.Actions[len(m.Actions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.AssetTagId = stringValue iNdEx = postIndex - case 10: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24377,7 +27411,8 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleConditionVersionId = stringValue + s := stringValue + m.Error = &s iNdEx = postIndex default: iNdEx = preIndex @@ -24401,7 +27436,7 @@ func (m *RuleCondition) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24424,15 +27459,150 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleAction: wiretype end group for non-group") + return fmt.Errorf("proto: SearchRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleAction: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SearchRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Limit = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Offset", wireType) + } + m.Offset = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Offset |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + } + var v SearchOrder + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= SearchOrder(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Order = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NameMatches", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NameMatches = stringValue + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CaseSensitive", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CaseSensitive = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Regexp", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Regexp = bool(v != 0) + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24464,11 +27634,12 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleActionId = stringValue + s := stringValue + m.OrderBy = &s iNdEx = postIndex - case 2: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24500,32 +27671,13 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleConditionId = stringValue + m.RuleIds = append(m.RuleIds, stringValue) iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) - } - m.ActionType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ActionType |= ActionKind(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -24535,33 +27687,33 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Configuration == nil { - m.Configuration = &RuleActionConfiguration{} - } - if err := m.Configuration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.AssetIds = append(m.AssetIds, stringValue) iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeDeleted", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -24571,31 +27723,15 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: + m.IncludeDeleted = bool(v != 0) + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetTags", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -24622,54 +27758,77 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + if m.AssetTags == nil { + m.AssetTags = &v11.NamedResources{} } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if unmarshal, ok := interface{}(m.AssetTags).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssetTags); err != nil { + return err } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SearchRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - m.CreatedByUserId = stringValue - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + if iNdEx >= l { + return io.ErrUnexpectedEOF } - var stringLen uint64 + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SearchRulesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SearchRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -24679,33 +27838,16 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Count |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.ModifiedByUserId = stringValue - iNdEx = postIndex - case 9: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleActionVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -24715,27 +27857,25 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.Rules = append(m.Rules, &Rule{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.RuleActionVersionId = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -24759,7 +27899,7 @@ func (m *RuleAction) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *RuleAssetConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *GetRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24782,15 +27922,15 @@ func (m *RuleAssetConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RuleAssetConfiguration: wiretype end group for non-group") + return fmt.Errorf("proto: GetRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RuleAssetConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24822,11 +27962,11 @@ func (m *RuleAssetConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssetIds = append(m.AssetIds, stringValue) + m.RuleId = stringValue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TagIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24858,7 +27998,7 @@ func (m *RuleAssetConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.TagIds = append(m.TagIds, stringValue) + m.ClientKey = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -24882,7 +28022,7 @@ func (m *RuleAssetConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ContextualChannels) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *GetRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24905,15 +28045,15 @@ func (m *ContextualChannels) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ContextualChannels: wiretype end group for non-group") + return fmt.Errorf("proto: GetRuleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ContextualChannels: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -24940,8 +28080,10 @@ func (m *ContextualChannels) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Channels = append(m.Channels, &ChannelReference{}) - if err := m.Channels[len(m.Channels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if m.Rule == nil { + m.Rule = &Rule{} + } + if err := m.Rule.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -24967,7 +28109,7 @@ func (m *ContextualChannels) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *AssetExpressionValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchGetRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24990,15 +28132,15 @@ func (m *AssetExpressionValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AssetExpressionValidationResult: wiretype end group for non-group") + return fmt.Errorf("proto: BatchGetRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AssetExpressionValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchGetRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25030,11 +28172,11 @@ func (m *AssetExpressionValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssetId = stringValue + m.RuleIds = append(m.RuleIds, stringValue) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25066,49 +28208,64 @@ func (m *AssetExpressionValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssetName = stringValue + m.ClientKeys = append(m.ClientKeys, stringValue) iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetTagId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchGetRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - m.AssetTagId = stringValue - iNdEx = postIndex - case 4: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchGetRulesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchGetRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25118,28 +28275,25 @@ func (m *AssetExpressionValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.Rules = append(m.Rules, &Rule{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := stringValue - m.Error = &s iNdEx = postIndex default: iNdEx = preIndex @@ -25163,7 +28317,7 @@ func (m *AssetExpressionValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *CreateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25186,76 +28340,17 @@ func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SearchRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: CreateRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SearchRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Limit = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Offset", wireType) - } - m.Offset = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Offset |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) - } - var v SearchOrder - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= SearchOrder(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Order = &v - case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NameMatches", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Update", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25265,71 +28360,82 @@ func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.Update == nil { + m.Update = &UpdateRuleRequest{} + } + if err := m.Update.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.NameMatches = stringValue iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CaseSensitive", wireType) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength } - m.CaseSensitive = bool(v != 0) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Regexp", wireType) + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF } - m.Regexp = bool(v != 0) - case 7: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateRuleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25361,12 +28467,62 @@ func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.OrderBy = &s + m.RuleId = stringValue iNdEx = postIndex - case 8: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateRuleRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25398,11 +28554,12 @@ func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleIds = append(m.RuleIds, stringValue) + s := stringValue + m.RuleId = &s iNdEx = postIndex - case 9: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25434,13 +28591,13 @@ func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssetIds = append(m.AssetIds, stringValue) + m.Name = stringValue iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeDeleted", wireType) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25450,17 +28607,33 @@ func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.IncludeDeleted = bool(v != 0) - case 11: + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Description = stringValue + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetTags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25470,92 +28643,33 @@ func (m *SearchRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.AssetTags == nil { - m.AssetTags = &v11.NamedResources{} - } - if unmarshal, ok := interface{}(m.AssetTags).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AssetTags); err != nil { - return err - } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.AssetId = stringValue iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SearchRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SearchRulesResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SearchRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 5: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) } - m.Count = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25565,14 +28679,15 @@ func (m *SearchRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Count |= uint32(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - case 2: + m.IsEnabled = bool(v != 0) + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -25599,65 +28714,14 @@ func (m *SearchRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &Rule{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { + m.Conditions = append(m.Conditions, &UpdateConditionRequest{}) + if err := m.Conditions[len(m.Conditions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GetRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GetRuleRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GetRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25689,11 +28753,11 @@ func (m *GetRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleId = stringValue + m.OrganizationId = stringValue iNdEx = postIndex - case 2: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field VersionNotes", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25725,64 +28789,13 @@ func (m *GetRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ClientKey = stringValue + m.VersionNotes = stringValue iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GetRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GetRuleResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GetRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25792,84 +28805,34 @@ func (m *GetRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Rule == nil { - m.Rule = &Rule{} - } - if err := m.Rule.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + s := stringValue + m.ClientKey = &s iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BatchGetRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BatchGetRulesRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BatchGetRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25879,33 +28842,33 @@ func (m *BatchGetRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.AssetConfiguration == nil { + m.AssetConfiguration = &RuleAssetConfiguration{} + } + if err := m.AssetConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.RuleIds = append(m.RuleIds, stringValue) iNdEx = postIndex - case 2: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -25915,82 +28878,51 @@ func (m *BatchGetRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.ContextualChannels == nil { + m.ContextualChannels = &ContextualChannels{} } - m.ClientKeys = append(m.ClientKeys, stringValue) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { + if err := m.ContextualChannels.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BatchGetRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + iNdEx = postIndex + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BatchGetRulesResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BatchGetRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsExternal = bool(v != 0) + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -26017,11 +28949,39 @@ func (m *BatchGetRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &Rule{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } } iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -26044,7 +29004,7 @@ func (m *BatchGetRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *CreateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UpdateConditionRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26067,17 +29027,17 @@ func (m *CreateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateConditionRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateConditionRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Update", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26087,84 +29047,70 @@ func (m *CreateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Update == nil { - m.Update = &UpdateRuleRequest{} - } - if err := m.Update.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + s := stringValue + m.RuleConditionId = &s iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if msglen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CreateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.Expression == nil { + m.Expression = &RuleConditionExpression{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CreateRuleResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CreateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if err := m.Expression.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26174,27 +29120,25 @@ func (m *CreateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.Actions = append(m.Actions, &UpdateActionRequest{}) + if err := m.Actions[len(m.Actions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.RuleId = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -26218,7 +29162,7 @@ func (m *CreateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UpdateActionRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26241,15 +29185,15 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateActionRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateActionRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -26282,13 +29226,13 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } s := stringValue - m.RuleId = &s + m.RuleActionId = &s iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) } - var stringLen uint64 + m.ActionType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26298,33 +29242,16 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.ActionType |= ActionKind(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.Name = stringValue - iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26334,31 +29261,82 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.Configuration == nil { + m.Configuration = &RuleActionConfiguration{} + } + if err := m.Configuration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Description = stringValue iNdEx = postIndex - case 4: + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateRuleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -26390,33 +29368,64 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.AssetId = stringValue + m.RuleId = stringValue iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsEnabled", wireType) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength } - m.IsEnabled = bool(v != 0) - case 6: + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidationResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26426,29 +29435,31 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Conditions = append(m.Conditions, &UpdateConditionRequest{}) - if err := m.Conditions[len(m.Conditions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.RuleId = stringValue iNdEx = postIndex - case 7: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -26480,13 +29491,13 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.OrganizationId = stringValue + m.ClientKey = stringValue iNdEx = postIndex - case 8: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VersionNotes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetExpressionValidationResults", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26496,31 +29507,29 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.AssetExpressionValidationResults = append(m.AssetExpressionValidationResults, &AssetExpressionValidationResult{}) + if err := m.AssetExpressionValidationResults[len(m.AssetExpressionValidationResults)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.VersionNotes = stringValue iNdEx = postIndex - case 9: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -26553,47 +29562,62 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } s := stringValue - m.ClientKey = &s + m.Error = &s iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetConfiguration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.AssetConfiguration == nil { - m.AssetConfiguration = &RuleAssetConfiguration{} + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchUpdateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if err := m.AssetConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 11: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchUpdateRulesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchUpdateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContextualChannels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -26620,16 +29644,14 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ContextualChannels == nil { - m.ContextualChannels = &ContextualChannels{} - } - if err := m.ContextualChannels.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Rules = append(m.Rules, &UpdateRuleRequest{}) + if err := m.Rules[len(m.Rules)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 12: + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -26646,12 +29668,12 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { break } } - m.IsExternal = bool(v != 0) - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + m.ValidateOnly = bool(v != 0) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OverrideExpressionValidation", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26661,34 +29683,12 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVTUnsafe([]byte) error - }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err + break } } - iNdEx = postIndex + m.OverrideExpressionValidation = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -26711,7 +29711,7 @@ func (m *UpdateRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UpdateConditionRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26734,15 +29734,15 @@ func (m *UpdateConditionRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateConditionRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateConditionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleConditionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -26774,14 +29774,13 @@ func (m *UpdateConditionRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.RuleConditionId = &s + m.RuleId = stringValue iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26791,33 +29790,33 @@ func (m *UpdateConditionRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Expression == nil { - m.Expression = &RuleConditionExpression{} - } - if err := m.Expression.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.Name = stringValue iNdEx = postIndex - case 4: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26827,25 +29826,28 @@ func (m *UpdateConditionRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Actions = append(m.Actions, &UpdateActionRequest{}) - if err := m.Actions[len(m.Actions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + s := stringValue + m.ClientKey = &s iNdEx = postIndex default: iNdEx = preIndex @@ -26869,7 +29871,7 @@ func (m *UpdateConditionRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UpdateActionRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUpdateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26892,17 +29894,17 @@ func (m *UpdateActionRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateActionRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUpdateRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateActionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUpdateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleActionId", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26912,34 +29914,55 @@ func (m *UpdateActionRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + m.Success = bool(v != 0) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesCreatedCount", wireType) } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + m.RulesCreatedCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RulesCreatedCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } } - if postIndex > l { - return io.ErrUnexpectedEOF + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RulesUpdatedCount", wireType) } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.RulesUpdatedCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RulesUpdatedCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } } - s := stringValue - m.RuleActionId = &s - iNdEx = postIndex - case 2: + case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ActionType", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) } - m.ActionType = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -26949,14 +29972,15 @@ func (m *UpdateActionRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ActionType |= ActionKind(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - case 3: + m.ValidateOnly = bool(v != 0) + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Configuration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ValidationResults", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -26983,10 +30007,42 @@ func (m *UpdateActionRequest) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Configuration == nil { - m.Configuration = &RuleActionConfiguration{} + m.ValidationResults = append(m.ValidationResults, &ValidationResult{}) + if err := m.ValidationResults[len(m.ValidationResults)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - if err := m.Configuration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedRuleIdentifiers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedRuleIdentifiers = append(m.CreatedRuleIdentifiers, &BatchUpdateRulesResponse_RuleIdentifiers{}) + if err := m.CreatedRuleIdentifiers[len(m.CreatedRuleIdentifiers)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27012,7 +30068,7 @@ func (m *UpdateActionRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UpdateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *DeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27035,10 +30091,10 @@ func (m *UpdateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateRuleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: DeleteRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -27077,6 +30133,93 @@ func (m *UpdateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { } m.RuleId = stringValue iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ClientKey = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeleteRuleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -27099,7 +30242,7 @@ func (m *UpdateRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchDeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27122,15 +30265,15 @@ func (m *ValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ValidationResult: wiretype end group for non-group") + return fmt.Errorf("proto: BatchDeleteRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ValidationResult: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchDeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -27162,11 +30305,11 @@ func (m *ValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleId = stringValue + m.RuleIds = append(m.RuleIds, stringValue) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -27198,79 +30341,59 @@ func (m *ValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ClientKey = stringValue + m.ClientKeys = append(m.ClientKeys, stringValue) iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetExpressionValidationResults", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.AssetExpressionValidationResults = append(m.AssetExpressionValidationResults, &AssetExpressionValidationResult{}) - if err := m.AssetExpressionValidationResults[len(m.AssetExpressionValidationResults)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchDeleteRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - s := stringValue - m.Error = &s - iNdEx = postIndex + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchDeleteRulesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchDeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -27293,7 +30416,7 @@ func (m *ValidationResult) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchUpdateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ArchiveRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27316,17 +30439,17 @@ func (m *BatchUpdateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUpdateRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ArchiveRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUpdateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ArchiveRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -27336,31 +30459,33 @@ func (m *BatchUpdateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, &UpdateRuleRequest{}) - if err := m.Rules[len(m.Rules)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.RuleId = stringValue iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -27370,32 +30495,28 @@ func (m *BatchUpdateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.ValidateOnly = bool(v != 0) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OverrideExpressionValidation", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - m.OverrideExpressionValidation = bool(v != 0) + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ClientKey = stringValue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -27418,7 +30539,7 @@ func (m *BatchUpdateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ArchiveRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27441,51 +30562,66 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVTUnsafe(dAtA []byte fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: wiretype end group for non-group") + return fmt.Errorf("proto: ArchiveRuleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUpdateRulesResponse_RuleIdentifiers: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ArchiveRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchArchiveRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - m.RuleId = stringValue - iNdEx = postIndex - case 2: + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchArchiveRulesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchArchiveRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -27517,11 +30653,11 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVTUnsafe(dAtA []byte if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.Name = stringValue + m.RuleIds = append(m.RuleIds, stringValue) iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -27553,8 +30689,7 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVTUnsafe(dAtA []byte if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - s := stringValue - m.ClientKey = &s + m.ClientKeys = append(m.ClientKeys, stringValue) iNdEx = postIndex default: iNdEx = preIndex @@ -27578,7 +30713,7 @@ func (m *BatchUpdateRulesResponse_RuleIdentifiers) UnmarshalVTUnsafe(dAtA []byte } return nil } -func (m *BatchUpdateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchArchiveRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27601,158 +30736,12 @@ func (m *BatchUpdateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUpdateRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchArchiveRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUpdateRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchArchiveRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Success = bool(v != 0) - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesCreatedCount", wireType) - } - m.RulesCreatedCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RulesCreatedCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RulesUpdatedCount", wireType) - } - m.RulesUpdatedCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RulesUpdatedCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidateOnly", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ValidateOnly = bool(v != 0) - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidationResults", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ValidationResults = append(m.ValidationResults, &ValidationResult{}) - if err := m.ValidationResults[len(m.ValidationResults)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedRuleIdentifiers", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CreatedRuleIdentifiers = append(m.CreatedRuleIdentifiers, &BatchUpdateRulesResponse_RuleIdentifiers{}) - if err := m.CreatedRuleIdentifiers[len(m.CreatedRuleIdentifiers)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -27775,7 +30764,7 @@ func (m *BatchUpdateRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *DeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UndeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27798,10 +30787,10 @@ func (m *DeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DeleteRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UndeleteRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UndeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -27898,7 +30887,7 @@ func (m *DeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *DeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UndeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27921,10 +30910,10 @@ func (m *DeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DeleteRuleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UndeleteRuleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UndeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -27949,7 +30938,7 @@ func (m *DeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchDeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUndeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27972,10 +30961,10 @@ func (m *BatchDeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUndeleteRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUndeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -28072,7 +31061,7 @@ func (m *BatchDeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchDeleteRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUndeleteRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28095,10 +31084,10 @@ func (m *BatchDeleteRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchDeleteRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUndeleteRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchDeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUndeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -28123,7 +31112,7 @@ func (m *BatchDeleteRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UndeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UnarchiveRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28146,10 +31135,10 @@ func (m *UndeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UndeleteRuleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: UnarchiveRuleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UndeleteRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnarchiveRuleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -28246,7 +31235,7 @@ func (m *UndeleteRuleRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *UndeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UnarchiveRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28269,10 +31258,10 @@ func (m *UndeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UndeleteRuleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: UnarchiveRuleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UndeleteRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnarchiveRuleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -28297,7 +31286,7 @@ func (m *UndeleteRuleResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchUndeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUnarchiveRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28320,10 +31309,10 @@ func (m *BatchUndeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUndeleteRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUndeleteRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -28420,7 +31409,7 @@ func (m *BatchUndeleteRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *BatchUndeleteRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *BatchUnarchiveRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28443,10 +31432,10 @@ func (m *BatchUndeleteRulesResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BatchUndeleteRulesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BatchUnarchiveRulesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BatchUndeleteRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BatchUnarchiveRulesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -30589,6 +33578,62 @@ func (m *RuleVersion) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/runs/v2/runs.pb.go b/go/gen/sift/runs/v2/runs.pb.go index 788d301e4..f1f4964e6 100644 --- a/go/gen/sift/runs/v2/runs.pb.go +++ b/go/gen/sift/runs/v2/runs.pb.go @@ -7,11 +7,13 @@ package runsv2 import ( + _ "github.com/sift-stack/sift/go/gen/buf/validate" _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" v1 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" @@ -49,6 +51,11 @@ type Run struct { AssetIds []string `protobuf:"bytes,16,rep,name=asset_ids,json=assetIds,proto3" json:"asset_ids,omitempty"` ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=archived_date,json=archivedDate,proto3,oneof" json:"archived_date,omitempty"` IsAdhoc bool `protobuf:"varint,18,opt,name=is_adhoc,json=isAdhoc,proto3" json:"is_adhoc,omitempty"` + // Whether the Run is archived. This is inferred from whether archived_date is set. + IsArchived bool `protobuf:"varint,19,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` + // The duration of the run. Calculated as the difference between stop_time and start_time. + // If the run is ongoing (no stop_time), this represents the duration from start_time to current time. + Duration *durationpb.Duration `protobuf:"bytes,20,opt,name=duration,proto3,oneof" json:"duration,omitempty"` } func (x *Run) Reset() { @@ -209,6 +216,20 @@ func (x *Run) GetIsAdhoc() bool { return false } +func (x *Run) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + +func (x *Run) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + // The request for a call to `RunService_GetRun` to retrieve run. type GetRunRequest struct { state protoimpl.MessageState @@ -324,8 +345,9 @@ type ListRunsRequest struct { PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `run_id` `organization_id`, `asset_id`, `asset_name`, `client_key`, `name`, `description`, `created_by_user_id`, `modified_by_user_id`, - // `created_date`, `modified_date`, `start_time`, `stop_time`, `tag_id`, `asset_tag_id`, `duration`, `annotation_comments_count`, `annotation_state`, `archived_date`, + // `created_date`, `modified_date`, `start_time`, `stop_time`, `tag_id`, `asset_tag_id`, `duration`, 'duration_string', `annotation_comments_count`, `annotation_state`, `archived_date`, `is_archived`, // and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. + // `duration` is in the format of elapsed seconds and `duration_string` allows for `h`, `m`, `s`, `ms` suffixes (example: `duration_string > duration('10h')) // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/runs#run). Optional. Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` @@ -787,7 +809,7 @@ type UpdateRunRequest struct { // and is required. Run *Run `protobuf:"bytes,1,opt,name=run,proto3" json:"run,omitempty"` // The list of fields to be updated. The fields available to be updated are `name`, `description`, - // `start_time`, `stop_time`, `is_pinned`, `client_key`, `tags`, and `metadata`. + // `start_time`, `stop_time`, `is_pinned`, `client_key`, `tags`,`is_archived`, and `metadata`. // Important Note: When updating the `start_time`, please be aware that if a subsequent data ingestion // commences for this run, the `start_time` will be automatically overwritten and set to the timestamp // corresponding to the beginning of the latest run. Additionally, `client_key` can only be set once either in run creation or in update. @@ -1169,314 +1191,382 @@ var File_sift_runs_v2_runs_proto protoreflect.FileDescriptor var file_sift_runs_v2_runs_proto_rawDesc = []byte{ 0x0a, 0x17, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa9, 0x07, 0x0a, 0x03, 0x52, - 0x75, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x42, - 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, - 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, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, - 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 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, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x41, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, - 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, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x73, - 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, - 0x2f, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x09, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x49, 0x0a, - 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x11, - 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, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, - 0x64, 0x68, 0x6f, 0x63, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x07, 0x69, 0x73, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x6f, 0x70, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x2b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, - 0x6e, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x22, - 0x94, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x66, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x72, 0x75, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x91, - 0x03, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, + 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x08, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, + 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 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, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x01, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x73, 0x50, 0x69, 0x6e, + 0x6e, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x09, - 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x22, 0x3d, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, - 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, 0x75, - 0x6e, 0x22, 0x8a, 0x03, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, - 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x73, - 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, - 0x74, 0x61, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, + 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x11, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x11, 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, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x68, 0x6f, + 0x63, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x69, 0x73, + 0x41, 0x64, 0x68, 0x6f, 0x63, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x75, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, + 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, + 0x66, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xdb, 0x04, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x05, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0xf0, 0x01, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0xcb, 0x01, 0xe0, 0x41, 0x01, 0xba, 0x48, 0xc4, 0x01, + 0xba, 0x01, 0xc0, 0x01, 0x0a, 0x12, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x12, 0x6a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x33, 0x2d, 0x31, + 0x32, 0x38, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x7e, + 0x2e, 0x2d, 0x5d, 0x2e, 0x1a, 0x3e, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x28, 0x27, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, + 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x7e, 0x2e, 0x2d, 0x5d, 0x7b, + 0x30, 0x2c, 0x31, 0x32, 0x36, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, + 0x5d, 0x24, 0x27, 0x29, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x42, - 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x3d, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x03, 0x72, 0x75, 0x6e, 0x22, 0xe3, 0x04, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, + 0x02, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x92, 0x01, + 0x02, 0x08, 0x01, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xf0, 0x01, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0xcb, 0x01, + 0xe0, 0x41, 0x01, 0xba, 0x48, 0xc4, 0x01, 0xba, 0x01, 0xc0, 0x01, 0x0a, 0x12, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x12, + 0x6a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x5b, 0x61, 0x2d, 0x7a, 0x41, + 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x7e, 0x2e, 0x2d, 0x5d, 0x2e, 0x1a, 0x3e, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x28, 0x27, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, + 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, + 0x39, 0x5f, 0x7e, 0x2e, 0x2d, 0x5d, 0x7b, 0x30, 0x2c, 0x31, 0x32, 0x36, 0x7d, 0x5b, 0x61, 0x2d, + 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x24, 0x27, 0x29, 0x48, 0x00, 0x52, 0x09, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x42, 0x0a, 0x16, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x22, 0xe2, + 0x04, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0xa3, 0x04, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, + 0xe5, 0x03, 0xe0, 0x41, 0x02, 0xba, 0x48, 0xde, 0x03, 0xba, 0x01, 0xda, 0x03, 0x0a, 0x17, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x12, 0xdc, 0x01, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6d, + 0x61, 0x73, 0x6b, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x27, 0x6e, 0x61, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x27, 0x2c, 0x20, + 0x27, 0x69, 0x73, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, + 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x27, 0x2c, 0x20, 0x27, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, + 0x79, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x61, 0x67, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x27, 0x5d, 0x1a, 0xdf, 0x01, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x74, + 0x68, 0x73, 0x2e, 0x61, 0x6c, 0x6c, 0x28, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x27, 0x6e, 0x61, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x27, 0x2c, + 0x20, 0x27, 0x69, 0x73, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x69, + 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x27, 0x2c, 0x20, 0x27, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x61, 0x67, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x5f, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x27, 0x5d, 0x29, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x73, 0x6b, 0x22, 0x3d, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, - 0x75, 0x6e, 0x22, 0x7e, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, 0x75, 0x6e, - 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, - 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x73, 0x6b, 0x22, 0x3d, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, - 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x72, 0x75, - 0x6e, 0x22, 0x71, 0x0a, 0x2d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x24, - 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0x30, 0x0a, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x0a, 0x0e, 0x53, - 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x53, 0x74, 0x6f, - 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x0d, 0x0a, - 0x0a, 0x52, 0x75, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x06, 0x47, - 0x65, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, - 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x39, 0x92, 0x41, 0x19, 0x12, 0x06, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x1a, 0x0f, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, - 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x95, 0x01, 0x0a, 0x08, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x33, 0x12, 0x08, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, - 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, - 0x75, 0x6e, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6e, 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, 0x1a, 0x12, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6e, 0x1a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, 0x12, 0x23, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x92, 0x41, 0x26, 0x12, 0x0e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, 0x1a, 0x14, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x64, 0x68, 0x6f, 0x63, 0x20, 0x72, 0x75, 0x6e, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x3a, 0x61, 0x64, 0x68, 0x6f, 0x63, 0x12, 0xc7, - 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x12, 0x1e, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, - 0x41, 0x5f, 0x12, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x1a, 0x52, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x32, 0x0c, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8d, 0x01, 0x92, 0x41, 0x6d, 0x12, 0x09, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x1a, 0x60, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, - 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x20, 0x49, 0x6e, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x69, 0x74, 0x20, 0x6d, 0x75, - 0x73, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x20, 0x73, 0x65, 0x74, 0x20, 0x60, 0x73, - 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, - 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x7b, - 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe6, 0x01, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x70, - 0x52, 0x75, 0x6e, 0x12, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x9d, 0x01, 0x92, 0x41, 0x7e, 0x12, 0x07, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x1a, - 0x73, 0x53, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x69, - 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, - 0x20, 0x54, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x70, + 0x75, 0x6e, 0x22, 0x79, 0x0a, 0x2d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, + 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x30, 0x0a, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, + 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, + 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x36, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, + 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x0e, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, + 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, + 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6e, + 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xdd, 0x0d, 0x0a, 0x0a, 0x52, 0x75, 0x6e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x1b, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x92, 0x41, 0x19, 0x12, 0x06, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x1a, 0x0f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6e, + 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x95, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, + 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4a, 0x92, 0x41, 0x33, 0x12, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x1a, + 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x82, 0x01, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, 0x1a, + 0x12, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x1a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, + 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, + 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, + 0x63, 0x52, 0x75, 0x6e, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, 0x63, 0x52, + 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x64, 0x68, 0x6f, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x46, 0x92, 0x41, 0x26, 0x12, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x68, 0x6f, + 0x63, 0x52, 0x75, 0x6e, 0x1a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, + 0x61, 0x64, 0x68, 0x6f, 0x63, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, + 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, + 0x73, 0x3a, 0x61, 0x64, 0x68, 0x6f, 0x63, 0x12, 0xc7, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6e, 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x5f, 0x12, 0x09, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x1a, 0x52, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6e, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, + 0x3a, 0x01, 0x2a, 0x32, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, + 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x12, + 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x78, 0x88, 0x02, 0x01, 0x92, 0x41, 0x55, 0x12, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x75, 0x6e, 0x1a, 0x48, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, + 0x72, 0x75, 0x6e, 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, + 0x20, 0x55, 0x73, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, + 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe6, 0x01, 0x0a, 0x07, 0x53, + 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x12, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, + 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x01, 0x92, 0x41, 0x7e, 0x12, 0x07, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x75, 0x6e, 0x1a, 0x73, 0x53, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x20, 0x74, - 0x69, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x65, 0x20, 0x60, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6e, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x32, 0x11, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x3a, 0x73, 0x74, 0x6f, 0x70, - 0x12, 0xcc, 0x02, 0x0a, 0x26, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x3b, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x6f, 0x70, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x65, 0x20, 0x60, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6e, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, + 0x32, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x3a, 0x73, + 0x74, 0x6f, 0x70, 0x12, 0xcc, 0x02, 0x0a, 0x26, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x92, 0x41, 0x57, 0x12, 0x26, 0x43, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x3b, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x73, 0x1a, 0x2d, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, - 0x75, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x3a, 0x01, 0x2a, 0x22, 0x41, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6e, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2d, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x69, 0x63, 0x2d, 0x72, 0x75, 0x6e, 0x2d, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x1a, - 0xc0, 0x01, 0x92, 0x41, 0xbc, 0x01, 0x12, 0x40, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x5b, 0x72, 0x75, 0x6e, 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, - 0x72, 0x79, 0x23, 0x72, 0x75, 0x6e, 0x29, 0x2e, 0x1a, 0x78, 0x0a, 0x1e, 0x52, 0x65, 0x61, 0x64, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, - 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, - 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x35, 0x34, 0x30, - 0x35, 0x33, 0x42, 0xb8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x09, 0x52, 0x75, 0x6e, 0x73, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, - 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6e, - 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x75, 0x6e, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x52, - 0x58, 0xaa, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, 0x6e, 0x73, 0x2e, 0x56, 0x32, - 0xca, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6e, 0x73, 0x5c, 0x56, 0x32, 0xe2, - 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6e, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x53, 0x69, 0x66, - 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x0f, 0x12, 0x0d, - 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x92, 0x41, 0x57, 0x12, + 0x26, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, + 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, + 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x1a, 0x2d, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, + 0x6e, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x3a, 0x01, 0x2a, 0x22, + 0x41, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x7b, 0x72, + 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2d, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x2d, 0x72, 0x75, 0x6e, 0x2d, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x1a, 0xc0, 0x01, 0x92, 0x41, 0xbc, 0x01, 0x12, 0x40, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x72, 0x75, 0x6e, 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, + 0x73, 0x73, 0x61, 0x72, 0x79, 0x23, 0x72, 0x75, 0x6e, 0x29, 0x2e, 0x1a, 0x78, 0x0a, 0x1e, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, + 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, + 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, + 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, + 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, + 0x35, 0x34, 0x30, 0x35, 0x33, 0x42, 0xb8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x09, 0x52, 0x75, 0x6e, 0x73, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, + 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x75, 0x6e, 0x73, 0x76, 0x32, 0xa2, 0x02, + 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, 0x6e, 0x73, + 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6e, 0x73, 0x5c, + 0x56, 0x32, 0xe2, 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6e, 0x73, 0x5c, 0x56, + 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, + 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, + 0x0f, 0x12, 0x0d, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1512,7 +1602,8 @@ var file_sift_runs_v2_runs_proto_goTypes = []interface{}{ (*StopRunResponse)(nil), // 16: sift.runs.v2.StopRunResponse (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp (*v1.MetadataValue)(nil), // 18: sift.metadata.v1.MetadataValue - (*fieldmaskpb.FieldMask)(nil), // 19: google.protobuf.FieldMask + (*durationpb.Duration)(nil), // 19: google.protobuf.Duration + (*fieldmaskpb.FieldMask)(nil), // 20: google.protobuf.FieldMask } var file_sift_runs_v2_runs_proto_depIdxs = []int32{ 17, // 0: sift.runs.v2.Run.created_date:type_name -> google.protobuf.Timestamp @@ -1521,40 +1612,41 @@ var file_sift_runs_v2_runs_proto_depIdxs = []int32{ 17, // 3: sift.runs.v2.Run.stop_time:type_name -> google.protobuf.Timestamp 18, // 4: sift.runs.v2.Run.metadata:type_name -> sift.metadata.v1.MetadataValue 17, // 5: sift.runs.v2.Run.archived_date:type_name -> google.protobuf.Timestamp - 0, // 6: sift.runs.v2.GetRunResponse.run:type_name -> sift.runs.v2.Run - 0, // 7: sift.runs.v2.ListRunsResponse.runs:type_name -> sift.runs.v2.Run - 17, // 8: sift.runs.v2.CreateRunRequest.start_time:type_name -> google.protobuf.Timestamp - 17, // 9: sift.runs.v2.CreateRunRequest.stop_time:type_name -> google.protobuf.Timestamp - 18, // 10: sift.runs.v2.CreateRunRequest.metadata:type_name -> sift.metadata.v1.MetadataValue - 0, // 11: sift.runs.v2.CreateRunResponse.run:type_name -> sift.runs.v2.Run - 17, // 12: sift.runs.v2.CreateAdhocRunRequest.start_time:type_name -> google.protobuf.Timestamp - 17, // 13: sift.runs.v2.CreateAdhocRunRequest.stop_time:type_name -> google.protobuf.Timestamp - 18, // 14: sift.runs.v2.CreateAdhocRunRequest.metadata:type_name -> sift.metadata.v1.MetadataValue - 0, // 15: sift.runs.v2.CreateAdhocRunResponse.run:type_name -> sift.runs.v2.Run - 0, // 16: sift.runs.v2.UpdateRunRequest.run:type_name -> sift.runs.v2.Run - 19, // 17: sift.runs.v2.UpdateRunRequest.update_mask:type_name -> google.protobuf.FieldMask - 0, // 18: sift.runs.v2.UpdateRunResponse.run:type_name -> sift.runs.v2.Run - 1, // 19: sift.runs.v2.RunService.GetRun:input_type -> sift.runs.v2.GetRunRequest - 3, // 20: sift.runs.v2.RunService.ListRuns:input_type -> sift.runs.v2.ListRunsRequest - 5, // 21: sift.runs.v2.RunService.CreateRun:input_type -> sift.runs.v2.CreateRunRequest - 7, // 22: sift.runs.v2.RunService.CreateAdhocRun:input_type -> sift.runs.v2.CreateAdhocRunRequest - 9, // 23: sift.runs.v2.RunService.UpdateRun:input_type -> sift.runs.v2.UpdateRunRequest - 13, // 24: sift.runs.v2.RunService.DeleteRun:input_type -> sift.runs.v2.DeleteRunRequest - 15, // 25: sift.runs.v2.RunService.StopRun:input_type -> sift.runs.v2.StopRunRequest - 11, // 26: sift.runs.v2.RunService.CreateAutomaticRunAssociationForAssets:input_type -> sift.runs.v2.CreateAutomaticRunAssociationForAssetsRequest - 2, // 27: sift.runs.v2.RunService.GetRun:output_type -> sift.runs.v2.GetRunResponse - 4, // 28: sift.runs.v2.RunService.ListRuns:output_type -> sift.runs.v2.ListRunsResponse - 6, // 29: sift.runs.v2.RunService.CreateRun:output_type -> sift.runs.v2.CreateRunResponse - 8, // 30: sift.runs.v2.RunService.CreateAdhocRun:output_type -> sift.runs.v2.CreateAdhocRunResponse - 10, // 31: sift.runs.v2.RunService.UpdateRun:output_type -> sift.runs.v2.UpdateRunResponse - 14, // 32: sift.runs.v2.RunService.DeleteRun:output_type -> sift.runs.v2.DeleteRunResponse - 16, // 33: sift.runs.v2.RunService.StopRun:output_type -> sift.runs.v2.StopRunResponse - 12, // 34: sift.runs.v2.RunService.CreateAutomaticRunAssociationForAssets:output_type -> sift.runs.v2.CreateAutomaticRunAssociationForAssetsResponse - 27, // [27:35] is the sub-list for method output_type - 19, // [19:27] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 19, // 6: sift.runs.v2.Run.duration:type_name -> google.protobuf.Duration + 0, // 7: sift.runs.v2.GetRunResponse.run:type_name -> sift.runs.v2.Run + 0, // 8: sift.runs.v2.ListRunsResponse.runs:type_name -> sift.runs.v2.Run + 17, // 9: sift.runs.v2.CreateRunRequest.start_time:type_name -> google.protobuf.Timestamp + 17, // 10: sift.runs.v2.CreateRunRequest.stop_time:type_name -> google.protobuf.Timestamp + 18, // 11: sift.runs.v2.CreateRunRequest.metadata:type_name -> sift.metadata.v1.MetadataValue + 0, // 12: sift.runs.v2.CreateRunResponse.run:type_name -> sift.runs.v2.Run + 17, // 13: sift.runs.v2.CreateAdhocRunRequest.start_time:type_name -> google.protobuf.Timestamp + 17, // 14: sift.runs.v2.CreateAdhocRunRequest.stop_time:type_name -> google.protobuf.Timestamp + 18, // 15: sift.runs.v2.CreateAdhocRunRequest.metadata:type_name -> sift.metadata.v1.MetadataValue + 0, // 16: sift.runs.v2.CreateAdhocRunResponse.run:type_name -> sift.runs.v2.Run + 0, // 17: sift.runs.v2.UpdateRunRequest.run:type_name -> sift.runs.v2.Run + 20, // 18: sift.runs.v2.UpdateRunRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 19: sift.runs.v2.UpdateRunResponse.run:type_name -> sift.runs.v2.Run + 1, // 20: sift.runs.v2.RunService.GetRun:input_type -> sift.runs.v2.GetRunRequest + 3, // 21: sift.runs.v2.RunService.ListRuns:input_type -> sift.runs.v2.ListRunsRequest + 5, // 22: sift.runs.v2.RunService.CreateRun:input_type -> sift.runs.v2.CreateRunRequest + 7, // 23: sift.runs.v2.RunService.CreateAdhocRun:input_type -> sift.runs.v2.CreateAdhocRunRequest + 9, // 24: sift.runs.v2.RunService.UpdateRun:input_type -> sift.runs.v2.UpdateRunRequest + 13, // 25: sift.runs.v2.RunService.DeleteRun:input_type -> sift.runs.v2.DeleteRunRequest + 15, // 26: sift.runs.v2.RunService.StopRun:input_type -> sift.runs.v2.StopRunRequest + 11, // 27: sift.runs.v2.RunService.CreateAutomaticRunAssociationForAssets:input_type -> sift.runs.v2.CreateAutomaticRunAssociationForAssetsRequest + 2, // 28: sift.runs.v2.RunService.GetRun:output_type -> sift.runs.v2.GetRunResponse + 4, // 29: sift.runs.v2.RunService.ListRuns:output_type -> sift.runs.v2.ListRunsResponse + 6, // 30: sift.runs.v2.RunService.CreateRun:output_type -> sift.runs.v2.CreateRunResponse + 8, // 31: sift.runs.v2.RunService.CreateAdhocRun:output_type -> sift.runs.v2.CreateAdhocRunResponse + 10, // 32: sift.runs.v2.RunService.UpdateRun:output_type -> sift.runs.v2.UpdateRunResponse + 14, // 33: sift.runs.v2.RunService.DeleteRun:output_type -> sift.runs.v2.DeleteRunResponse + 16, // 34: sift.runs.v2.RunService.StopRun:output_type -> sift.runs.v2.StopRunResponse + 12, // 35: sift.runs.v2.RunService.CreateAutomaticRunAssociationForAssets:output_type -> sift.runs.v2.CreateAutomaticRunAssociationForAssetsResponse + 28, // [28:36] is the sub-list for method output_type + 20, // [20:28] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_sift_runs_v2_runs_proto_init() } diff --git a/go/gen/sift/runs/v2/runs_vtproto.pb.go b/go/gen/sift/runs/v2/runs_vtproto.pb.go index 357b13fd9..d4a6e9690 100644 --- a/go/gen/sift/runs/v2/runs_vtproto.pb.go +++ b/go/gen/sift/runs/v2/runs_vtproto.pb.go @@ -8,6 +8,7 @@ import ( context "context" fmt "fmt" protohelpers "github.com/planetscale/vtprotobuf/protohelpers" + durationpb1 "github.com/planetscale/vtprotobuf/types/known/durationpb" fieldmaskpb1 "github.com/planetscale/vtprotobuf/types/known/fieldmaskpb" timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" v1 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" @@ -16,6 +17,7 @@ import ( status "google.golang.org/grpc/status" proto "google.golang.org/protobuf/proto" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" io "io" @@ -48,6 +50,8 @@ func (m *Run) CloneVT() *Run { r.DefaultReportId = m.DefaultReportId r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) r.IsAdhoc = m.IsAdhoc + r.IsArchived = m.IsArchived + r.Duration = (*durationpb.Duration)((*durationpb1.Duration)(m.Duration).CloneVT()) if rhs := m.Tags; rhs != nil { tmpContainer := make([]string, len(rhs)) copy(tmpContainer, rhs) @@ -511,6 +515,12 @@ func (this *Run) EqualVT(that *Run) bool { if this.IsAdhoc != that.IsAdhoc { return false } + if this.IsArchived != that.IsArchived { + return false + } + if !(*durationpb1.Duration)(this.Duration).EqualVT((*durationpb1.Duration)(that.Duration)) { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -970,7 +980,9 @@ type RunServiceClient interface { CreateAdhocRun(ctx context.Context, in *CreateAdhocRunRequest, opts ...grpc.CallOption) (*CreateAdhocRunResponse, error) // Updates an existing run using using the list of fields specified in `update_mask`. UpdateRun(ctx context.Context, in *UpdateRunRequest, opts ...grpc.CallOption) (*UpdateRunResponse, error) + // Deprecated: Do not use. // Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`. + // Deprecated: Use update with is_archived. DeleteRun(ctx context.Context, in *DeleteRunRequest, opts ...grpc.CallOption) (*DeleteRunResponse, error) // Set the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`. StopRun(ctx context.Context, in *StopRunRequest, opts ...grpc.CallOption) (*StopRunResponse, error) @@ -1031,6 +1043,7 @@ func (c *runServiceClient) UpdateRun(ctx context.Context, in *UpdateRunRequest, return out, nil } +// Deprecated: Do not use. func (c *runServiceClient) DeleteRun(ctx context.Context, in *DeleteRunRequest, opts ...grpc.CallOption) (*DeleteRunResponse, error) { out := new(DeleteRunResponse) err := c.cc.Invoke(ctx, "/sift.runs.v2.RunService/DeleteRun", in, out, opts...) @@ -1072,7 +1085,9 @@ type RunServiceServer interface { CreateAdhocRun(context.Context, *CreateAdhocRunRequest) (*CreateAdhocRunResponse, error) // Updates an existing run using using the list of fields specified in `update_mask`. UpdateRun(context.Context, *UpdateRunRequest) (*UpdateRunResponse, error) + // Deprecated: Do not use. // Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`. + // Deprecated: Use update with is_archived. DeleteRun(context.Context, *DeleteRunRequest) (*DeleteRunResponse, error) // Set the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`. StopRun(context.Context, *StopRunRequest) (*StopRunResponse, error) @@ -1340,6 +1355,30 @@ func (m *Run) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.Duration != nil { + size, err := (*durationpb1.Duration)(m.Duration).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } if m.IsAdhoc { i-- if m.IsAdhoc { @@ -2381,6 +2420,30 @@ func (m *Run) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.Duration != nil { + size, err := (*durationpb1.Duration)(m.Duration).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } if m.IsAdhoc { i-- if m.IsAdhoc { @@ -3480,6 +3543,13 @@ func (m *Run) SizeVT() (n int) { if m.IsAdhoc { n += 3 } + if m.IsArchived { + n += 3 + } + if m.Duration != nil { + l = (*durationpb1.Duration)(m.Duration).SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -4413,6 +4483,62 @@ func (m *Run) UnmarshalVT(dAtA []byte) error { } } m.IsAdhoc = bool(v != 0) + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Duration == nil { + m.Duration = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Duration).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -7010,6 +7136,62 @@ func (m *Run) UnmarshalVTUnsafe(dAtA []byte) error { } } m.IsAdhoc = bool(v != 0) + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Duration == nil { + m.Duration = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Duration).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/saved_searches/v1/saved_searches.pb.go b/go/gen/sift/saved_searches/v1/saved_searches.pb.go index ad8e63e4f..fc2650cac 100644 --- a/go/gen/sift/saved_searches/v1/saved_searches.pb.go +++ b/go/gen/sift/saved_searches/v1/saved_searches.pb.go @@ -132,17 +132,20 @@ type SavedSearchProperties struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OverviewMode string `protobuf:"bytes,1,opt,name=overview_mode,json=overviewMode,proto3" json:"overview_mode,omitempty"` - SearchTerm *string `protobuf:"bytes,2,opt,name=search_term,json=searchTerm,proto3,oneof" json:"search_term,omitempty"` - FromDateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=from_date_time,json=fromDateTime,proto3,oneof" json:"from_date_time,omitempty"` - ToDateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=to_date_time,json=toDateTime,proto3,oneof" json:"to_date_time,omitempty"` - AssetItems []*SavedSearchFilterItem `protobuf:"bytes,5,rep,name=asset_items,json=assetItems,proto3" json:"asset_items,omitempty"` - UserItems []*SavedSearchFilterItem `protobuf:"bytes,6,rep,name=user_items,json=userItems,proto3" json:"user_items,omitempty"` - TagItems []*SavedSearchFilterItem `protobuf:"bytes,7,rep,name=tag_items,json=tagItems,proto3" json:"tag_items,omitempty"` - AnnotationItems []*SavedSearchFilterItem `protobuf:"bytes,8,rep,name=annotation_items,json=annotationItems,proto3" json:"annotation_items,omitempty"` - RunItems []*SavedSearchFilterItem `protobuf:"bytes,9,rep,name=run_items,json=runItems,proto3" json:"run_items,omitempty"` - ReportTemplateItems []*SavedSearchFilterItem `protobuf:"bytes,10,rep,name=report_template_items,json=reportTemplateItems,proto3" json:"report_template_items,omitempty"` - ShowAdvancedFilters *bool `protobuf:"varint,11,opt,name=show_advanced_filters,json=showAdvancedFilters,proto3,oneof" json:"show_advanced_filters,omitempty"` + OverviewMode string `protobuf:"bytes,1,opt,name=overview_mode,json=overviewMode,proto3" json:"overview_mode,omitempty"` + SearchTerm *string `protobuf:"bytes,2,opt,name=search_term,json=searchTerm,proto3,oneof" json:"search_term,omitempty"` + FromDateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=from_date_time,json=fromDateTime,proto3,oneof" json:"from_date_time,omitempty"` + ToDateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=to_date_time,json=toDateTime,proto3,oneof" json:"to_date_time,omitempty"` + AssetItems []*SavedSearchFilterItem `protobuf:"bytes,5,rep,name=asset_items,json=assetItems,proto3" json:"asset_items,omitempty"` + UserItems []*SavedSearchFilterItem `protobuf:"bytes,6,rep,name=user_items,json=userItems,proto3" json:"user_items,omitempty"` + TagItems []*SavedSearchFilterItem `protobuf:"bytes,7,rep,name=tag_items,json=tagItems,proto3" json:"tag_items,omitempty"` + AnnotationItems []*SavedSearchFilterItem `protobuf:"bytes,8,rep,name=annotation_items,json=annotationItems,proto3" json:"annotation_items,omitempty"` + RunItems []*SavedSearchFilterItem `protobuf:"bytes,9,rep,name=run_items,json=runItems,proto3" json:"run_items,omitempty"` + ReportTemplateItems []*SavedSearchFilterItem `protobuf:"bytes,10,rep,name=report_template_items,json=reportTemplateItems,proto3" json:"report_template_items,omitempty"` + ShowAdvancedFilters *bool `protobuf:"varint,11,opt,name=show_advanced_filters,json=showAdvancedFilters,proto3,oneof" json:"show_advanced_filters,omitempty"` + IncludeArchived *bool `protobuf:"varint,12,opt,name=include_archived,json=includeArchived,proto3,oneof" json:"include_archived,omitempty"` + OrderBy *string `protobuf:"bytes,13,opt,name=order_by,json=orderBy,proto3,oneof" json:"order_by,omitempty"` + MetadataItems []*SavedSearchMetadataItem `protobuf:"bytes,14,rep,name=metadata_items,json=metadataItems,proto3" json:"metadata_items,omitempty"` } func (x *SavedSearchProperties) Reset() { @@ -254,6 +257,27 @@ func (x *SavedSearchProperties) GetShowAdvancedFilters() bool { return false } +func (x *SavedSearchProperties) GetIncludeArchived() bool { + if x != nil && x.IncludeArchived != nil { + return *x.IncludeArchived + } + return false +} + +func (x *SavedSearchProperties) GetOrderBy() string { + if x != nil && x.OrderBy != nil { + return *x.OrderBy + } + return "" +} + +func (x *SavedSearchProperties) GetMetadataItems() []*SavedSearchMetadataItem { + if x != nil { + return x.MetadataItems + } + return nil +} + type SavedSearchFilterItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -309,6 +333,109 @@ func (x *SavedSearchFilterItem) GetName() string { return "" } +type SavedSearchMetadataItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // Types that are assignable to Value: + // + // *SavedSearchMetadataItem_StringValue + // *SavedSearchMetadataItem_NumberValue + // *SavedSearchMetadataItem_BooleanValue + Value isSavedSearchMetadataItem_Value `protobuf_oneof:"value"` +} + +func (x *SavedSearchMetadataItem) Reset() { + *x = SavedSearchMetadataItem{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavedSearchMetadataItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavedSearchMetadataItem) ProtoMessage() {} + +func (x *SavedSearchMetadataItem) ProtoReflect() protoreflect.Message { + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SavedSearchMetadataItem.ProtoReflect.Descriptor instead. +func (*SavedSearchMetadataItem) Descriptor() ([]byte, []int) { + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{3} +} + +func (x *SavedSearchMetadataItem) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (m *SavedSearchMetadataItem) GetValue() isSavedSearchMetadataItem_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *SavedSearchMetadataItem) GetStringValue() string { + if x, ok := x.GetValue().(*SavedSearchMetadataItem_StringValue); ok { + return x.StringValue + } + return "" +} + +func (x *SavedSearchMetadataItem) GetNumberValue() float64 { + if x, ok := x.GetValue().(*SavedSearchMetadataItem_NumberValue); ok { + return x.NumberValue + } + return 0 +} + +func (x *SavedSearchMetadataItem) GetBooleanValue() bool { + if x, ok := x.GetValue().(*SavedSearchMetadataItem_BooleanValue); ok { + return x.BooleanValue + } + return false +} + +type isSavedSearchMetadataItem_Value interface { + isSavedSearchMetadataItem_Value() +} + +type SavedSearchMetadataItem_StringValue struct { + StringValue string `protobuf:"bytes,2,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +type SavedSearchMetadataItem_NumberValue struct { + NumberValue float64 `protobuf:"fixed64,3,opt,name=number_value,json=numberValue,proto3,oneof"` +} + +type SavedSearchMetadataItem_BooleanValue struct { + BooleanValue bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue,proto3,oneof"` +} + +func (*SavedSearchMetadataItem_StringValue) isSavedSearchMetadataItem_Value() {} + +func (*SavedSearchMetadataItem_NumberValue) isSavedSearchMetadataItem_Value() {} + +func (*SavedSearchMetadataItem_BooleanValue) isSavedSearchMetadataItem_Value() {} + // The request for a call to `SavedSearchService_GetSavedSearch` to retrieve a saved search; type GetSavedSearchRequest struct { state protoimpl.MessageState @@ -321,7 +448,7 @@ type GetSavedSearchRequest struct { func (x *GetSavedSearchRequest) Reset() { *x = GetSavedSearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[3] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -334,7 +461,7 @@ func (x *GetSavedSearchRequest) String() string { func (*GetSavedSearchRequest) ProtoMessage() {} func (x *GetSavedSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[3] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -347,7 +474,7 @@ func (x *GetSavedSearchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSavedSearchRequest.ProtoReflect.Descriptor instead. func (*GetSavedSearchRequest) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{3} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{4} } func (x *GetSavedSearchRequest) GetSavedSearchId() string { @@ -369,7 +496,7 @@ type GetSavedSearchResponse struct { func (x *GetSavedSearchResponse) Reset() { *x = GetSavedSearchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[4] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -382,7 +509,7 @@ func (x *GetSavedSearchResponse) String() string { func (*GetSavedSearchResponse) ProtoMessage() {} func (x *GetSavedSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[4] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -395,7 +522,7 @@ func (x *GetSavedSearchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSavedSearchResponse.ProtoReflect.Descriptor instead. func (*GetSavedSearchResponse) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{4} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{5} } func (x *GetSavedSearchResponse) GetSavedSearch() *SavedSearch { @@ -432,7 +559,7 @@ type ListSavedSearchesRequest struct { func (x *ListSavedSearchesRequest) Reset() { *x = ListSavedSearchesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[5] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -445,7 +572,7 @@ func (x *ListSavedSearchesRequest) String() string { func (*ListSavedSearchesRequest) ProtoMessage() {} func (x *ListSavedSearchesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[5] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -458,7 +585,7 @@ func (x *ListSavedSearchesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSavedSearchesRequest.ProtoReflect.Descriptor instead. func (*ListSavedSearchesRequest) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{5} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{6} } func (x *ListSavedSearchesRequest) GetPageSize() uint32 { @@ -502,7 +629,7 @@ type ListSavedSearchesResponse struct { func (x *ListSavedSearchesResponse) Reset() { *x = ListSavedSearchesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[6] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -515,7 +642,7 @@ func (x *ListSavedSearchesResponse) String() string { func (*ListSavedSearchesResponse) ProtoMessage() {} func (x *ListSavedSearchesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[6] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -528,7 +655,7 @@ func (x *ListSavedSearchesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSavedSearchesResponse.ProtoReflect.Descriptor instead. func (*ListSavedSearchesResponse) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{6} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{7} } func (x *ListSavedSearchesResponse) GetSavedSearches() []*SavedSearch { @@ -560,7 +687,7 @@ type CreateSavedSearchRequest struct { func (x *CreateSavedSearchRequest) Reset() { *x = CreateSavedSearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[7] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -573,7 +700,7 @@ func (x *CreateSavedSearchRequest) String() string { func (*CreateSavedSearchRequest) ProtoMessage() {} func (x *CreateSavedSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[7] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -586,7 +713,7 @@ func (x *CreateSavedSearchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSavedSearchRequest.ProtoReflect.Descriptor instead. func (*CreateSavedSearchRequest) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{7} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{8} } func (x *CreateSavedSearchRequest) GetName() string { @@ -622,7 +749,7 @@ type CreateSavedSearchResponse struct { func (x *CreateSavedSearchResponse) Reset() { *x = CreateSavedSearchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[8] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -635,7 +762,7 @@ func (x *CreateSavedSearchResponse) String() string { func (*CreateSavedSearchResponse) ProtoMessage() {} func (x *CreateSavedSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[8] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -648,7 +775,7 @@ func (x *CreateSavedSearchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSavedSearchResponse.ProtoReflect.Descriptor instead. func (*CreateSavedSearchResponse) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{8} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{9} } func (x *CreateSavedSearchResponse) GetSavedSearch() *SavedSearch { @@ -670,7 +797,7 @@ type DeleteSavedSearchRequest struct { func (x *DeleteSavedSearchRequest) Reset() { *x = DeleteSavedSearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[9] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -683,7 +810,7 @@ func (x *DeleteSavedSearchRequest) String() string { func (*DeleteSavedSearchRequest) ProtoMessage() {} func (x *DeleteSavedSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[9] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -696,7 +823,7 @@ func (x *DeleteSavedSearchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSavedSearchRequest.ProtoReflect.Descriptor instead. func (*DeleteSavedSearchRequest) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{9} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{10} } func (x *DeleteSavedSearchRequest) GetSavedSearchId() string { @@ -716,7 +843,7 @@ type DeleteSavedSearchResponse struct { func (x *DeleteSavedSearchResponse) Reset() { *x = DeleteSavedSearchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[10] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -729,7 +856,7 @@ func (x *DeleteSavedSearchResponse) String() string { func (*DeleteSavedSearchResponse) ProtoMessage() {} func (x *DeleteSavedSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[10] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -742,7 +869,7 @@ func (x *DeleteSavedSearchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSavedSearchResponse.ProtoReflect.Descriptor instead. func (*DeleteSavedSearchResponse) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{10} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{11} } // The request for a call to `SavedSearchService_BatchDeleteSavedSearches` to delete saved searches. @@ -758,7 +885,7 @@ type BatchDeleteSavedSearchesRequest struct { func (x *BatchDeleteSavedSearchesRequest) Reset() { *x = BatchDeleteSavedSearchesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[11] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -771,7 +898,7 @@ func (x *BatchDeleteSavedSearchesRequest) String() string { func (*BatchDeleteSavedSearchesRequest) ProtoMessage() {} func (x *BatchDeleteSavedSearchesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[11] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -784,7 +911,7 @@ func (x *BatchDeleteSavedSearchesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchDeleteSavedSearchesRequest.ProtoReflect.Descriptor instead. func (*BatchDeleteSavedSearchesRequest) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{11} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{12} } func (x *BatchDeleteSavedSearchesRequest) GetSavedSearchIds() []string { @@ -804,7 +931,7 @@ type BatchDeleteSavedSearchesResponse struct { func (x *BatchDeleteSavedSearchesResponse) Reset() { *x = BatchDeleteSavedSearchesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[12] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -817,7 +944,7 @@ func (x *BatchDeleteSavedSearchesResponse) String() string { func (*BatchDeleteSavedSearchesResponse) ProtoMessage() {} func (x *BatchDeleteSavedSearchesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[12] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -830,7 +957,7 @@ func (x *BatchDeleteSavedSearchesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchDeleteSavedSearchesResponse.ProtoReflect.Descriptor instead. func (*BatchDeleteSavedSearchesResponse) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{12} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{13} } // The request for a call to `SavedSearchService_UpdateSavedSearch` to update a saved search. @@ -848,7 +975,7 @@ type UpdateSavedSearchRequest struct { func (x *UpdateSavedSearchRequest) Reset() { *x = UpdateSavedSearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[13] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -861,7 +988,7 @@ func (x *UpdateSavedSearchRequest) String() string { func (*UpdateSavedSearchRequest) ProtoMessage() {} func (x *UpdateSavedSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[13] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -874,7 +1001,7 @@ func (x *UpdateSavedSearchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSavedSearchRequest.ProtoReflect.Descriptor instead. func (*UpdateSavedSearchRequest) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{13} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{14} } func (x *UpdateSavedSearchRequest) GetSavedSearch() *SavedSearch { @@ -903,7 +1030,7 @@ type UpdateSavedSearchResponse struct { func (x *UpdateSavedSearchResponse) Reset() { *x = UpdateSavedSearchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[14] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -916,7 +1043,7 @@ func (x *UpdateSavedSearchResponse) String() string { func (*UpdateSavedSearchResponse) ProtoMessage() {} func (x *UpdateSavedSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[14] + mi := &file_sift_saved_searches_v1_saved_searches_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -929,7 +1056,7 @@ func (x *UpdateSavedSearchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSavedSearchResponse.ProtoReflect.Descriptor instead. func (*UpdateSavedSearchResponse) Descriptor() ([]byte, []int) { - return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{14} + return file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP(), []int{15} } func (x *UpdateSavedSearchResponse) GetSavedSearch() *SavedSearch { @@ -986,7 +1113,7 @@ var file_sift_saved_searches_v1_saved_searches_proto_rawDesc = []byte{ 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, - 0x9d, 0x07, 0x0a, 0x15, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, + 0xf6, 0x08, 0x0a, 0x15, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x4d, @@ -1039,199 +1166,223 @@ var file_sift_saved_searches_v1_saved_searches_proto_rawDesc = []byte{ 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x13, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x88, 0x01, - 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x65, 0x72, - 0x6d, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, - 0x45, 0x0a, 0x15, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x44, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2b, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x16, + 0x01, 0x12, 0x33, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x04, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x62, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x05, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x0e, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x49, 0x74, 0x65, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x22, 0x45, 0x0a, 0x15, 0x53, 0x61, 0x76, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xaa, 0x01, 0x0a, 0x17, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, + 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, + 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x44, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x22, 0xab, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4a, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x0d, 0x73, 0x61, - 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0xb5, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, - 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x49, 0x64, 0x22, 0x65, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0xab, 0x01, 0x0a, 0x18, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, - 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x19, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, - 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x47, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x63, 0x68, 0x52, 0x0d, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb5, 0x01, 0x0a, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x52, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x22, 0x68, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, + 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, + 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x47, 0x0a, 0x18, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x64, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x49, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, + 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4b, 0x0a, 0x1f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x73, 0x22, 0x22, + 0x0a, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x4b, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, + 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x68, + 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x73, + 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x32, 0xdf, 0x0a, 0x0a, 0x12, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0xce, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0d, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x22, 0x1b, - 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x1f, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, - 0x0a, 0x10, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x73, 0x22, 0x22, 0x0a, 0x20, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa9, 0x01, 0x0a, - 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x61, 0x76, - 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x68, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, + 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, + 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5d, 0x92, 0x41, 0x2a, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x1a, 0x18, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0xc9, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x92, 0x41, 0x2b, + 0x12, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x1a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0xc4, 0x01, 0x0a, + 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x29, 0x12, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x1a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x12, 0x8f, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, + 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x32, 0xdf, 0x0a, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xce, 0x01, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x2d, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, + 0x01, 0x92, 0x41, 0x70, 0x12, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x1a, 0x5b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x61, 0x76, + 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x32, 0x16, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0xd8, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x92, 0x41, 0x2a, - 0x12, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x1a, 0x18, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, - 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, - 0x12, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xc9, 0x01, 0x0a, 0x11, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x92, 0x41, 0x2b, 0x12, 0x11, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x1a, 0x16, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0xc4, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4a, 0x92, 0x41, 0x29, 0x12, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x1a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x20, - 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0x8f, 0x02, - 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, - 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, - 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x01, 0x92, 0x41, 0x70, 0x12, 0x11, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x1a, 0x5b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x32, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, - 0xd8, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, - 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x2b, 0x12, - 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x1a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, - 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, - 0x2a, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xf7, 0x01, 0x0a, 0x18, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x92, 0x41, 0x38, 0x12, - 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x1a, 0x1c, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, - 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x42, 0x8b, 0x02, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x42, 0x12, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, - 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, - 0x74, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x53, 0x58, 0xaa, 0x02, 0x15, 0x53, 0x69, 0x66, - 0x74, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, - 0x56, 0x31, 0xca, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x53, 0x69, 0x66, - 0x74, 0x5c, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x17, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x17, 0x12, 0x15, 0x0a, 0x13, 0x53, - 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x5e, 0x92, 0x41, 0x2b, 0x12, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x1a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x2a, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0xf7, 0x01, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x12, 0x37, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x68, 0x92, 0x41, 0x38, 0x12, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x1a, + 0x1c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x3a, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x8b, 0x02, 0x0a, 0x1a, 0x63, + 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x12, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x49, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, + 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, + 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x53, 0x58, + 0xaa, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x21, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, + 0x17, 0x12, 0x15, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1246,62 +1397,64 @@ func file_sift_saved_searches_v1_saved_searches_proto_rawDescGZIP() []byte { return file_sift_saved_searches_v1_saved_searches_proto_rawDescData } -var file_sift_saved_searches_v1_saved_searches_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_sift_saved_searches_v1_saved_searches_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_sift_saved_searches_v1_saved_searches_proto_goTypes = []interface{}{ (*SavedSearch)(nil), // 0: sift.saved_searches.v1.SavedSearch (*SavedSearchProperties)(nil), // 1: sift.saved_searches.v1.SavedSearchProperties (*SavedSearchFilterItem)(nil), // 2: sift.saved_searches.v1.SavedSearchFilterItem - (*GetSavedSearchRequest)(nil), // 3: sift.saved_searches.v1.GetSavedSearchRequest - (*GetSavedSearchResponse)(nil), // 4: sift.saved_searches.v1.GetSavedSearchResponse - (*ListSavedSearchesRequest)(nil), // 5: sift.saved_searches.v1.ListSavedSearchesRequest - (*ListSavedSearchesResponse)(nil), // 6: sift.saved_searches.v1.ListSavedSearchesResponse - (*CreateSavedSearchRequest)(nil), // 7: sift.saved_searches.v1.CreateSavedSearchRequest - (*CreateSavedSearchResponse)(nil), // 8: sift.saved_searches.v1.CreateSavedSearchResponse - (*DeleteSavedSearchRequest)(nil), // 9: sift.saved_searches.v1.DeleteSavedSearchRequest - (*DeleteSavedSearchResponse)(nil), // 10: sift.saved_searches.v1.DeleteSavedSearchResponse - (*BatchDeleteSavedSearchesRequest)(nil), // 11: sift.saved_searches.v1.BatchDeleteSavedSearchesRequest - (*BatchDeleteSavedSearchesResponse)(nil), // 12: sift.saved_searches.v1.BatchDeleteSavedSearchesResponse - (*UpdateSavedSearchRequest)(nil), // 13: sift.saved_searches.v1.UpdateSavedSearchRequest - (*UpdateSavedSearchResponse)(nil), // 14: sift.saved_searches.v1.UpdateSavedSearchResponse - (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp - (*fieldmaskpb.FieldMask)(nil), // 16: google.protobuf.FieldMask + (*SavedSearchMetadataItem)(nil), // 3: sift.saved_searches.v1.SavedSearchMetadataItem + (*GetSavedSearchRequest)(nil), // 4: sift.saved_searches.v1.GetSavedSearchRequest + (*GetSavedSearchResponse)(nil), // 5: sift.saved_searches.v1.GetSavedSearchResponse + (*ListSavedSearchesRequest)(nil), // 6: sift.saved_searches.v1.ListSavedSearchesRequest + (*ListSavedSearchesResponse)(nil), // 7: sift.saved_searches.v1.ListSavedSearchesResponse + (*CreateSavedSearchRequest)(nil), // 8: sift.saved_searches.v1.CreateSavedSearchRequest + (*CreateSavedSearchResponse)(nil), // 9: sift.saved_searches.v1.CreateSavedSearchResponse + (*DeleteSavedSearchRequest)(nil), // 10: sift.saved_searches.v1.DeleteSavedSearchRequest + (*DeleteSavedSearchResponse)(nil), // 11: sift.saved_searches.v1.DeleteSavedSearchResponse + (*BatchDeleteSavedSearchesRequest)(nil), // 12: sift.saved_searches.v1.BatchDeleteSavedSearchesRequest + (*BatchDeleteSavedSearchesResponse)(nil), // 13: sift.saved_searches.v1.BatchDeleteSavedSearchesResponse + (*UpdateSavedSearchRequest)(nil), // 14: sift.saved_searches.v1.UpdateSavedSearchRequest + (*UpdateSavedSearchResponse)(nil), // 15: sift.saved_searches.v1.UpdateSavedSearchResponse + (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 17: google.protobuf.FieldMask } var file_sift_saved_searches_v1_saved_searches_proto_depIdxs = []int32{ 1, // 0: sift.saved_searches.v1.SavedSearch.properties:type_name -> sift.saved_searches.v1.SavedSearchProperties - 15, // 1: sift.saved_searches.v1.SavedSearch.created_date:type_name -> google.protobuf.Timestamp - 15, // 2: sift.saved_searches.v1.SavedSearch.modified_date:type_name -> google.protobuf.Timestamp - 15, // 3: sift.saved_searches.v1.SavedSearchProperties.from_date_time:type_name -> google.protobuf.Timestamp - 15, // 4: sift.saved_searches.v1.SavedSearchProperties.to_date_time:type_name -> google.protobuf.Timestamp + 16, // 1: sift.saved_searches.v1.SavedSearch.created_date:type_name -> google.protobuf.Timestamp + 16, // 2: sift.saved_searches.v1.SavedSearch.modified_date:type_name -> google.protobuf.Timestamp + 16, // 3: sift.saved_searches.v1.SavedSearchProperties.from_date_time:type_name -> google.protobuf.Timestamp + 16, // 4: sift.saved_searches.v1.SavedSearchProperties.to_date_time:type_name -> google.protobuf.Timestamp 2, // 5: sift.saved_searches.v1.SavedSearchProperties.asset_items:type_name -> sift.saved_searches.v1.SavedSearchFilterItem 2, // 6: sift.saved_searches.v1.SavedSearchProperties.user_items:type_name -> sift.saved_searches.v1.SavedSearchFilterItem 2, // 7: sift.saved_searches.v1.SavedSearchProperties.tag_items:type_name -> sift.saved_searches.v1.SavedSearchFilterItem 2, // 8: sift.saved_searches.v1.SavedSearchProperties.annotation_items:type_name -> sift.saved_searches.v1.SavedSearchFilterItem 2, // 9: sift.saved_searches.v1.SavedSearchProperties.run_items:type_name -> sift.saved_searches.v1.SavedSearchFilterItem 2, // 10: sift.saved_searches.v1.SavedSearchProperties.report_template_items:type_name -> sift.saved_searches.v1.SavedSearchFilterItem - 0, // 11: sift.saved_searches.v1.GetSavedSearchResponse.saved_search:type_name -> sift.saved_searches.v1.SavedSearch - 0, // 12: sift.saved_searches.v1.ListSavedSearchesResponse.saved_searches:type_name -> sift.saved_searches.v1.SavedSearch - 1, // 13: sift.saved_searches.v1.CreateSavedSearchRequest.properties:type_name -> sift.saved_searches.v1.SavedSearchProperties - 0, // 14: sift.saved_searches.v1.CreateSavedSearchResponse.saved_search:type_name -> sift.saved_searches.v1.SavedSearch - 0, // 15: sift.saved_searches.v1.UpdateSavedSearchRequest.saved_search:type_name -> sift.saved_searches.v1.SavedSearch - 16, // 16: sift.saved_searches.v1.UpdateSavedSearchRequest.update_mask:type_name -> google.protobuf.FieldMask - 0, // 17: sift.saved_searches.v1.UpdateSavedSearchResponse.saved_search:type_name -> sift.saved_searches.v1.SavedSearch - 3, // 18: sift.saved_searches.v1.SavedSearchService.GetSavedSearch:input_type -> sift.saved_searches.v1.GetSavedSearchRequest - 7, // 19: sift.saved_searches.v1.SavedSearchService.CreateSavedSearch:input_type -> sift.saved_searches.v1.CreateSavedSearchRequest - 5, // 20: sift.saved_searches.v1.SavedSearchService.ListSavedSearches:input_type -> sift.saved_searches.v1.ListSavedSearchesRequest - 13, // 21: sift.saved_searches.v1.SavedSearchService.UpdateSavedSearch:input_type -> sift.saved_searches.v1.UpdateSavedSearchRequest - 9, // 22: sift.saved_searches.v1.SavedSearchService.DeleteSavedSearch:input_type -> sift.saved_searches.v1.DeleteSavedSearchRequest - 11, // 23: sift.saved_searches.v1.SavedSearchService.BatchDeleteSavedSearches:input_type -> sift.saved_searches.v1.BatchDeleteSavedSearchesRequest - 4, // 24: sift.saved_searches.v1.SavedSearchService.GetSavedSearch:output_type -> sift.saved_searches.v1.GetSavedSearchResponse - 8, // 25: sift.saved_searches.v1.SavedSearchService.CreateSavedSearch:output_type -> sift.saved_searches.v1.CreateSavedSearchResponse - 6, // 26: sift.saved_searches.v1.SavedSearchService.ListSavedSearches:output_type -> sift.saved_searches.v1.ListSavedSearchesResponse - 14, // 27: sift.saved_searches.v1.SavedSearchService.UpdateSavedSearch:output_type -> sift.saved_searches.v1.UpdateSavedSearchResponse - 10, // 28: sift.saved_searches.v1.SavedSearchService.DeleteSavedSearch:output_type -> sift.saved_searches.v1.DeleteSavedSearchResponse - 12, // 29: sift.saved_searches.v1.SavedSearchService.BatchDeleteSavedSearches:output_type -> sift.saved_searches.v1.BatchDeleteSavedSearchesResponse - 24, // [24:30] is the sub-list for method output_type - 18, // [18:24] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 3, // 11: sift.saved_searches.v1.SavedSearchProperties.metadata_items:type_name -> sift.saved_searches.v1.SavedSearchMetadataItem + 0, // 12: sift.saved_searches.v1.GetSavedSearchResponse.saved_search:type_name -> sift.saved_searches.v1.SavedSearch + 0, // 13: sift.saved_searches.v1.ListSavedSearchesResponse.saved_searches:type_name -> sift.saved_searches.v1.SavedSearch + 1, // 14: sift.saved_searches.v1.CreateSavedSearchRequest.properties:type_name -> sift.saved_searches.v1.SavedSearchProperties + 0, // 15: sift.saved_searches.v1.CreateSavedSearchResponse.saved_search:type_name -> sift.saved_searches.v1.SavedSearch + 0, // 16: sift.saved_searches.v1.UpdateSavedSearchRequest.saved_search:type_name -> sift.saved_searches.v1.SavedSearch + 17, // 17: sift.saved_searches.v1.UpdateSavedSearchRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 18: sift.saved_searches.v1.UpdateSavedSearchResponse.saved_search:type_name -> sift.saved_searches.v1.SavedSearch + 4, // 19: sift.saved_searches.v1.SavedSearchService.GetSavedSearch:input_type -> sift.saved_searches.v1.GetSavedSearchRequest + 8, // 20: sift.saved_searches.v1.SavedSearchService.CreateSavedSearch:input_type -> sift.saved_searches.v1.CreateSavedSearchRequest + 6, // 21: sift.saved_searches.v1.SavedSearchService.ListSavedSearches:input_type -> sift.saved_searches.v1.ListSavedSearchesRequest + 14, // 22: sift.saved_searches.v1.SavedSearchService.UpdateSavedSearch:input_type -> sift.saved_searches.v1.UpdateSavedSearchRequest + 10, // 23: sift.saved_searches.v1.SavedSearchService.DeleteSavedSearch:input_type -> sift.saved_searches.v1.DeleteSavedSearchRequest + 12, // 24: sift.saved_searches.v1.SavedSearchService.BatchDeleteSavedSearches:input_type -> sift.saved_searches.v1.BatchDeleteSavedSearchesRequest + 5, // 25: sift.saved_searches.v1.SavedSearchService.GetSavedSearch:output_type -> sift.saved_searches.v1.GetSavedSearchResponse + 9, // 26: sift.saved_searches.v1.SavedSearchService.CreateSavedSearch:output_type -> sift.saved_searches.v1.CreateSavedSearchResponse + 7, // 27: sift.saved_searches.v1.SavedSearchService.ListSavedSearches:output_type -> sift.saved_searches.v1.ListSavedSearchesResponse + 15, // 28: sift.saved_searches.v1.SavedSearchService.UpdateSavedSearch:output_type -> sift.saved_searches.v1.UpdateSavedSearchResponse + 11, // 29: sift.saved_searches.v1.SavedSearchService.DeleteSavedSearch:output_type -> sift.saved_searches.v1.DeleteSavedSearchResponse + 13, // 30: sift.saved_searches.v1.SavedSearchService.BatchDeleteSavedSearches:output_type -> sift.saved_searches.v1.BatchDeleteSavedSearchesResponse + 25, // [25:31] is the sub-list for method output_type + 19, // [19:25] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_sift_saved_searches_v1_saved_searches_proto_init() } @@ -1347,7 +1500,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSavedSearchRequest); i { + switch v := v.(*SavedSearchMetadataItem); i { case 0: return &v.state case 1: @@ -1359,7 +1512,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSavedSearchResponse); i { + switch v := v.(*GetSavedSearchRequest); i { case 0: return &v.state case 1: @@ -1371,7 +1524,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSavedSearchesRequest); i { + switch v := v.(*GetSavedSearchResponse); i { case 0: return &v.state case 1: @@ -1383,7 +1536,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSavedSearchesResponse); i { + switch v := v.(*ListSavedSearchesRequest); i { case 0: return &v.state case 1: @@ -1395,7 +1548,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSavedSearchRequest); i { + switch v := v.(*ListSavedSearchesResponse); i { case 0: return &v.state case 1: @@ -1407,7 +1560,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSavedSearchResponse); i { + switch v := v.(*CreateSavedSearchRequest); i { case 0: return &v.state case 1: @@ -1419,7 +1572,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteSavedSearchRequest); i { + switch v := v.(*CreateSavedSearchResponse); i { case 0: return &v.state case 1: @@ -1431,7 +1584,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteSavedSearchResponse); i { + switch v := v.(*DeleteSavedSearchRequest); i { case 0: return &v.state case 1: @@ -1443,7 +1596,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchDeleteSavedSearchesRequest); i { + switch v := v.(*DeleteSavedSearchResponse); i { case 0: return &v.state case 1: @@ -1455,7 +1608,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchDeleteSavedSearchesResponse); i { + switch v := v.(*BatchDeleteSavedSearchesRequest); i { case 0: return &v.state case 1: @@ -1467,7 +1620,7 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateSavedSearchRequest); i { + switch v := v.(*BatchDeleteSavedSearchesResponse); i { case 0: return &v.state case 1: @@ -1479,6 +1632,18 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSavedSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_saved_searches_v1_saved_searches_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateSavedSearchResponse); i { case 0: return &v.state @@ -1492,13 +1657,18 @@ func file_sift_saved_searches_v1_saved_searches_proto_init() { } } file_sift_saved_searches_v1_saved_searches_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_sift_saved_searches_v1_saved_searches_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*SavedSearchMetadataItem_StringValue)(nil), + (*SavedSearchMetadataItem_NumberValue)(nil), + (*SavedSearchMetadataItem_BooleanValue)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_saved_searches_v1_saved_searches_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go b/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go index cd159ac99..6776abb0b 100644 --- a/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go +++ b/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go @@ -6,6 +6,7 @@ package saved_searchesv1 import ( context "context" + binary "encoding/binary" fmt "fmt" protohelpers "github.com/planetscale/vtprotobuf/protohelpers" fieldmaskpb1 "github.com/planetscale/vtprotobuf/types/known/fieldmaskpb" @@ -18,6 +19,7 @@ import ( fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" io "io" + math "math" unsafe "unsafe" ) @@ -110,6 +112,21 @@ func (m *SavedSearchProperties) CloneVT() *SavedSearchProperties { tmpVal := *rhs r.ShowAdvancedFilters = &tmpVal } + if rhs := m.IncludeArchived; rhs != nil { + tmpVal := *rhs + r.IncludeArchived = &tmpVal + } + if rhs := m.OrderBy; rhs != nil { + tmpVal := *rhs + r.OrderBy = &tmpVal + } + if rhs := m.MetadataItems; rhs != nil { + tmpContainer := make([]*SavedSearchMetadataItem, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.MetadataItems = tmpContainer + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -139,6 +156,55 @@ func (m *SavedSearchFilterItem) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *SavedSearchMetadataItem) CloneVT() *SavedSearchMetadataItem { + if m == nil { + return (*SavedSearchMetadataItem)(nil) + } + r := new(SavedSearchMetadataItem) + r.Key = m.Key + if m.Value != nil { + r.Value = m.Value.(interface { + CloneVT() isSavedSearchMetadataItem_Value + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SavedSearchMetadataItem) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SavedSearchMetadataItem_StringValue) CloneVT() isSavedSearchMetadataItem_Value { + if m == nil { + return (*SavedSearchMetadataItem_StringValue)(nil) + } + r := new(SavedSearchMetadataItem_StringValue) + r.StringValue = m.StringValue + return r +} + +func (m *SavedSearchMetadataItem_NumberValue) CloneVT() isSavedSearchMetadataItem_Value { + if m == nil { + return (*SavedSearchMetadataItem_NumberValue)(nil) + } + r := new(SavedSearchMetadataItem_NumberValue) + r.NumberValue = m.NumberValue + return r +} + +func (m *SavedSearchMetadataItem_BooleanValue) CloneVT() isSavedSearchMetadataItem_Value { + if m == nil { + return (*SavedSearchMetadataItem_BooleanValue)(nil) + } + r := new(SavedSearchMetadataItem_BooleanValue) + r.BooleanValue = m.BooleanValue + return r +} + func (m *GetSavedSearchRequest) CloneVT() *GetSavedSearchRequest { if m == nil { return (*GetSavedSearchRequest)(nil) @@ -521,6 +587,29 @@ func (this *SavedSearchProperties) EqualVT(that *SavedSearchProperties) bool { if p, q := this.ShowAdvancedFilters, that.ShowAdvancedFilters; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { return false } + if p, q := this.IncludeArchived, that.IncludeArchived; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.OrderBy, that.OrderBy; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.MetadataItems) != len(that.MetadataItems) { + return false + } + for i, vx := range this.MetadataItems { + vy := that.MetadataItems[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &SavedSearchMetadataItem{} + } + if q == nil { + q = &SavedSearchMetadataItem{} + } + if !p.EqualVT(q) { + return false + } + } + } return string(this.unknownFields) == string(that.unknownFields) } @@ -553,6 +642,88 @@ func (this *SavedSearchFilterItem) EqualMessageVT(thatMsg proto.Message) bool { } return this.EqualVT(that) } +func (this *SavedSearchMetadataItem) EqualVT(that *SavedSearchMetadataItem) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Value == nil && that.Value != nil { + return false + } else if this.Value != nil { + if that.Value == nil { + return false + } + if !this.Value.(interface { + EqualVT(isSavedSearchMetadataItem_Value) bool + }).EqualVT(that.Value) { + return false + } + } + if this.Key != that.Key { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *SavedSearchMetadataItem) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*SavedSearchMetadataItem) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *SavedSearchMetadataItem_StringValue) EqualVT(thatIface isSavedSearchMetadataItem_Value) bool { + that, ok := thatIface.(*SavedSearchMetadataItem_StringValue) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.StringValue != that.StringValue { + return false + } + return true +} + +func (this *SavedSearchMetadataItem_NumberValue) EqualVT(thatIface isSavedSearchMetadataItem_Value) bool { + that, ok := thatIface.(*SavedSearchMetadataItem_NumberValue) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.NumberValue != that.NumberValue { + return false + } + return true +} + +func (this *SavedSearchMetadataItem_BooleanValue) EqualVT(thatIface isSavedSearchMetadataItem_Value) bool { + that, ok := thatIface.(*SavedSearchMetadataItem_BooleanValue) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.BooleanValue != that.BooleanValue { + return false + } + return true +} + func (this *GetSavedSearchRequest) EqualVT(that *GetSavedSearchRequest) bool { if this == that { return true @@ -1228,6 +1399,35 @@ func (m *SavedSearchProperties) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.MetadataItems) > 0 { + for iNdEx := len(m.MetadataItems) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.MetadataItems[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x72 + } + } + if m.OrderBy != nil { + i -= len(*m.OrderBy) + copy(dAtA[i:], *m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.OrderBy))) + i-- + dAtA[i] = 0x6a + } + if m.IncludeArchived != nil { + i-- + if *m.IncludeArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + } if m.ShowAdvancedFilters != nil { i-- if *m.ShowAdvancedFilters { @@ -1394,6 +1594,99 @@ func (m *SavedSearchFilterItem) MarshalToSizedBufferVT(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *SavedSearchMetadataItem) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SavedSearchMetadataItem) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SavedSearchMetadataItem) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Value.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SavedSearchMetadataItem_StringValue) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SavedSearchMetadataItem_StringValue) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.StringValue) + copy(dAtA[i:], m.StringValue) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.StringValue))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *SavedSearchMetadataItem_NumberValue) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SavedSearchMetadataItem_NumberValue) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.NumberValue)))) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *SavedSearchMetadataItem_BooleanValue) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SavedSearchMetadataItem_BooleanValue) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.BooleanValue { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} func (m *GetSavedSearchRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -2060,6 +2353,35 @@ func (m *SavedSearchProperties) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.MetadataItems) > 0 { + for iNdEx := len(m.MetadataItems) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.MetadataItems[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x72 + } + } + if m.OrderBy != nil { + i -= len(*m.OrderBy) + copy(dAtA[i:], *m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.OrderBy))) + i-- + dAtA[i] = 0x6a + } + if m.IncludeArchived != nil { + i-- + if *m.IncludeArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + } if m.ShowAdvancedFilters != nil { i-- if *m.ShowAdvancedFilters { @@ -2226,7 +2548,7 @@ func (m *SavedSearchFilterItem) MarshalToSizedBufferVTStrict(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *GetSavedSearchRequest) MarshalVTStrict() (dAtA []byte, err error) { +func (m *SavedSearchMetadataItem) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2239,12 +2561,12 @@ func (m *GetSavedSearchRequest) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetSavedSearchRequest) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *SavedSearchMetadataItem) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetSavedSearchRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *SavedSearchMetadataItem) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2256,17 +2578,82 @@ func (m *GetSavedSearchRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.SavedSearchId) > 0 { - i -= len(m.SavedSearchId) - copy(dAtA[i:], m.SavedSearchId) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SavedSearchId))) + if msg, ok := m.Value.(*SavedSearchMetadataItem_BooleanValue); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Value.(*SavedSearchMetadataItem_NumberValue); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Value.(*SavedSearchMetadataItem_StringValue); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Key))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *GetSavedSearchResponse) MarshalVTStrict() (dAtA []byte, err error) { +func (m *SavedSearchMetadataItem_StringValue) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SavedSearchMetadataItem_StringValue) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.StringValue) + copy(dAtA[i:], m.StringValue) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.StringValue))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *SavedSearchMetadataItem_NumberValue) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SavedSearchMetadataItem_NumberValue) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.NumberValue)))) + i-- + dAtA[i] = 0x19 + return len(dAtA) - i, nil +} +func (m *SavedSearchMetadataItem_BooleanValue) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *SavedSearchMetadataItem_BooleanValue) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.BooleanValue { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *GetSavedSearchRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2279,12 +2666,12 @@ func (m *GetSavedSearchResponse) MarshalVTStrict() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GetSavedSearchResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *GetSavedSearchRequest) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *GetSavedSearchResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *GetSavedSearchRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2296,11 +2683,51 @@ func (m *GetSavedSearchResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.SavedSearch != nil { - size, err := m.SavedSearch.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } + if len(m.SavedSearchId) > 0 { + i -= len(m.SavedSearchId) + copy(dAtA[i:], m.SavedSearchId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SavedSearchId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetSavedSearchResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetSavedSearchResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetSavedSearchResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SavedSearch != nil { + size, err := m.SavedSearch.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- @@ -2867,6 +3294,19 @@ func (m *SavedSearchProperties) SizeVT() (n int) { if m.ShowAdvancedFilters != nil { n += 2 } + if m.IncludeArchived != nil { + n += 2 + } + if m.OrderBy != nil { + l = len(*m.OrderBy) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.MetadataItems) > 0 { + for _, e := range m.MetadataItems { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } n += len(m.unknownFields) return n } @@ -2889,6 +3329,51 @@ func (m *SavedSearchFilterItem) SizeVT() (n int) { return n } +func (m *SavedSearchMetadataItem) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.Value.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *SavedSearchMetadataItem_StringValue) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.StringValue) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *SavedSearchMetadataItem_NumberValue) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 9 + return n +} +func (m *SavedSearchMetadataItem_BooleanValue) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} func (m *GetSavedSearchRequest) SizeVT() (n int) { if m == nil { return 0 @@ -3788,8 +4273,211 @@ func (m *SavedSearchProperties) UnmarshalVT(dAtA []byte) error { break } } - b := bool(v != 0) - m.ShowAdvancedFilters = &b + b := bool(v != 0) + m.ShowAdvancedFilters = &b + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.IncludeArchived = &b + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.OrderBy = &s + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetadataItems", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetadataItems = append(m.MetadataItems, &SavedSearchMetadataItem{}) + if err := m.MetadataItems[len(m.MetadataItems)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SavedSearchFilterItem) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SavedSearchFilterItem: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SavedSearchFilterItem: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -3812,7 +4500,7 @@ func (m *SavedSearchProperties) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *SavedSearchFilterItem) UnmarshalVT(dAtA []byte) error { +func (m *SavedSearchMetadataItem) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3835,15 +4523,15 @@ func (m *SavedSearchFilterItem) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SavedSearchFilterItem: wiretype end group for non-group") + return fmt.Errorf("proto: SavedSearchMetadataItem: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SavedSearchFilterItem: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SavedSearchMetadataItem: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3871,11 +4559,11 @@ func (m *SavedSearchFilterItem) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Id = string(dAtA[iNdEx:postIndex]) + m.Key = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StringValue", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3903,8 +4591,40 @@ func (m *SavedSearchFilterItem) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.Value = &SavedSearchMetadataItem_StringValue{StringValue: string(dAtA[iNdEx:postIndex])} iNdEx = postIndex + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberValue", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Value = &SavedSearchMetadataItem_NumberValue{NumberValue: float64(math.Float64frombits(v))} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BooleanValue", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Value = &SavedSearchMetadataItem_BooleanValue{BooleanValue: b} default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -5834,6 +6554,98 @@ func (m *SavedSearchProperties) UnmarshalVTUnsafe(dAtA []byte) error { } b := bool(v != 0) m.ShowAdvancedFilters = &b + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.IncludeArchived = &b + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.OrderBy = &s + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetadataItems", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetadataItems = append(m.MetadataItems, &SavedSearchMetadataItem{}) + if err := m.MetadataItems[len(m.MetadataItems)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -5979,6 +6791,161 @@ func (m *SavedSearchFilterItem) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } +func (m *SavedSearchMetadataItem) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SavedSearchMetadataItem: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SavedSearchMetadataItem: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Key = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringValue", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Value = &SavedSearchMetadataItem_StringValue{StringValue: stringValue} + iNdEx = postIndex + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberValue", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.Value = &SavedSearchMetadataItem_NumberValue{NumberValue: float64(math.Float64frombits(v))} + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BooleanValue", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Value = &SavedSearchMetadataItem_BooleanValue{BooleanValue: b} + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *GetSavedSearchRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/go/gen/sift/tags/v2/tags.pb.go b/go/gen/sift/tags/v2/tags.pb.go index 3b0789d57..56b7fe1a9 100644 --- a/go/gen/sift/tags/v2/tags.pb.go +++ b/go/gen/sift/tags/v2/tags.pb.go @@ -23,6 +23,67 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type TagType int32 + +const ( + TagType_TAG_TYPE_UNSPECIFIED TagType = 0 + TagType_TAG_TYPE_ANNOTATION TagType = 1 + TagType_TAG_TYPE_ASSET TagType = 2 + TagType_TAG_TYPE_CAMPAIGN TagType = 3 + TagType_TAG_TYPE_REPORT TagType = 4 + TagType_TAG_TYPE_REPORT_TEMPLATE TagType = 5 + TagType_TAG_TYPE_RUN TagType = 6 +) + +// Enum value maps for TagType. +var ( + TagType_name = map[int32]string{ + 0: "TAG_TYPE_UNSPECIFIED", + 1: "TAG_TYPE_ANNOTATION", + 2: "TAG_TYPE_ASSET", + 3: "TAG_TYPE_CAMPAIGN", + 4: "TAG_TYPE_REPORT", + 5: "TAG_TYPE_REPORT_TEMPLATE", + 6: "TAG_TYPE_RUN", + } + TagType_value = map[string]int32{ + "TAG_TYPE_UNSPECIFIED": 0, + "TAG_TYPE_ANNOTATION": 1, + "TAG_TYPE_ASSET": 2, + "TAG_TYPE_CAMPAIGN": 3, + "TAG_TYPE_REPORT": 4, + "TAG_TYPE_REPORT_TEMPLATE": 5, + "TAG_TYPE_RUN": 6, + } +) + +func (x TagType) Enum() *TagType { + p := new(TagType) + *p = x + return p +} + +func (x TagType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TagType) Descriptor() protoreflect.EnumDescriptor { + return file_sift_tags_v2_tags_proto_enumTypes[0].Descriptor() +} + +func (TagType) Type() protoreflect.EnumType { + return &file_sift_tags_v2_tags_proto_enumTypes[0] +} + +func (x TagType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TagType.Descriptor instead. +func (TagType) EnumDescriptor() ([]byte, []int) { + return file_sift_tags_v2_tags_proto_rawDescGZIP(), []int{0} +} + type Tag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -218,6 +279,8 @@ type ListTagsRequest struct { // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,name" OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // Narrows the tags selected to a specific type. + TagType TagType `protobuf:"varint,5,opt,name=tag_type,json=tagType,proto3,enum=sift.tags.v2.TagType" json:"tag_type,omitempty"` } func (x *ListTagsRequest) Reset() { @@ -280,6 +343,13 @@ func (x *ListTagsRequest) GetOrderBy() string { return "" } +func (x *ListTagsRequest) GetTagType() TagType { + if x != nil { + return x.TagType + } + return TagType_TAG_TYPE_UNSPECIFIED +} + type ListTagsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -369,7 +439,7 @@ var file_sift_tags_v2_tags_proto_rawDesc = []byte{ 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x03, 0x74, 0x61, - 0x67, 0x22, 0x94, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, + 0x67, 0x22, 0xcb, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, @@ -378,52 +448,66 @@ var file_sift_tags_v2_tags_proto_rawDesc = []byte{ 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x61, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x04, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xa0, 0x03, 0x0a, 0x0a, - 0x54, 0x61, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x09, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x92, 0x41, 0x32, 0x12, 0x09, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x1a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x20, 0x74, 0x61, 0x67, 0x2e, 0x2a, 0x16, 0x54, 0x61, 0x67, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x56, 0x32, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x32, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x12, 0xad, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, - 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x62, 0x92, 0x41, 0x4b, 0x12, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x28, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x61, - 0x67, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x2a, 0x15, 0x54, 0x61, - 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, - 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x32, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x45, 0x92, 0x41, 0x42, 0x12, 0x40, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, - 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x74, 0x61, 0x67, 0x73, 0x5d, 0x28, 0x2f, - 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, 0x79, 0x23, 0x74, 0x61, 0x67, 0x29, 0x2e, 0x42, 0xb8, - 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, - 0x2e, 0x76, 0x32, 0x42, 0x09, 0x54, 0x61, 0x67, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, - 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, - 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x76, 0x32, - 0x3b, 0x74, 0x61, 0x67, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x54, 0x58, 0xaa, 0x02, 0x0c, - 0x53, 0x69, 0x66, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0c, 0x53, - 0x69, 0x66, 0x74, 0x5c, 0x54, 0x61, 0x67, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x18, 0x53, 0x69, - 0x66, 0x74, 0x5c, 0x54, 0x61, 0x67, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x54, - 0x61, 0x67, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x0f, 0x12, 0x0d, 0x0a, 0x0b, 0x54, 0x61, - 0x67, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x74, 0x61, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x61, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x2a, 0xac, 0x01, 0x0a, 0x07, 0x54, 0x61, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x14, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x47, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x53, + 0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x41, 0x49, 0x47, 0x4e, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, + 0x54, 0x41, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, + 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x05, 0x12, + 0x10, 0x0a, 0x0c, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x10, + 0x06, 0x32, 0xa0, 0x03, 0x0a, 0x0a, 0x54, 0x61, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x9a, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1e, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x4c, 0x92, 0x41, 0x32, 0x12, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x1a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x74, 0x61, 0x67, 0x2e, 0x2a, 0x16, + 0x54, 0x61, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x61, 0x67, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, + 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x12, 0xad, 0x01, + 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x92, 0x41, 0x4b, 0x12, 0x08, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x28, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x73, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x2e, 0x2a, 0x15, 0x54, 0x61, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, + 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x45, 0x92, + 0x41, 0x42, 0x12, 0x40, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x5b, 0x74, + 0x61, 0x67, 0x73, 0x5d, 0x28, 0x2f, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, 0x79, 0x23, 0x74, + 0x61, 0x67, 0x29, 0x2e, 0x42, 0xb8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x09, 0x54, 0x61, 0x67, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, + 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x74, + 0x61, 0x67, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x74, 0x61, 0x67, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, + 0x53, 0x54, 0x58, 0xaa, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x2e, + 0x56, 0x32, 0xca, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x54, 0x61, 0x67, 0x73, 0x5c, 0x56, + 0x32, 0xe2, 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x54, 0x61, 0x67, 0x73, 0x5c, 0x56, 0x32, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x53, + 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x54, 0x61, 0x67, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x0f, + 0x12, 0x0d, 0x0a, 0x0b, 0x54, 0x61, 0x67, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -438,28 +522,31 @@ func file_sift_tags_v2_tags_proto_rawDescGZIP() []byte { return file_sift_tags_v2_tags_proto_rawDescData } +var file_sift_tags_v2_tags_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_sift_tags_v2_tags_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_sift_tags_v2_tags_proto_goTypes = []interface{}{ - (*Tag)(nil), // 0: sift.tags.v2.Tag - (*CreateTagRequest)(nil), // 1: sift.tags.v2.CreateTagRequest - (*CreateTagResponse)(nil), // 2: sift.tags.v2.CreateTagResponse - (*ListTagsRequest)(nil), // 3: sift.tags.v2.ListTagsRequest - (*ListTagsResponse)(nil), // 4: sift.tags.v2.ListTagsResponse - (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp + (TagType)(0), // 0: sift.tags.v2.TagType + (*Tag)(nil), // 1: sift.tags.v2.Tag + (*CreateTagRequest)(nil), // 2: sift.tags.v2.CreateTagRequest + (*CreateTagResponse)(nil), // 3: sift.tags.v2.CreateTagResponse + (*ListTagsRequest)(nil), // 4: sift.tags.v2.ListTagsRequest + (*ListTagsResponse)(nil), // 5: sift.tags.v2.ListTagsResponse + (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp } var file_sift_tags_v2_tags_proto_depIdxs = []int32{ - 5, // 0: sift.tags.v2.Tag.created_date:type_name -> google.protobuf.Timestamp - 0, // 1: sift.tags.v2.CreateTagResponse.tag:type_name -> sift.tags.v2.Tag - 0, // 2: sift.tags.v2.ListTagsResponse.tags:type_name -> sift.tags.v2.Tag - 1, // 3: sift.tags.v2.TagService.CreateTag:input_type -> sift.tags.v2.CreateTagRequest - 3, // 4: sift.tags.v2.TagService.ListTags:input_type -> sift.tags.v2.ListTagsRequest - 2, // 5: sift.tags.v2.TagService.CreateTag:output_type -> sift.tags.v2.CreateTagResponse - 4, // 6: sift.tags.v2.TagService.ListTags:output_type -> sift.tags.v2.ListTagsResponse - 5, // [5:7] is the sub-list for method output_type - 3, // [3:5] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name + 6, // 0: sift.tags.v2.Tag.created_date:type_name -> google.protobuf.Timestamp + 1, // 1: sift.tags.v2.CreateTagResponse.tag:type_name -> sift.tags.v2.Tag + 0, // 2: sift.tags.v2.ListTagsRequest.tag_type:type_name -> sift.tags.v2.TagType + 1, // 3: sift.tags.v2.ListTagsResponse.tags:type_name -> sift.tags.v2.Tag + 2, // 4: sift.tags.v2.TagService.CreateTag:input_type -> sift.tags.v2.CreateTagRequest + 4, // 5: sift.tags.v2.TagService.ListTags:input_type -> sift.tags.v2.ListTagsRequest + 3, // 6: sift.tags.v2.TagService.CreateTag:output_type -> sift.tags.v2.CreateTagResponse + 5, // 7: sift.tags.v2.TagService.ListTags:output_type -> sift.tags.v2.ListTagsResponse + 6, // [6:8] is the sub-list for method output_type + 4, // [4:6] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_sift_tags_v2_tags_proto_init() } @@ -534,13 +621,14 @@ func file_sift_tags_v2_tags_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_tags_v2_tags_proto_rawDesc, - NumEnums: 0, + NumEnums: 1, NumMessages: 5, NumExtensions: 0, NumServices: 1, }, GoTypes: file_sift_tags_v2_tags_proto_goTypes, DependencyIndexes: file_sift_tags_v2_tags_proto_depIdxs, + EnumInfos: file_sift_tags_v2_tags_proto_enumTypes, MessageInfos: file_sift_tags_v2_tags_proto_msgTypes, }.Build() File_sift_tags_v2_tags_proto = out.File diff --git a/go/gen/sift/tags/v2/tags_vtproto.pb.go b/go/gen/sift/tags/v2/tags_vtproto.pb.go index ab438bb19..240376d8b 100644 --- a/go/gen/sift/tags/v2/tags_vtproto.pb.go +++ b/go/gen/sift/tags/v2/tags_vtproto.pb.go @@ -89,6 +89,7 @@ func (m *ListTagsRequest) CloneVT() *ListTagsRequest { r.PageToken = m.PageToken r.Filter = m.Filter r.OrderBy = m.OrderBy + r.TagType = m.TagType if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -208,6 +209,9 @@ func (this *ListTagsRequest) EqualVT(that *ListTagsRequest) bool { if this.OrderBy != that.OrderBy { return false } + if this.TagType != that.TagType { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -563,6 +567,11 @@ func (m *ListTagsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.TagType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TagType)) + i-- + dAtA[i] = 0x28 + } if len(m.OrderBy) > 0 { i -= len(m.OrderBy) copy(dAtA[i:], m.OrderBy) @@ -821,6 +830,11 @@ func (m *ListTagsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.TagType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TagType)) + i-- + dAtA[i] = 0x28 + } if len(m.OrderBy) > 0 { i -= len(m.OrderBy) copy(dAtA[i:], m.OrderBy) @@ -977,6 +991,9 @@ func (m *ListTagsRequest) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.TagType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.TagType)) + } n += len(m.unknownFields) return n } @@ -1498,6 +1515,25 @@ func (m *ListTagsRequest) UnmarshalVT(dAtA []byte) error { } m.OrderBy = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TagType", wireType) + } + m.TagType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TagType |= TagType(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -2162,6 +2198,25 @@ func (m *ListTagsRequest) UnmarshalVTUnsafe(dAtA []byte) error { } m.OrderBy = stringValue iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TagType", wireType) + } + m.TagType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TagType |= TagType(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/unit/v2/unit.pb.go b/go/gen/sift/unit/v2/unit.pb.go index 8e34b0173..a9b672144 100644 --- a/go/gen/sift/unit/v2/unit.pb.go +++ b/go/gen/sift/unit/v2/unit.pb.go @@ -92,7 +92,6 @@ type ListUnitsRequest struct { PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // A page token, received from a previous `ListUnits` call. // Provide this to retrieve the subsequent page. - // // When paginating, all other parameters provided to `ListUnits` must match // the call that provided the page token. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` @@ -228,6 +227,100 @@ func (x *ListUnitsResponse) GetNextPageToken() string { return "" } +type CreateUnitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *CreateUnitRequest) Reset() { + *x = CreateUnitRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_unit_v2_unit_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateUnitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateUnitRequest) ProtoMessage() {} + +func (x *CreateUnitRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_unit_v2_unit_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateUnitRequest.ProtoReflect.Descriptor instead. +func (*CreateUnitRequest) Descriptor() ([]byte, []int) { + return file_sift_unit_v2_unit_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateUnitRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type CreateUnitResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Unit *Unit `protobuf:"bytes,1,opt,name=unit,proto3" json:"unit,omitempty"` +} + +func (x *CreateUnitResponse) Reset() { + *x = CreateUnitResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_unit_v2_unit_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateUnitResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateUnitResponse) ProtoMessage() {} + +func (x *CreateUnitResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_unit_v2_unit_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateUnitResponse.ProtoReflect.Descriptor instead. +func (*CreateUnitResponse) Descriptor() ([]byte, []int) { + return file_sift_unit_v2_unit_proto_rawDescGZIP(), []int{4} +} + +func (x *CreateUnitResponse) GetUnit() *Unit { + if x != nil { + return x.Unit + } + return nil +} + var File_sift_unit_v2_unit_proto protoreflect.FileDescriptor var file_sift_unit_v2_unit_proto_rawDesc = []byte{ @@ -262,30 +355,48 @@ var file_sift_unit_v2_unit_proto_rawDesc = []byte{ 0x02, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xaf, 0x01, 0x0a, 0x0b, 0x55, 0x6e, 0x69, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, - 0x69, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x6e, 0x69, 0x74, 0x2e, - 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x6e, 0x69, 0x74, 0x2e, - 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x92, 0x41, 0x39, 0x12, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, - 0x6e, 0x69, 0x74, 0x73, 0x1a, 0x13, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, - 0x73, 0x74, 0x20, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x2e, 0x2a, 0x17, 0x55, 0x6e, 0x69, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, - 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x32, 0x2f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x42, 0xb9, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x6e, 0x69, 0x74, 0x2e, 0x76, 0x32, 0x42, 0x09, 0x55, 0x6e, - 0x69, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, - 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, - 0x74, 0x2f, 0x75, 0x6e, 0x69, 0x74, 0x2f, 0x76, 0x32, 0x3b, 0x75, 0x6e, 0x69, 0x74, 0x76, 0x32, - 0xa2, 0x02, 0x03, 0x53, 0x55, 0x58, 0xaa, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x55, 0x6e, - 0x69, 0x74, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x6e, 0x69, - 0x74, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x6e, 0x69, 0x74, - 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x55, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x56, 0x32, - 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x75, 0x6e, 0x69, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, + 0x6e, 0x69, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x32, 0xd9, 0x02, 0x0a, 0x0b, 0x55, 0x6e, 0x69, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa7, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x6e, 0x69, + 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x6e, + 0x69, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x3e, 0x12, 0x0a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x1a, 0x16, 0x55, 0x73, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x75, 0x6e, 0x69, 0x74, + 0x2e, 0x2a, 0x18, 0x55, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x0f, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x6e, 0x69, 0x74, 0x73, + 0x12, 0x9f, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x1e, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x6e, 0x69, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x6e, 0x69, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x51, 0x92, 0x41, 0x39, 0x12, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x1a, + 0x13, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x2e, 0x2a, 0x17, 0x55, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x6e, 0x69, + 0x74, 0x73, 0x42, 0xb9, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x75, 0x6e, 0x69, 0x74, 0x2e, 0x76, 0x32, 0x42, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x75, 0x6e, 0x69, + 0x74, 0x2f, 0x76, 0x32, 0x3b, 0x75, 0x6e, 0x69, 0x74, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x55, + 0x58, 0xaa, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x2e, 0x56, 0x32, + 0xca, 0x02, 0x0c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x6e, 0x69, 0x74, 0x5c, 0x56, 0x32, 0xe2, + 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x6e, 0x69, 0x74, 0x5c, 0x56, 0x32, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x53, 0x69, 0x66, + 0x74, 0x3a, 0x3a, 0x55, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x10, 0x12, 0x0e, + 0x0a, 0x0c, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -300,21 +411,26 @@ func file_sift_unit_v2_unit_proto_rawDescGZIP() []byte { return file_sift_unit_v2_unit_proto_rawDescData } -var file_sift_unit_v2_unit_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_sift_unit_v2_unit_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_sift_unit_v2_unit_proto_goTypes = []interface{}{ - (*Unit)(nil), // 0: sift.unit.v2.Unit - (*ListUnitsRequest)(nil), // 1: sift.unit.v2.ListUnitsRequest - (*ListUnitsResponse)(nil), // 2: sift.unit.v2.ListUnitsResponse + (*Unit)(nil), // 0: sift.unit.v2.Unit + (*ListUnitsRequest)(nil), // 1: sift.unit.v2.ListUnitsRequest + (*ListUnitsResponse)(nil), // 2: sift.unit.v2.ListUnitsResponse + (*CreateUnitRequest)(nil), // 3: sift.unit.v2.CreateUnitRequest + (*CreateUnitResponse)(nil), // 4: sift.unit.v2.CreateUnitResponse } var file_sift_unit_v2_unit_proto_depIdxs = []int32{ 0, // 0: sift.unit.v2.ListUnitsResponse.units:type_name -> sift.unit.v2.Unit - 1, // 1: sift.unit.v2.UnitService.ListUnits:input_type -> sift.unit.v2.ListUnitsRequest - 2, // 2: sift.unit.v2.UnitService.ListUnits:output_type -> sift.unit.v2.ListUnitsResponse - 2, // [2:3] is the sub-list for method output_type - 1, // [1:2] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 0, // 1: sift.unit.v2.CreateUnitResponse.unit:type_name -> sift.unit.v2.Unit + 3, // 2: sift.unit.v2.UnitService.CreateUnit:input_type -> sift.unit.v2.CreateUnitRequest + 1, // 3: sift.unit.v2.UnitService.ListUnits:input_type -> sift.unit.v2.ListUnitsRequest + 4, // 4: sift.unit.v2.UnitService.CreateUnit:output_type -> sift.unit.v2.CreateUnitResponse + 2, // 5: sift.unit.v2.UnitService.ListUnits:output_type -> sift.unit.v2.ListUnitsResponse + 4, // [4:6] is the sub-list for method output_type + 2, // [2:4] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_sift_unit_v2_unit_proto_init() } @@ -359,6 +475,30 @@ func file_sift_unit_v2_unit_proto_init() { return nil } } + file_sift_unit_v2_unit_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateUnitRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_unit_v2_unit_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateUnitResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -366,7 +506,7 @@ func file_sift_unit_v2_unit_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_unit_v2_unit_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/unit/v2/unit.pb.gw.go b/go/gen/sift/unit/v2/unit.pb.gw.go index 43e1059df..2806a61df 100644 --- a/go/gen/sift/unit/v2/unit.pb.gw.go +++ b/go/gen/sift/unit/v2/unit.pb.gw.go @@ -31,6 +31,42 @@ var _ = runtime.String var _ = utilities.NewDoubleArray var _ = metadata.Join +var ( + filter_UnitService_CreateUnit_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_UnitService_CreateUnit_0(ctx context.Context, marshaler runtime.Marshaler, client UnitServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateUnitRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UnitService_CreateUnit_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateUnit(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_UnitService_CreateUnit_0(ctx context.Context, marshaler runtime.Marshaler, server UnitServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateUnitRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UnitService_CreateUnit_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateUnit(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_UnitService_ListUnits_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -73,6 +109,31 @@ func local_request_UnitService_ListUnits_0(ctx context.Context, marshaler runtim // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterUnitServiceHandlerFromEndpoint instead. func RegisterUnitServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server UnitServiceServer) error { + mux.Handle("POST", pattern_UnitService_CreateUnit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.unit.v2.UnitService/CreateUnit", runtime.WithHTTPPathPattern("/api/v2/units")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_UnitService_CreateUnit_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_UnitService_CreateUnit_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_UnitService_ListUnits_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -139,6 +200,28 @@ func RegisterUnitServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn // "UnitServiceClient" to call the correct interceptors. func RegisterUnitServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client UnitServiceClient) error { + mux.Handle("POST", pattern_UnitService_CreateUnit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.unit.v2.UnitService/CreateUnit", runtime.WithHTTPPathPattern("/api/v2/units")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_UnitService_CreateUnit_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_UnitService_CreateUnit_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_UnitService_ListUnits_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -165,9 +248,13 @@ func RegisterUnitServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux } var ( + pattern_UnitService_CreateUnit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v2", "units"}, "")) + pattern_UnitService_ListUnits_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v2", "units"}, "")) ) var ( + forward_UnitService_CreateUnit_0 = runtime.ForwardResponseMessage + forward_UnitService_ListUnits_0 = runtime.ForwardResponseMessage ) diff --git a/go/gen/sift/unit/v2/unit_vtproto.pb.go b/go/gen/sift/unit/v2/unit_vtproto.pb.go index e9cd816b3..1fa246394 100644 --- a/go/gen/sift/unit/v2/unit_vtproto.pb.go +++ b/go/gen/sift/unit/v2/unit_vtproto.pb.go @@ -86,6 +86,40 @@ func (m *ListUnitsResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *CreateUnitRequest) CloneVT() *CreateUnitRequest { + if m == nil { + return (*CreateUnitRequest)(nil) + } + r := new(CreateUnitRequest) + r.Name = m.Name + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateUnitRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateUnitResponse) CloneVT() *CreateUnitResponse { + if m == nil { + return (*CreateUnitResponse)(nil) + } + r := new(CreateUnitResponse) + r.Unit = m.Unit.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateUnitResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (this *Unit) EqualVT(that *Unit) bool { if this == that { return true @@ -172,6 +206,44 @@ func (this *ListUnitsResponse) EqualMessageVT(thatMsg proto.Message) bool { } return this.EqualVT(that) } +func (this *CreateUnitRequest) EqualVT(that *CreateUnitRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateUnitRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateUnitRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateUnitResponse) EqualVT(that *CreateUnitResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Unit.EqualVT(that.Unit) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateUnitResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateUnitResponse) + if !ok { + return false + } + return this.EqualVT(that) +} // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. @@ -182,6 +254,7 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type UnitServiceClient interface { + CreateUnit(ctx context.Context, in *CreateUnitRequest, opts ...grpc.CallOption) (*CreateUnitResponse, error) ListUnits(ctx context.Context, in *ListUnitsRequest, opts ...grpc.CallOption) (*ListUnitsResponse, error) } @@ -193,6 +266,15 @@ func NewUnitServiceClient(cc grpc.ClientConnInterface) UnitServiceClient { return &unitServiceClient{cc} } +func (c *unitServiceClient) CreateUnit(ctx context.Context, in *CreateUnitRequest, opts ...grpc.CallOption) (*CreateUnitResponse, error) { + out := new(CreateUnitResponse) + err := c.cc.Invoke(ctx, "/sift.unit.v2.UnitService/CreateUnit", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *unitServiceClient) ListUnits(ctx context.Context, in *ListUnitsRequest, opts ...grpc.CallOption) (*ListUnitsResponse, error) { out := new(ListUnitsResponse) err := c.cc.Invoke(ctx, "/sift.unit.v2.UnitService/ListUnits", in, out, opts...) @@ -206,6 +288,7 @@ func (c *unitServiceClient) ListUnits(ctx context.Context, in *ListUnitsRequest, // All implementations must embed UnimplementedUnitServiceServer // for forward compatibility type UnitServiceServer interface { + CreateUnit(context.Context, *CreateUnitRequest) (*CreateUnitResponse, error) ListUnits(context.Context, *ListUnitsRequest) (*ListUnitsResponse, error) mustEmbedUnimplementedUnitServiceServer() } @@ -214,6 +297,9 @@ type UnitServiceServer interface { type UnimplementedUnitServiceServer struct { } +func (UnimplementedUnitServiceServer) CreateUnit(context.Context, *CreateUnitRequest) (*CreateUnitResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateUnit not implemented") +} func (UnimplementedUnitServiceServer) ListUnits(context.Context, *ListUnitsRequest) (*ListUnitsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListUnits not implemented") } @@ -230,6 +316,24 @@ func RegisterUnitServiceServer(s grpc.ServiceRegistrar, srv UnitServiceServer) { s.RegisterService(&UnitService_ServiceDesc, srv) } +func _UnitService_CreateUnit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateUnitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UnitServiceServer).CreateUnit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.unit.v2.UnitService/CreateUnit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UnitServiceServer).CreateUnit(ctx, req.(*CreateUnitRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _UnitService_ListUnits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListUnitsRequest) if err := dec(in); err != nil { @@ -255,6 +359,10 @@ var UnitService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "sift.unit.v2.UnitService", HandlerType: (*UnitServiceServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "CreateUnit", + Handler: _UnitService_CreateUnit_Handler, + }, { MethodName: "ListUnits", Handler: _UnitService_ListUnits_Handler, @@ -422,6 +530,89 @@ func (m *ListUnitsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *CreateUnitRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateUnitRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateUnitRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateUnitResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateUnitResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateUnitResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Unit != nil { + size, err := m.Unit.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *Unit) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -580,6 +771,89 @@ func (m *ListUnitsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro return len(dAtA) - i, nil } +func (m *CreateUnitRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateUnitRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateUnitRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateUnitResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateUnitResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateUnitResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Unit != nil { + size, err := m.Unit.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *Unit) SizeVT() (n int) { if m == nil { return 0 @@ -643,6 +917,34 @@ func (m *ListUnitsResponse) SizeVT() (n int) { return n } +func (m *CreateUnitRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CreateUnitResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Unit != nil { + l = m.Unit.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + func (m *Unit) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1041,7 +1343,7 @@ func (m *ListUnitsResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *Unit) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *CreateUnitRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1064,15 +1366,15 @@ func (m *Unit) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Unit: wiretype end group for non-group") + return fmt.Errorf("proto: CreateUnitRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Unit: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateUnitRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnitId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1100,22 +1402,192 @@ func (m *Unit) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.UnitId = stringValue + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AbbreviatedName", wireType) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateUnitResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateUnitResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateUnitResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Unit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Unit == nil { + m.Unit = &Unit{} + } + if err := m.Unit.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Unit) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Unit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Unit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnitId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.UnitId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AbbreviatedName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] @@ -1463,3 +1935,177 @@ func (m *ListUnitsResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } +func (m *CreateUnitRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateUnitRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateUnitRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateUnitResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateUnitResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateUnitResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Unit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Unit == nil { + m.Unit = &Unit{} + } + if err := m.Unit.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/go/gen/sift/user_defined_functions/v1/user_defined_functions.pb.go b/go/gen/sift/user_defined_functions/v1/user_defined_functions.pb.go index 70ba01fd4..14bda91fc 100644 --- a/go/gen/sift/user_defined_functions/v1/user_defined_functions.pb.go +++ b/go/gen/sift/user_defined_functions/v1/user_defined_functions.pb.go @@ -7,6 +7,7 @@ package user_defined_functionsv1 import ( + _ "github.com/sift-stack/sift/go/gen/buf/validate" _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" v2 "github.com/sift-stack/sift/go/gen/sift/calculated_channels/v2" @@ -791,7 +792,7 @@ func (*ValidateUserDefinedFunctionResponse_Success) isValidateUserDefinedFunctio // the current version is returned. If name is changed then only name will be changed. If archive date is changed then only archive date will be changed. // To archive user defined function, specify `archived_date` in the `update mask` as well as a non-null value for `archived_date` in the // `user_defined_function` object. To unarchive a user defined function, specify `archived_date` in the `update mask` and a `null` value for `archived_date` -// in the `user_defined_function` object. +// in the `user_defined_function` object. Alternatively, use `is_archived` with a boolean value to archive/unarchive. type UpdateUserDefinedFunctionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -799,11 +800,12 @@ type UpdateUserDefinedFunctionRequest struct { // The user defined function to update. UserDefinedFunction *v1.UserDefinedFunction `protobuf:"bytes,1,opt,name=user_defined_function,json=userDefinedFunction,proto3" json:"user_defined_function,omitempty"` - // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `expression`, and `function_inputs`. + // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `expression`, `function_inputs`, and `metadata`. // // -- `name` can't be updated if the function has ever had any dependencies // -- `function_inputs` inputs can't be updated if the function has any dependents (functions or calculated channels with a dependency on this function). // -- `expression` can't be updated if the function has dependents and the expression changes the output type. + // -- `metadata` updates metadata associated with the function UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } @@ -1027,7 +1029,7 @@ type ListUserDefinedFunctionsRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // There are currently no available fields. + // Available fields to filter by are `user_defined_function_id`, `name`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` // How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". @@ -1173,7 +1175,7 @@ type ListUserDefinedFunctionVersionsRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // There are currently no available fields. + // Available fields to filter by are `user_defined_function_id`, `name`, `version`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` // How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". @@ -1417,522 +1419,539 @@ var file_sift_user_defined_functions_v1_user_defined_functions_proto_rawDesc = [ 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x76, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x75, 0x73, 0x65, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x62, + 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, + 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x30, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x7e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x44, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, + 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x83, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x1e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, - 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, + 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, + 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xc7, 0x02, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x46, + 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, + 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x00, 0x52, 0x17, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x20, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, + 0x01, 0x48, 0x00, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x42, 0x17, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x04, 0x0a, 0x28, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x73, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x20, 0x75, 0x73, 0x65, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x25, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x13, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x4f, 0x0a, 0x22, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1e, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x14, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x72, 0x75, 0x6c, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x22, + 0x83, 0x01, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x21, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x61, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, - 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xb7, 0x02, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x3e, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x42, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x17, 0x75, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x10, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x0a, 0x92, 0x01, 0x07, 0x22, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x1d, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x04, - 0x0a, 0x28, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x54, 0x0a, 0x25, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x13, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x4f, 0x0a, 0x22, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1e, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x05, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x14, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x72, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x11, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x75, - 0x6c, 0x65, 0x22, 0x76, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x21, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1d, 0x75, 0x73, 0x65, + 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x26, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe8, 0x02, 0x0a, 0x20, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0a, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x63, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa6, 0x04, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x15, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9b, - 0x01, 0x0a, 0x22, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0xab, 0x04, 0x0a, - 0x23, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0xd4, 0x01, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0xbf, 0x01, 0xe0, 0x41, 0x02, 0xba, + 0x48, 0xb8, 0x01, 0xba, 0x01, 0xb4, 0x01, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x5b, 0x61, 0x2d, 0x7a, 0x41, + 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x7e, 0x2e, 0x2d, 0x5d, 0x2e, 0x1a, 0x3e, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x28, 0x27, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, + 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, + 0x39, 0x5f, 0x7e, 0x2e, 0x2d, 0x5d, 0x7b, 0x30, 0x2c, 0x31, 0x32, 0x36, 0x7d, 0x5b, 0x61, 0x2d, + 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x24, 0x27, 0x29, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, + 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, + 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x86, + 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x8a, 0x01, 0x0a, 0x07, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6e, 0x2e, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9b, 0x01, 0x0a, 0x22, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, + 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0xab, 0x04, 0x0a, 0x23, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x54, 0x0a, 0x28, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x8f, - 0x01, 0x0a, 0x2a, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x61, 0x0a, - 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x20, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x61, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x86, 0x01, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x15, 0x75, 0x73, + 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x8a, 0x01, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x01, - 0x0a, 0x1b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, - 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x75, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x1a, 0x54, 0x0a, 0x28, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, + 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x8f, 0x01, 0x0a, 0x2a, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x61, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xb2, 0x02, - 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, - 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x44, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x64, 0x69, 0x73, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x43, 0x0a, - 0x15, 0x44, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xa4, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xb4, 0x01, 0x0a, 0x20, 0x4c, 0x69, - 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, - 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, + 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x86, 0x01, + 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x82, 0x02, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x18, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xbb, 0x01, 0x0a, 0x27, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x63, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x32, 0xee, 0x18, 0x0a, 0x1a, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xaf, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x01, 0x92, - 0x41, 0x51, 0x12, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x37, 0x52, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xb2, 0x02, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, + 0x84, 0x01, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, 0x01, 0x0a, 0x1f, + 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x22, 0xb4, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xdc, 0x02, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x82, 0x02, 0x0a, 0x26, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x75, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, + 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xbb, + 0x01, 0x0a, 0x27, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xee, 0x18, 0x0a, + 0x1a, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xaf, 0x02, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x92, 0x41, 0x58, 0x12, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x37, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x12, 0x4a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x7d, 0x12, 0xb2, 0x02, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x01, 0x92, 0x41, 0x51, 0x12, 0x16, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0x37, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xdc, 0x02, + 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x44, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x92, + 0x41, 0x58, 0x12, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x1a, 0x37, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, + 0x12, 0x4a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb2, 0x02, 0x0a, + 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x45, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, 0x92, 0x41, 0x4e, 0x12, 0x1e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2c, 0x52, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, - 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xbf, 0x02, 0x0a, 0x20, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x48, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, + 0x01, 0x92, 0x41, 0x4e, 0x12, 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2c, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0xbf, 0x02, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x87, 0x01, 0x92, 0x41, 0x53, 0x12, 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x2f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x20, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, - 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x8a, 0x02, 0x0a, 0x19, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x92, - 0x41, 0x3c, 0x12, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1f, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xa9, 0x02, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x80, 0x01, 0x92, 0x41, 0x4b, 0x12, 0x1b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x2c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x20, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x12, 0xa7, 0x02, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x48, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x92, 0x41, 0x53, 0x12, + 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, + 0x73, 0x1a, 0x2f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x8a, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x92, 0x41, 0x58, 0x12, 0x19, 0x55, 0x70, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x92, 0x41, 0x3c, 0x12, 0x19, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, + 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0xa9, 0x02, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x42, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, 0x92, 0x41, 0x4b, 0x12, + 0x1b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2c, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, + 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0xa7, 0x02, 0x0a, + 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, - 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x32, 0x1e, 0x2f, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x84, 0x01, 0x92, 0x41, 0x58, 0x12, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x3b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x32, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb5, 0x02, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, + 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x01, 0x92, 0x41, 0x67, + 0x12, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x4f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x69, 0x66, + 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb5, 0x02, - 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xa1, 0x01, 0x92, 0x41, 0x67, 0x12, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x4f, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x20, 0x69, 0x66, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0xb8, 0x02, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x3f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, 0x01, 0x92, 0x41, 0x6f, 0x12, 0x18, 0x4c, 0x69, 0x73, + 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0xb8, + 0x02, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x53, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, - 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0xf1, 0x02, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x92, 0x41, 0x6f, 0x12, 0x1f, 0x4c, 0x69, 0x73, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4c, 0x4c, 0x69, - 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, - 0x12, 0x42, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x42, 0xac, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x19, 0x55, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x59, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, + 0x01, 0x92, 0x41, 0x6f, 0x12, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x53, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, + 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf1, 0x02, 0x0a, 0x1f, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, + 0x01, 0x92, 0x41, 0x6f, 0x12, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4c, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x75, 0x6c, 0x61, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x55, 0x58, 0xaa, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x28, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x1e, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0xac, 0x02, + 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x42, 0x19, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x59, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, + 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x76, 0x31, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, + 0x55, 0x58, 0xaa, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x28, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x53, 0x69, + 0x66, 0x74, 0x3a, 0x3a, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/user_groups/v2/user_groups.pb.go b/go/gen/sift/user_groups/v2/user_groups.pb.go index 39951d618..47e13cfdf 100644 --- a/go/gen/sift/user_groups/v2/user_groups.pb.go +++ b/go/gen/sift/user_groups/v2/user_groups.pb.go @@ -7,6 +7,7 @@ package user_groupsv2 import ( + _ "github.com/sift-stack/sift/go/gen/buf/validate" _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" v2 "github.com/sift-stack/sift/go/gen/sift/roles/v2" @@ -35,6 +36,7 @@ type UserGroup struct { IsDefault bool `protobuf:"varint,4,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` Resources *UserGroup_Resource `protobuf:"bytes,6,opt,name=resources,proto3" json:"resources,omitempty"` UserIds []string `protobuf:"bytes,7,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"` + IsExternal bool `protobuf:"varint,8,opt,name=is_external,json=isExternal,proto3" json:"is_external,omitempty"` } func (x *UserGroup) Reset() { @@ -111,6 +113,13 @@ func (x *UserGroup) GetUserIds() []string { return nil } +func (x *UserGroup) GetIsExternal() bool { + if x != nil { + return x.IsExternal + } + return false +} + type ListUserGroupsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -132,9 +141,10 @@ type ListUserGroupsRequest struct { // - name Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` // How to order the retrieved user groups. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are: - // - created_date - // - modified_date + // Available fields to order_by are `name`, `created_date`, and `modified_date`. + // If left empty, items are ordered by `name` in ascending order (A-Z). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc,modified_date" OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` } @@ -1073,72 +1083,80 @@ var file_sift_user_groups_v2_user_groups_proto_rawDesc = []byte{ 0x0a, 0x25, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, - 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, - 0x69, 0x66, 0x74, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x02, 0x0a, 0x09, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, - 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x1a, 0x50, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, - 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x44, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x39, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x5a, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, + 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x1a, 0x1b, 0x62, 0x75, + 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, + 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x03, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0b, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, 0x6f, 0x6c, + 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x73, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x5c, 0x0a, 0x1b, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x10, 0xe0, 0x41, 0x01, 0xba, 0x48, 0x0a, 0x92, 0x01, 0x07, + 0x22, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, + 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x73, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x1a, 0x5d, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x10, 0xe0, 0x41, 0x01, 0xba, 0x48, 0x0a, 0x92, 0x01, 0x07, + 0x22, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, + 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, + 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0x43, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x22, 0x75, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x21, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0d, 0xba, 0x48, 0x0a, + 0x92, 0x01, 0x07, 0x22, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, @@ -1153,218 +1171,234 @@ var file_sift_user_groups_v2_user_groups_proto_rawDesc = []byte{ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xec, 0x02, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5d, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x41, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x27, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x8d, 0x02, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0xcf, 0x01, 0xe0, 0x41, 0x02, 0xba, 0x48, 0xc8, 0x01, + 0xba, 0x01, 0xc4, 0x01, 0x0a, 0x17, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x12, 0x52, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x27, 0x6e, 0x61, 0x6d, 0x65, + 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x27, 0x2c, + 0x20, 0x27, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x75, 0x73, 0x65, 0x72, 0x73, 0x27, + 0x5d, 0x1a, 0x55, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x74, 0x68, 0x73, 0x2e, 0x61, 0x6c, + 0x6c, 0x28, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, + 0x5b, 0x27, 0x6e, 0x61, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x27, 0x2c, 0x20, 0x27, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x27, + 0x2c, 0x20, 0x27, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x27, 0x2c, 0x20, 0x27, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x27, 0x5d, 0x29, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5d, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x22, 0x49, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, + 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, + 0x01, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x19, + 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x0a, 0x19, 0x41, 0x64, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, + 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1c, 0x0a, + 0x1a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x1e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, + 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, + 0x01, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x10, 0xe0, 0x41, 0x02, + 0xba, 0x48, 0x0a, 0x92, 0x01, 0x07, 0x22, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x08, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0b, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x32, 0xe8, 0x11, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xee, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x82, 0x01, 0x92, 0x41, 0x64, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x2f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x2a, 0x21, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xdb, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x92, 0x41, + 0x48, 0x12, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, + 0x17, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, + 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x1f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, + 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xdb, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x21, - 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, + 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x92, 0x41, 0x4c, 0x12, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x2a, 0x22, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x41, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, - 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2e, 0x0a, - 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x6c, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x32, 0xe8, 0x11, - 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xee, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, - 0x01, 0x92, 0x41, 0x64, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x2f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x2a, 0x21, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x12, 0xdb, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x92, 0x41, 0x48, 0x12, 0x0c, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x17, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x1f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, + 0x65, 0x22, 0x88, 0x01, 0x92, 0x41, 0x4c, 0x12, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, + 0x22, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x32, 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0xdb, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x6d, 0x92, 0x41, 0x4c, 0x12, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x22, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, - 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, - 0xf7, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, - 0x01, 0x92, 0x41, 0x4c, 0x12, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x22, 0x55, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x32, 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe8, 0x01, 0x0a, 0x0f, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x2e, + 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe8, 0x01, 0x0a, + 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7a, 0x92, 0x41, 0x4c, 0x12, 0x0f, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x15, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x22, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, - 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xf8, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, 0x92, - 0x41, 0x59, 0x12, 0x12, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x1c, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x20, 0x75, - 0x73, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x25, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1e, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x61, 0x64, 0x64, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x12, - 0x99, 0x02, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, - 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, - 0x32, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x01, 0x92, 0x41, 0x68, 0x12, 0x17, 0x52, 0x65, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7a, 0x92, 0x41, 0x4c, + 0x12, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x1a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, + 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x22, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xf8, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x80, 0x01, 0x92, 0x41, 0x59, 0x12, 0x12, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x1c, 0x41, 0x64, 0x64, 0x73, 0x20, + 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, + 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x25, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x61, 0x64, 0x64, 0x2d, 0x75, 0x73, + 0x65, 0x72, 0x12, 0x99, 0x02, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, + 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x01, 0x92, 0x41, 0x68, 0x12, + 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, + 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x2a, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x20, 0x61, - 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, - 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x2a, 0x2a, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x12, 0x86, 0x02, 0x0a, 0x14, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x3a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x12, 0x86, + 0x02, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x92, 0x41, 0x5e, 0x12, - 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x20, 0x75, 0x73, 0x65, 0x72, 0x27, 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2e, 0x2a, 0x27, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x32, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, - 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, - 0x75, 0x73, 0x65, 0x72, 0x12, 0xa1, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, - 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x01, 0x92, 0x41, 0x70, 0x12, 0x16, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x1a, 0x2b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, - 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x73, 0x2e, 0x2a, 0x29, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x56, 0x32, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x2d, 0x66, 0x6f, - 0x72, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x42, 0xf2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, - 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, - 0x55, 0x58, 0xaa, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1e, 0x53, - 0x69, 0x66, 0x74, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5c, 0x56, - 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, - 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x16, 0x12, 0x14, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x20, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x92, + 0x41, 0x5e, 0x12, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x27, 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x2a, 0x27, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x32, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x12, 0xa1, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x12, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x01, 0x92, 0x41, + 0x70, 0x12, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x1a, 0x2b, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x2a, 0x29, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x56, + 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x67, 0x65, 0x74, + 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x42, 0xf2, 0x01, 0x0a, 0x17, + 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, + 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, + 0x66, 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x76, + 0x32, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x76, 0x32, 0xa2, + 0x02, 0x03, 0x53, 0x55, 0x58, 0xaa, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x12, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5c, 0x56, 0x32, 0xe2, + 0x02, 0x1e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x14, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x16, 0x12, 0x14, 0x0a, 0x12, 0x55, 0x73, + 0x65, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/user_groups/v2/user_groups_vtproto.pb.go b/go/gen/sift/user_groups/v2/user_groups_vtproto.pb.go index 6ed52410f..af0ba2027 100644 --- a/go/gen/sift/user_groups/v2/user_groups_vtproto.pb.go +++ b/go/gen/sift/user_groups/v2/user_groups_vtproto.pb.go @@ -59,6 +59,7 @@ func (m *UserGroup) CloneVT() *UserGroup { r.RoleId = m.RoleId r.IsDefault = m.IsDefault r.Resources = m.Resources.CloneVT() + r.IsExternal = m.IsExternal if rhs := m.UserIds; rhs != nil { tmpContainer := make([]string, len(rhs)) copy(tmpContainer, rhs) @@ -474,6 +475,9 @@ func (this *UserGroup) EqualVT(that *UserGroup) bool { return false } } + if this.IsExternal != that.IsExternal { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1361,6 +1365,16 @@ func (m *UserGroup) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsExternal { + i-- + if m.IsExternal { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } if len(m.UserIds) > 0 { for iNdEx := len(m.UserIds) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.UserIds[iNdEx]) @@ -2298,6 +2312,16 @@ func (m *UserGroup) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.IsExternal { + i-- + if m.IsExternal { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } if len(m.UserIds) > 0 { for iNdEx := len(m.UserIds) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.UserIds[iNdEx]) @@ -3203,6 +3227,9 @@ func (m *UserGroup) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.IsExternal { + n += 2 + } n += len(m.unknownFields) return n } @@ -3810,6 +3837,26 @@ func (m *UserGroup) UnmarshalVT(dAtA []byte) error { } m.UserIds = append(m.UserIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsExternal = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -5847,6 +5894,26 @@ func (m *UserGroup) UnmarshalVTUnsafe(dAtA []byte) error { } m.UserIds = append(m.UserIds, stringValue) iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsExternal", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsExternal = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/users/v2/users.pb.go b/go/gen/sift/users/v2/users.pb.go index 6af234866..1fa7ddbde 100644 --- a/go/gen/sift/users/v2/users.pb.go +++ b/go/gen/sift/users/v2/users.pb.go @@ -243,9 +243,10 @@ type ListActiveUsersRequest struct { // Optional. If provided, this will scope down the user search to just those in the organization ID provided. OrganizationId string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` // How to order the retrieved users. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are: - // - created_date - // - modified_date + // Available fields to order_by are `name`, `created_date`, and `modified_date`. + // If left empty, items are ordered by `name` in ascending order (A-Z). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc,modified_date" OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` } @@ -372,6 +373,149 @@ func (x *ListActiveUsersResponse) GetNextPageToken() string { return "" } +// The request for a call to `UserService_ListUsers` to retrieve users. +type ListUsersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of users to return. The service may return fewer than this value. + // If unspecified, at most 50 users will be returned. The maximum value is 1000; values above + // 1000 will be coerced to 1000. Optional. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListUsers` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListUsers` must match + // the call that provided the page token. Optional. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are `user_id` and `name`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/users#user). Optional. + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // How to order the retrieved users. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are: + // - created_date + // - modified_date + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListUsersRequest) Reset() { + *x = ListUsersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_users_v2_users_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUsersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUsersRequest) ProtoMessage() {} + +func (x *ListUsersRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_users_v2_users_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListUsersRequest.ProtoReflect.Descriptor instead. +func (*ListUsersRequest) Descriptor() ([]byte, []int) { + return file_sift_users_v2_users_proto_rawDescGZIP(), []int{6} +} + +func (x *ListUsersRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListUsersRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListUsersRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListUsersRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response of a call to `UserService_ListUsersResponse`. +type ListUsersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Users []*v1.User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListUsersResponse) Reset() { + *x = ListUsersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_users_v2_users_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUsersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUsersResponse) ProtoMessage() {} + +func (x *ListUsersResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_users_v2_users_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListUsersResponse.ProtoReflect.Descriptor instead. +func (*ListUsersResponse) Descriptor() ([]byte, []int) { + return file_sift_users_v2_users_proto_rawDescGZIP(), []int{7} +} + +func (x *ListUsersResponse) GetUsers() []*v1.User { + if x != nil { + return x.Users + } + return nil +} + +func (x *ListUsersResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + var File_sift_users_v2_users_proto protoreflect.FileDescriptor var file_sift_users_v2_users_proto_rawDesc = []byte{ @@ -424,61 +568,88 @@ var file_sift_users_v2_users_proto_rawDesc = []byte{ 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x98, 0x05, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x96, 0x02, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, - 0x01, 0x92, 0x41, 0x60, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x1a, 0x40, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x27, 0x73, 0x20, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x8f, 0x01, - 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x92, 0x41, 0x23, 0x12, 0x07, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x1a, 0x18, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, - 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, - 0x9f, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x25, 0x12, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x1a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x1a, 0x3c, 0x92, 0x41, 0x39, 0x12, 0x37, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x42, - 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, - 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x73, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, - 0x55, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x2e, - 0x56, 0x32, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x5c, - 0x56, 0x32, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x5c, - 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x55, 0x73, 0x65, 0x72, 0x73, 0x3a, 0x3a, 0x56, 0x32, - 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x20, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x95, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x6c, 0x0a, 0x11, + 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xb8, 0x06, 0x0a, 0x0b, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x96, 0x02, 0x0a, 0x1c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x32, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x60, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x1a, 0x40, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x27, + 0x73, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, + 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, + 0x92, 0x41, 0x23, 0x12, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x1a, 0x18, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x25, 0x12, 0x0f, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x1a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x92, 0x41, 0x31, 0x12, 0x09, 0x4c, + 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x1a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x2e, 0x2a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x56, 0x32, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x3a, 0x61, 0x6c, 0x6c, 0x1a, 0x3c, 0x92, 0x41, 0x39, 0x12, 0x37, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, + 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2e, 0x42, 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0a, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x76, 0x32, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x76, 0x32, 0xa2, 0x02, 0x03, 0x53, 0x55, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x3a, 0x3a, 0x56, 0x32, 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x55, 0x73, 0x65, + 0x72, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -493,7 +664,7 @@ func file_sift_users_v2_users_proto_rawDescGZIP() []byte { return file_sift_users_v2_users_proto_rawDescData } -var file_sift_users_v2_users_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_sift_users_v2_users_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_sift_users_v2_users_proto_goTypes = []interface{}{ (*UpdateUserOrganizationActiveRequest)(nil), // 0: sift.users.v2.UpdateUserOrganizationActiveRequest (*UpdateUserOrganizationActiveResponse)(nil), // 1: sift.users.v2.UpdateUserOrganizationActiveResponse @@ -501,22 +672,27 @@ var file_sift_users_v2_users_proto_goTypes = []interface{}{ (*GetUserResponse)(nil), // 3: sift.users.v2.GetUserResponse (*ListActiveUsersRequest)(nil), // 4: sift.users.v2.ListActiveUsersRequest (*ListActiveUsersResponse)(nil), // 5: sift.users.v2.ListActiveUsersResponse - (*v1.User)(nil), // 6: sift.common.type.v1.User + (*ListUsersRequest)(nil), // 6: sift.users.v2.ListUsersRequest + (*ListUsersResponse)(nil), // 7: sift.users.v2.ListUsersResponse + (*v1.User)(nil), // 8: sift.common.type.v1.User } var file_sift_users_v2_users_proto_depIdxs = []int32{ - 6, // 0: sift.users.v2.GetUserResponse.user:type_name -> sift.common.type.v1.User - 6, // 1: sift.users.v2.ListActiveUsersResponse.users:type_name -> sift.common.type.v1.User - 0, // 2: sift.users.v2.UserService.UpdateUserOrganizationActive:input_type -> sift.users.v2.UpdateUserOrganizationActiveRequest - 2, // 3: sift.users.v2.UserService.GetUser:input_type -> sift.users.v2.GetUserRequest - 4, // 4: sift.users.v2.UserService.ListActiveUsers:input_type -> sift.users.v2.ListActiveUsersRequest - 1, // 5: sift.users.v2.UserService.UpdateUserOrganizationActive:output_type -> sift.users.v2.UpdateUserOrganizationActiveResponse - 3, // 6: sift.users.v2.UserService.GetUser:output_type -> sift.users.v2.GetUserResponse - 5, // 7: sift.users.v2.UserService.ListActiveUsers:output_type -> sift.users.v2.ListActiveUsersResponse - 5, // [5:8] is the sub-list for method output_type - 2, // [2:5] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 8, // 0: sift.users.v2.GetUserResponse.user:type_name -> sift.common.type.v1.User + 8, // 1: sift.users.v2.ListActiveUsersResponse.users:type_name -> sift.common.type.v1.User + 8, // 2: sift.users.v2.ListUsersResponse.users:type_name -> sift.common.type.v1.User + 0, // 3: sift.users.v2.UserService.UpdateUserOrganizationActive:input_type -> sift.users.v2.UpdateUserOrganizationActiveRequest + 2, // 4: sift.users.v2.UserService.GetUser:input_type -> sift.users.v2.GetUserRequest + 4, // 5: sift.users.v2.UserService.ListActiveUsers:input_type -> sift.users.v2.ListActiveUsersRequest + 6, // 6: sift.users.v2.UserService.ListUsers:input_type -> sift.users.v2.ListUsersRequest + 1, // 7: sift.users.v2.UserService.UpdateUserOrganizationActive:output_type -> sift.users.v2.UpdateUserOrganizationActiveResponse + 3, // 8: sift.users.v2.UserService.GetUser:output_type -> sift.users.v2.GetUserResponse + 5, // 9: sift.users.v2.UserService.ListActiveUsers:output_type -> sift.users.v2.ListActiveUsersResponse + 7, // 10: sift.users.v2.UserService.ListUsers:output_type -> sift.users.v2.ListUsersResponse + 7, // [7:11] is the sub-list for method output_type + 3, // [3:7] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_sift_users_v2_users_proto_init() } @@ -597,6 +773,30 @@ func file_sift_users_v2_users_proto_init() { return nil } } + file_sift_users_v2_users_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUsersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_users_v2_users_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUsersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -604,7 +804,7 @@ func file_sift_users_v2_users_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_users_v2_users_proto_rawDesc, NumEnums: 0, - NumMessages: 6, + NumMessages: 8, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/users/v2/users.pb.gw.go b/go/gen/sift/users/v2/users.pb.gw.go index 433d9f7c5..dc3c1cd2c 100644 --- a/go/gen/sift/users/v2/users.pb.gw.go +++ b/go/gen/sift/users/v2/users.pb.gw.go @@ -187,6 +187,42 @@ func local_request_UserService_ListActiveUsers_0(ctx context.Context, marshaler } +var ( + filter_UserService_ListUsers_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_UserService_ListUsers_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListUsersRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UserService_ListUsers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListUsers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_UserService_ListUsers_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListUsersRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UserService_ListUsers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListUsers(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterUserServiceHandlerServer registers the http handlers for service UserService to "mux". // UnaryRPC :call UserServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -268,6 +304,31 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("GET", pattern_UserService_ListUsers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.users.v2.UserService/ListUsers", runtime.WithHTTPPathPattern("/api/v2/users:all")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_UserService_ListUsers_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_UserService_ListUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -375,6 +436,28 @@ func RegisterUserServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("GET", pattern_UserService_ListUsers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.users.v2.UserService/ListUsers", runtime.WithHTTPPathPattern("/api/v2/users:all")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_UserService_ListUsers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_UserService_ListUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -384,6 +467,8 @@ var ( pattern_UserService_GetUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v2", "users", "user_id"}, "")) pattern_UserService_ListActiveUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v2", "users"}, "")) + + pattern_UserService_ListUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v2", "users"}, "all")) ) var ( @@ -392,4 +477,6 @@ var ( forward_UserService_GetUser_0 = runtime.ForwardResponseMessage forward_UserService_ListActiveUsers_0 = runtime.ForwardResponseMessage + + forward_UserService_ListUsers_0 = runtime.ForwardResponseMessage ) diff --git a/go/gen/sift/users/v2/users_vtproto.pb.go b/go/gen/sift/users/v2/users_vtproto.pb.go index a11792cab..69d6b521e 100644 --- a/go/gen/sift/users/v2/users_vtproto.pb.go +++ b/go/gen/sift/users/v2/users_vtproto.pb.go @@ -149,6 +149,54 @@ func (m *ListActiveUsersResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *ListUsersRequest) CloneVT() *ListUsersRequest { + if m == nil { + return (*ListUsersRequest)(nil) + } + r := new(ListUsersRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.Filter = m.Filter + r.OrderBy = m.OrderBy + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListUsersRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListUsersResponse) CloneVT() *ListUsersResponse { + if m == nil { + return (*ListUsersResponse)(nil) + } + r := new(ListUsersResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.Users; rhs != nil { + tmpContainer := make([]*v1.User, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v1.User }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v1.User) + } + } + r.Users = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListUsersResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (this *UpdateUserOrganizationActiveRequest) EqualVT(that *UpdateUserOrganizationActiveRequest) bool { if this == that { return true @@ -303,6 +351,74 @@ func (this *ListActiveUsersResponse) EqualMessageVT(thatMsg proto.Message) bool } return this.EqualVT(that) } +func (this *ListUsersRequest) EqualVT(that *ListUsersRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListUsersRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListUsersRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListUsersResponse) EqualVT(that *ListUsersResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Users) != len(that.Users) { + return false + } + for i, vx := range this.Users { + vy := that.Users[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v1.User{} + } + if q == nil { + q = &v1.User{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v1.User) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListUsersResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListUsersResponse) + if !ok { + return false + } + return this.EqualVT(that) +} // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. @@ -319,6 +435,8 @@ type UserServiceClient interface { GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) // List active users. ListActiveUsers(ctx context.Context, in *ListActiveUsersRequest, opts ...grpc.CallOption) (*ListActiveUsersResponse, error) + // List users. + ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error) } type userServiceClient struct { @@ -356,6 +474,15 @@ func (c *userServiceClient) ListActiveUsers(ctx context.Context, in *ListActiveU return out, nil } +func (c *userServiceClient) ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error) { + out := new(ListUsersResponse) + err := c.cc.Invoke(ctx, "/sift.users.v2.UserService/ListUsers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // UserServiceServer is the server API for UserService service. // All implementations must embed UnimplementedUserServiceServer // for forward compatibility @@ -366,6 +493,8 @@ type UserServiceServer interface { GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error) // List active users. ListActiveUsers(context.Context, *ListActiveUsersRequest) (*ListActiveUsersResponse, error) + // List users. + ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error) mustEmbedUnimplementedUserServiceServer() } @@ -382,6 +511,9 @@ func (UnimplementedUserServiceServer) GetUser(context.Context, *GetUserRequest) func (UnimplementedUserServiceServer) ListActiveUsers(context.Context, *ListActiveUsersRequest) (*ListActiveUsersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListActiveUsers not implemented") } +func (UnimplementedUserServiceServer) ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUsers not implemented") +} func (UnimplementedUserServiceServer) mustEmbedUnimplementedUserServiceServer() {} // UnsafeUserServiceServer may be embedded to opt out of forward compatibility for this service. @@ -449,6 +581,24 @@ func _UserService_ListActiveUsers_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _UserService_ListUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUsersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServiceServer).ListUsers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.users.v2.UserService/ListUsers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServiceServer).ListUsers(ctx, req.(*ListUsersRequest)) + } + return interceptor(ctx, in, info, handler) +} + // UserService_ServiceDesc is the grpc.ServiceDesc for UserService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -468,6 +618,10 @@ var UserService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListActiveUsers", Handler: _UserService_ListActiveUsers_Handler, }, + { + MethodName: "ListUsers", + Handler: _UserService_ListUsers_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "sift/users/v2/users.proto", @@ -788,6 +942,129 @@ func (m *ListActiveUsersResponse) MarshalToSizedBufferVT(dAtA []byte) (int, erro return len(dAtA) - i, nil } +func (m *ListUsersRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListUsersRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListUsersRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListUsersResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListUsersResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListUsersResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Users) > 0 { + for iNdEx := len(m.Users) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Users[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Users[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *UpdateUserOrganizationActiveRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -1103,18 +1380,141 @@ func (m *ListActiveUsersResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int return len(dAtA) - i, nil } -func (m *UpdateUserOrganizationActiveRequest) SizeVT() (n int) { +func (m *ListUsersRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { - return 0 + return nil, nil } - var l int - _ = l - l = len(m.UserId) - if l > 0 { - n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err } - l = len(m.OrganizationId) - if l > 0 { + return dAtA[:n], nil +} + +func (m *ListUsersRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListUsersRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListUsersResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListUsersResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListUsersResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Users) > 0 { + for iNdEx := len(m.Users) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Users[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Users[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *UpdateUserOrganizationActiveRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.UserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } if m.Active { @@ -1223,6 +1623,57 @@ func (m *ListActiveUsersResponse) SizeVT() (n int) { return n } +func (m *ListUsersRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListUsersResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Users) > 0 { + for _, e := range m.Users { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + func (m *UpdateUserOrganizationActiveRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1910,7 +2361,7 @@ func (m *ListActiveUsersResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateUserOrganizationActiveRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ListUsersRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1933,15 +2384,34 @@ func (m *UpdateUserOrganizationActiveRequest) UnmarshalVTUnsafe(dAtA []byte) err fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateUserOrganizationActiveRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ListUsersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateUserOrganizationActiveRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListUsersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1969,15 +2439,11 @@ func (m *UpdateUserOrganizationActiveRequest) UnmarshalVTUnsafe(dAtA []byte) err if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.UserId = stringValue + m.PageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2005,17 +2471,13 @@ func (m *UpdateUserOrganizationActiveRequest) UnmarshalVTUnsafe(dAtA []byte) err if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.OrganizationId = stringValue + m.Filter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -2025,12 +2487,24 @@ func (m *UpdateUserOrganizationActiveRequest) UnmarshalVTUnsafe(dAtA []byte) err } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.Active = bool(v != 0) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -2053,7 +2527,7 @@ func (m *UpdateUserOrganizationActiveRequest) UnmarshalVTUnsafe(dAtA []byte) err } return nil } -func (m *UpdateUserOrganizationActiveResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ListUsersResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2076,35 +2550,485 @@ func (m *UpdateUserOrganizationActiveResponse) UnmarshalVTUnsafe(dAtA []byte) er fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateUserOrganizationActiveResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListUsersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateUserOrganizationActiveResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListUsersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Users", wireType) } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Users = append(m.Users, &v1.User{}) + if unmarshal, ok := interface{}(m.Users[len(m.Users)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Users[len(m.Users)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateUserOrganizationActiveRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateUserOrganizationActiveRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateUserOrganizationActiveRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.UserId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Active = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateUserOrganizationActiveResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateUserOrganizationActiveResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateUserOrganizationActiveResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetUserRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetUserRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetUserRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.UserId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetUserResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetUserResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetUserResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.User == nil { + m.User = &v1.User{} + } + if unmarshal, ok := interface{}(m.User).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.User); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { return io.ErrUnexpectedEOF } return nil } -func (m *GetUserRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ListActiveUsersRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2127,15 +3051,34 @@ func (m *GetUserRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetUserRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ListActiveUsersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetUserRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListActiveUsersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2167,7 +3110,115 @@ func (m *GetUserRequest) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.UserId = stringValue + m.PageToken = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue iNdEx = postIndex default: iNdEx = preIndex @@ -2191,7 +3242,7 @@ func (m *GetUserRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *GetUserResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ListActiveUsersResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2214,15 +3265,15 @@ func (m *GetUserResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetUserResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListActiveUsersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetUserResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListActiveUsersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Users", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2249,21 +3300,55 @@ func (m *GetUserResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.User == nil { - m.User = &v1.User{} - } - if unmarshal, ok := interface{}(m.User).(interface { + m.Users = append(m.Users, &v1.User{}) + if unmarshal, ok := interface{}(m.Users[len(m.Users)-1]).(interface { UnmarshalVTUnsafe([]byte) error }); ok { if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.User); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Users[len(m.Users)-1]); err != nil { return err } } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -2286,7 +3371,7 @@ func (m *GetUserResponse) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ListActiveUsersRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ListUsersRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2309,10 +3394,10 @@ func (m *ListActiveUsersRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListActiveUsersRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ListUsersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListActiveUsersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListUsersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -2407,42 +3492,6 @@ func (m *ListActiveUsersRequest) UnmarshalVTUnsafe(dAtA []byte) error { m.Filter = stringValue iNdEx = postIndex case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.OrganizationId = stringValue - iNdEx = postIndex - case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } @@ -2500,7 +3549,7 @@ func (m *ListActiveUsersRequest) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ListActiveUsersResponse) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ListUsersResponse) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2523,10 +3572,10 @@ func (m *ListActiveUsersResponse) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListActiveUsersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListUsersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListActiveUsersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListUsersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: diff --git a/go/gen/sift/webhooks/v1/webhooks.pb.go b/go/gen/sift/webhooks/v1/webhooks.pb.go new file mode 100644 index 000000000..8c1743bcd --- /dev/null +++ b/go/gen/sift/webhooks/v1/webhooks.pb.go @@ -0,0 +1,2933 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: sift/webhooks/v1/webhooks.proto + +package webhooksv1 + +import ( + _ "github.com/sift-stack/sift/go/gen/buf/validate" + _ "github.com/sift-stack/sift/go/gen/google/api" + _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type WebhookEventType int32 + +const ( + WebhookEventType_WEBHOOK_EVENT_TYPE_UNSPECIFIED WebhookEventType = 0 + WebhookEventType_WEBHOOK_EVENT_TYPE_RULE_VIOLATION WebhookEventType = 1 +) + +// Enum value maps for WebhookEventType. +var ( + WebhookEventType_name = map[int32]string{ + 0: "WEBHOOK_EVENT_TYPE_UNSPECIFIED", + 1: "WEBHOOK_EVENT_TYPE_RULE_VIOLATION", + } + WebhookEventType_value = map[string]int32{ + "WEBHOOK_EVENT_TYPE_UNSPECIFIED": 0, + "WEBHOOK_EVENT_TYPE_RULE_VIOLATION": 1, + } +) + +func (x WebhookEventType) Enum() *WebhookEventType { + p := new(WebhookEventType) + *p = x + return p +} + +func (x WebhookEventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebhookEventType) Descriptor() protoreflect.EnumDescriptor { + return file_sift_webhooks_v1_webhooks_proto_enumTypes[0].Descriptor() +} + +func (WebhookEventType) Type() protoreflect.EnumType { + return &file_sift_webhooks_v1_webhooks_proto_enumTypes[0] +} + +func (x WebhookEventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WebhookEventType.Descriptor instead. +func (WebhookEventType) EnumDescriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{0} +} + +type WebhookLogStatus int32 + +const ( + WebhookLogStatus_WEBHOOK_LOG_STATUS_UNSPECIFIED WebhookLogStatus = 0 + WebhookLogStatus_WEBHOOK_LOG_STATUS_SENT WebhookLogStatus = 1 + WebhookLogStatus_WEBHOOK_LOG_STATUS_FAILED WebhookLogStatus = 2 + WebhookLogStatus_WEBHOOK_LOG_STATUS_RETRYING WebhookLogStatus = 3 +) + +// Enum value maps for WebhookLogStatus. +var ( + WebhookLogStatus_name = map[int32]string{ + 0: "WEBHOOK_LOG_STATUS_UNSPECIFIED", + 1: "WEBHOOK_LOG_STATUS_SENT", + 2: "WEBHOOK_LOG_STATUS_FAILED", + 3: "WEBHOOK_LOG_STATUS_RETRYING", + } + WebhookLogStatus_value = map[string]int32{ + "WEBHOOK_LOG_STATUS_UNSPECIFIED": 0, + "WEBHOOK_LOG_STATUS_SENT": 1, + "WEBHOOK_LOG_STATUS_FAILED": 2, + "WEBHOOK_LOG_STATUS_RETRYING": 3, + } +) + +func (x WebhookLogStatus) Enum() *WebhookLogStatus { + p := new(WebhookLogStatus) + *p = x + return p +} + +func (x WebhookLogStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebhookLogStatus) Descriptor() protoreflect.EnumDescriptor { + return file_sift_webhooks_v1_webhooks_proto_enumTypes[1].Descriptor() +} + +func (WebhookLogStatus) Type() protoreflect.EnumType { + return &file_sift_webhooks_v1_webhooks_proto_enumTypes[1] +} + +func (x WebhookLogStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WebhookLogStatus.Descriptor instead. +func (WebhookLogStatus) EnumDescriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{1} +} + +type Webhook struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"` + OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + TargetUrl string `protobuf:"bytes,3,opt,name=target_url,json=targetUrl,proto3" json:"target_url,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + EventType WebhookEventType `protobuf:"varint,5,opt,name=event_type,json=eventType,proto3,enum=sift.webhooks.v1.WebhookEventType" json:"event_type,omitempty"` + Payload *string `protobuf:"bytes,6,opt,name=payload,proto3,oneof" json:"payload,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=archived_date,json=archivedDate,proto3,oneof" json:"archived_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,10,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + ModifiedByUserId string `protobuf:"bytes,11,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` + HttpHeaders []*WebhookHttpHeader `protobuf:"bytes,12,rep,name=http_headers,json=httpHeaders,proto3" json:"http_headers,omitempty"` + IsArchived bool `protobuf:"varint,13,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` +} + +func (x *Webhook) Reset() { + *x = Webhook{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Webhook) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Webhook) ProtoMessage() {} + +func (x *Webhook) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Webhook.ProtoReflect.Descriptor instead. +func (*Webhook) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{0} +} + +func (x *Webhook) GetWebhookId() string { + if x != nil { + return x.WebhookId + } + return "" +} + +func (x *Webhook) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *Webhook) GetTargetUrl() string { + if x != nil { + return x.TargetUrl + } + return "" +} + +func (x *Webhook) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Webhook) GetEventType() WebhookEventType { + if x != nil { + return x.EventType + } + return WebhookEventType_WEBHOOK_EVENT_TYPE_UNSPECIFIED +} + +func (x *Webhook) GetPayload() string { + if x != nil && x.Payload != nil { + return *x.Payload + } + return "" +} + +func (x *Webhook) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *Webhook) GetModifiedDate() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedDate + } + return nil +} + +func (x *Webhook) GetArchivedDate() *timestamppb.Timestamp { + if x != nil { + return x.ArchivedDate + } + return nil +} + +func (x *Webhook) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +func (x *Webhook) GetModifiedByUserId() string { + if x != nil { + return x.ModifiedByUserId + } + return "" +} + +func (x *Webhook) GetHttpHeaders() []*WebhookHttpHeader { + if x != nil { + return x.HttpHeaders + } + return nil +} + +func (x *Webhook) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + +type WebhookLog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebhookLogId string `protobuf:"bytes,1,opt,name=webhook_log_id,json=webhookLogId,proto3" json:"webhook_log_id,omitempty"` + WebhookId string `protobuf:"bytes,2,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"` + EventId string `protobuf:"bytes,3,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"` + OrganizationId string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + Status WebhookLogStatus `protobuf:"varint,5,opt,name=status,proto3,enum=sift.webhooks.v1.WebhookLogStatus" json:"status,omitempty"` + Payload *string `protobuf:"bytes,6,opt,name=payload,proto3,oneof" json:"payload,omitempty"` + RetryAttemptNumber uint32 `protobuf:"varint,7,opt,name=retry_attempt_number,json=retryAttemptNumber,proto3" json:"retry_attempt_number,omitempty"` + ErrorReason *string `protobuf:"bytes,8,opt,name=error_reason,json=errorReason,proto3,oneof" json:"error_reason,omitempty"` + SentDate *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=sent_date,json=sentDate,proto3" json:"sent_date,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,12,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + ModifiedByUserId string `protobuf:"bytes,13,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` +} + +func (x *WebhookLog) Reset() { + *x = WebhookLog{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookLog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookLog) ProtoMessage() {} + +func (x *WebhookLog) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WebhookLog.ProtoReflect.Descriptor instead. +func (*WebhookLog) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{1} +} + +func (x *WebhookLog) GetWebhookLogId() string { + if x != nil { + return x.WebhookLogId + } + return "" +} + +func (x *WebhookLog) GetWebhookId() string { + if x != nil { + return x.WebhookId + } + return "" +} + +func (x *WebhookLog) GetEventId() string { + if x != nil { + return x.EventId + } + return "" +} + +func (x *WebhookLog) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *WebhookLog) GetStatus() WebhookLogStatus { + if x != nil { + return x.Status + } + return WebhookLogStatus_WEBHOOK_LOG_STATUS_UNSPECIFIED +} + +func (x *WebhookLog) GetPayload() string { + if x != nil && x.Payload != nil { + return *x.Payload + } + return "" +} + +func (x *WebhookLog) GetRetryAttemptNumber() uint32 { + if x != nil { + return x.RetryAttemptNumber + } + return 0 +} + +func (x *WebhookLog) GetErrorReason() string { + if x != nil && x.ErrorReason != nil { + return *x.ErrorReason + } + return "" +} + +func (x *WebhookLog) GetSentDate() *timestamppb.Timestamp { + if x != nil { + return x.SentDate + } + return nil +} + +func (x *WebhookLog) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *WebhookLog) GetModifiedDate() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedDate + } + return nil +} + +func (x *WebhookLog) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +func (x *WebhookLog) GetModifiedByUserId() string { + if x != nil { + return x.ModifiedByUserId + } + return "" +} + +type WebhookSignatureKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignatureKey string `protobuf:"bytes,1,opt,name=signature_key,json=signatureKey,proto3" json:"signature_key,omitempty"` + Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,5,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + ModifiedByUserId string `protobuf:"bytes,6,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` +} + +func (x *WebhookSignatureKey) Reset() { + *x = WebhookSignatureKey{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookSignatureKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookSignatureKey) ProtoMessage() {} + +func (x *WebhookSignatureKey) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WebhookSignatureKey.ProtoReflect.Descriptor instead. +func (*WebhookSignatureKey) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{2} +} + +func (x *WebhookSignatureKey) GetSignatureKey() string { + if x != nil { + return x.SignatureKey + } + return "" +} + +func (x *WebhookSignatureKey) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *WebhookSignatureKey) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *WebhookSignatureKey) GetModifiedDate() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedDate + } + return nil +} + +func (x *WebhookSignatureKey) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +func (x *WebhookSignatureKey) GetModifiedByUserId() string { + if x != nil { + return x.ModifiedByUserId + } + return "" +} + +type WebhookHttpHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *WebhookHttpHeader) Reset() { + *x = WebhookHttpHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookHttpHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookHttpHeader) ProtoMessage() {} + +func (x *WebhookHttpHeader) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WebhookHttpHeader.ProtoReflect.Descriptor instead. +func (*WebhookHttpHeader) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{3} +} + +func (x *WebhookHttpHeader) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WebhookHttpHeader) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +// The request for a call to `WebhookService_GetWebhook` to retrieve a webhook. +type GetWebhookRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"` +} + +func (x *GetWebhookRequest) Reset() { + *x = GetWebhookRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWebhookRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWebhookRequest) ProtoMessage() {} + +func (x *GetWebhookRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWebhookRequest.ProtoReflect.Descriptor instead. +func (*GetWebhookRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{4} +} + +func (x *GetWebhookRequest) GetWebhookId() string { + if x != nil { + return x.WebhookId + } + return "" +} + +// The response of a call to `WebhookService_GetWebhook`. +type GetWebhookResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Webhook *Webhook `protobuf:"bytes,1,opt,name=webhook,proto3" json:"webhook,omitempty"` +} + +func (x *GetWebhookResponse) Reset() { + *x = GetWebhookResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWebhookResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWebhookResponse) ProtoMessage() {} + +func (x *GetWebhookResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWebhookResponse.ProtoReflect.Descriptor instead. +func (*GetWebhookResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{5} +} + +func (x *GetWebhookResponse) GetWebhook() *Webhook { + if x != nil { + return x.Webhook + } + return nil +} + +// The request for a call to `WebhookService_UpdateWebhook` to update a webhook. +type UpdateWebhookRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The webhook to update. The webhook's `webhook_id` field is used to identify + // the webhook to update and is required. + Webhook *Webhook `protobuf:"bytes,1,opt,name=webhook,proto3" json:"webhook,omitempty"` + // The list of fields to be updated. The fields available to be updated are + // 'target_url', 'name', 'event_type', 'payload', 'http_headers', 'archived_date', 'is_archived'. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateWebhookRequest) Reset() { + *x = UpdateWebhookRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateWebhookRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWebhookRequest) ProtoMessage() {} + +func (x *UpdateWebhookRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateWebhookRequest.ProtoReflect.Descriptor instead. +func (*UpdateWebhookRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{6} +} + +func (x *UpdateWebhookRequest) GetWebhook() *Webhook { + if x != nil { + return x.Webhook + } + return nil +} + +func (x *UpdateWebhookRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The response of a call to `WebhookService_UpdateWebhook`. To archive a webhook, specify `archived_date` +// in the `update mask` as well as a non-null value for `archived_date` in the `webhook` object. +// To unarchive a webhook, specify `archived_date` in the `update mask` and a `null` value for +// `archived_date` in the `webhook` object. +type UpdateWebhookResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Webhook *Webhook `protobuf:"bytes,1,opt,name=webhook,proto3" json:"webhook,omitempty"` +} + +func (x *UpdateWebhookResponse) Reset() { + *x = UpdateWebhookResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateWebhookResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWebhookResponse) ProtoMessage() {} + +func (x *UpdateWebhookResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateWebhookResponse.ProtoReflect.Descriptor instead. +func (*UpdateWebhookResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{7} +} + +func (x *UpdateWebhookResponse) GetWebhook() *Webhook { + if x != nil { + return x.Webhook + } + return nil +} + +// The request for a call to `WebhookService_CreateWebhook` to create a webhook. +type CreateWebhookRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + TargetUrl string `protobuf:"bytes,2,opt,name=target_url,json=targetUrl,proto3" json:"target_url,omitempty"` + EventType WebhookEventType `protobuf:"varint,3,opt,name=event_type,json=eventType,proto3,enum=sift.webhooks.v1.WebhookEventType" json:"event_type,omitempty"` + Payload *string `protobuf:"bytes,4,opt,name=payload,proto3,oneof" json:"payload,omitempty"` + HttpHeaders []*WebhookHttpHeader `protobuf:"bytes,5,rep,name=http_headers,json=httpHeaders,proto3" json:"http_headers,omitempty"` +} + +func (x *CreateWebhookRequest) Reset() { + *x = CreateWebhookRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWebhookRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWebhookRequest) ProtoMessage() {} + +func (x *CreateWebhookRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateWebhookRequest.ProtoReflect.Descriptor instead. +func (*CreateWebhookRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{8} +} + +func (x *CreateWebhookRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateWebhookRequest) GetTargetUrl() string { + if x != nil { + return x.TargetUrl + } + return "" +} + +func (x *CreateWebhookRequest) GetEventType() WebhookEventType { + if x != nil { + return x.EventType + } + return WebhookEventType_WEBHOOK_EVENT_TYPE_UNSPECIFIED +} + +func (x *CreateWebhookRequest) GetPayload() string { + if x != nil && x.Payload != nil { + return *x.Payload + } + return "" +} + +func (x *CreateWebhookRequest) GetHttpHeaders() []*WebhookHttpHeader { + if x != nil { + return x.HttpHeaders + } + return nil +} + +// The response of a call to `WebhookService_CreateWebhook`. +type CreateWebhookResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Webhook *Webhook `protobuf:"bytes,1,opt,name=webhook,proto3" json:"webhook,omitempty"` +} + +func (x *CreateWebhookResponse) Reset() { + *x = CreateWebhookResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWebhookResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWebhookResponse) ProtoMessage() {} + +func (x *CreateWebhookResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateWebhookResponse.ProtoReflect.Descriptor instead. +func (*CreateWebhookResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateWebhookResponse) GetWebhook() *Webhook { + if x != nil { + return x.Webhook + } + return nil +} + +// The request for a call to `WebhookService_ListWebhooks` to retrieve and filter webhooks. +type ListWebhooksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of webhooks to return. + // The service may return fewer than this value. + // If unspecified, at most 50 runs will be returned. + // The maximum value is 1000. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListWebhooks` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListWebhooks` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are `webhook_id`, `name`, `event_type`, `is_archived`, and `archived_date`. + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // How to order the retrieved webhooks. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available field to order_by is `created_date`. + // If left empty, items are ordered by `created_date` in ascending order (oldest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListWebhooksRequest) Reset() { + *x = ListWebhooksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWebhooksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWebhooksRequest) ProtoMessage() {} + +func (x *ListWebhooksRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWebhooksRequest.ProtoReflect.Descriptor instead. +func (*ListWebhooksRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{10} +} + +func (x *ListWebhooksRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListWebhooksRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListWebhooksRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListWebhooksRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response of a call to `WebhookService_ListWebhooks`. +type ListWebhooksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Webhooks []*Webhook `protobuf:"bytes,1,rep,name=webhooks,proto3" json:"webhooks,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListWebhooksResponse) Reset() { + *x = ListWebhooksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWebhooksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWebhooksResponse) ProtoMessage() {} + +func (x *ListWebhooksResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWebhooksResponse.ProtoReflect.Descriptor instead. +func (*ListWebhooksResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{11} +} + +func (x *ListWebhooksResponse) GetWebhooks() []*Webhook { + if x != nil { + return x.Webhooks + } + return nil +} + +func (x *ListWebhooksResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The request for a call to `WebhookService_TestWebhook` to test an existing webhook +// or a webhook create request. +type TestWebhookRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Form: + // + // *TestWebhookRequest_WebhookId + // *TestWebhookRequest_Webhook + // *TestWebhookRequest_CreateRequest + Form isTestWebhookRequest_Form `protobuf_oneof:"form"` +} + +func (x *TestWebhookRequest) Reset() { + *x = TestWebhookRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestWebhookRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestWebhookRequest) ProtoMessage() {} + +func (x *TestWebhookRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestWebhookRequest.ProtoReflect.Descriptor instead. +func (*TestWebhookRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{12} +} + +func (m *TestWebhookRequest) GetForm() isTestWebhookRequest_Form { + if m != nil { + return m.Form + } + return nil +} + +func (x *TestWebhookRequest) GetWebhookId() string { + if x, ok := x.GetForm().(*TestWebhookRequest_WebhookId); ok { + return x.WebhookId + } + return "" +} + +func (x *TestWebhookRequest) GetWebhook() *Webhook { + if x, ok := x.GetForm().(*TestWebhookRequest_Webhook); ok { + return x.Webhook + } + return nil +} + +func (x *TestWebhookRequest) GetCreateRequest() *CreateWebhookRequest { + if x, ok := x.GetForm().(*TestWebhookRequest_CreateRequest); ok { + return x.CreateRequest + } + return nil +} + +type isTestWebhookRequest_Form interface { + isTestWebhookRequest_Form() +} + +type TestWebhookRequest_WebhookId struct { + WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3,oneof"` +} + +type TestWebhookRequest_Webhook struct { + Webhook *Webhook `protobuf:"bytes,2,opt,name=webhook,proto3,oneof"` +} + +type TestWebhookRequest_CreateRequest struct { + CreateRequest *CreateWebhookRequest `protobuf:"bytes,3,opt,name=create_request,json=createRequest,proto3,oneof"` +} + +func (*TestWebhookRequest_WebhookId) isTestWebhookRequest_Form() {} + +func (*TestWebhookRequest_Webhook) isTestWebhookRequest_Form() {} + +func (*TestWebhookRequest_CreateRequest) isTestWebhookRequest_Form() {} + +// The response of a call to `WebhookService_TestWebhook`. The response code and body will come from the HTTP response +// from the target URL. +type TestWebhookResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HttpResponseCode uint32 `protobuf:"varint,1,opt,name=http_response_code,json=httpResponseCode,proto3" json:"http_response_code,omitempty"` + HttpResponseBody []byte `protobuf:"bytes,2,opt,name=http_response_body,json=httpResponseBody,proto3" json:"http_response_body,omitempty"` +} + +func (x *TestWebhookResponse) Reset() { + *x = TestWebhookResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestWebhookResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestWebhookResponse) ProtoMessage() {} + +func (x *TestWebhookResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestWebhookResponse.ProtoReflect.Descriptor instead. +func (*TestWebhookResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{13} +} + +func (x *TestWebhookResponse) GetHttpResponseCode() uint32 { + if x != nil { + return x.HttpResponseCode + } + return 0 +} + +func (x *TestWebhookResponse) GetHttpResponseBody() []byte { + if x != nil { + return x.HttpResponseBody + } + return nil +} + +// The request for a call to `WebhookService_CreateWebhookSignatureKey` to create a webhook signature key. +type CreateWebhookSignatureKeyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateWebhookSignatureKeyRequest) Reset() { + *x = CreateWebhookSignatureKeyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWebhookSignatureKeyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWebhookSignatureKeyRequest) ProtoMessage() {} + +func (x *CreateWebhookSignatureKeyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateWebhookSignatureKeyRequest.ProtoReflect.Descriptor instead. +func (*CreateWebhookSignatureKeyRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{14} +} + +// The response for a call to `WebhookService_CreateWebhookSignatureKey`. The `active` field indicates whether +// or not whether the key is currently active. +type CreateWebhookSignatureKeyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignatureKey *WebhookSignatureKey `protobuf:"bytes,1,opt,name=signature_key,json=signatureKey,proto3" json:"signature_key,omitempty"` +} + +func (x *CreateWebhookSignatureKeyResponse) Reset() { + *x = CreateWebhookSignatureKeyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWebhookSignatureKeyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWebhookSignatureKeyResponse) ProtoMessage() {} + +func (x *CreateWebhookSignatureKeyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateWebhookSignatureKeyResponse.ProtoReflect.Descriptor instead. +func (*CreateWebhookSignatureKeyResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{15} +} + +func (x *CreateWebhookSignatureKeyResponse) GetSignatureKey() *WebhookSignatureKey { + if x != nil { + return x.SignatureKey + } + return nil +} + +// The request for a call to `WebhookService_GetWebhookSignatureKey` to retrieve the current webhook signature key. +type GetWebhookSignatureKeyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional organization ID. + OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` +} + +func (x *GetWebhookSignatureKeyRequest) Reset() { + *x = GetWebhookSignatureKeyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWebhookSignatureKeyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWebhookSignatureKeyRequest) ProtoMessage() {} + +func (x *GetWebhookSignatureKeyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWebhookSignatureKeyRequest.ProtoReflect.Descriptor instead. +func (*GetWebhookSignatureKeyRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{16} +} + +func (x *GetWebhookSignatureKeyRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +// The response for a call to `WebhookService_GetWebhookSignatureKey`. The `active` field indicates whether +// or not whether the key is currently active. +type GetWebhookSignatureKeyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignatureKey *WebhookSignatureKey `protobuf:"bytes,1,opt,name=signature_key,json=signatureKey,proto3" json:"signature_key,omitempty"` +} + +func (x *GetWebhookSignatureKeyResponse) Reset() { + *x = GetWebhookSignatureKeyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWebhookSignatureKeyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWebhookSignatureKeyResponse) ProtoMessage() {} + +func (x *GetWebhookSignatureKeyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWebhookSignatureKeyResponse.ProtoReflect.Descriptor instead. +func (*GetWebhookSignatureKeyResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{17} +} + +func (x *GetWebhookSignatureKeyResponse) GetSignatureKey() *WebhookSignatureKey { + if x != nil { + return x.SignatureKey + } + return nil +} + +// The request for a call to `WebhookService_ToggleWebhookSignatureKeyActivation` to enable or disable the current +// webhook signature key. Set `enable` to `true` to activate the signature key, and `false` to deactivate. +type ToggleWebhookSignatureKeyActivationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` +} + +func (x *ToggleWebhookSignatureKeyActivationRequest) Reset() { + *x = ToggleWebhookSignatureKeyActivationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToggleWebhookSignatureKeyActivationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToggleWebhookSignatureKeyActivationRequest) ProtoMessage() {} + +func (x *ToggleWebhookSignatureKeyActivationRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToggleWebhookSignatureKeyActivationRequest.ProtoReflect.Descriptor instead. +func (*ToggleWebhookSignatureKeyActivationRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{18} +} + +func (x *ToggleWebhookSignatureKeyActivationRequest) GetEnable() bool { + if x != nil { + return x.Enable + } + return false +} + +// The response for a call to `WebhookService_ToggleWebhookSignatureKeyActivation`. +type ToggleWebhookSignatureKeyActivationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignatureKey *WebhookSignatureKey `protobuf:"bytes,1,opt,name=signature_key,json=signatureKey,proto3" json:"signature_key,omitempty"` +} + +func (x *ToggleWebhookSignatureKeyActivationResponse) Reset() { + *x = ToggleWebhookSignatureKeyActivationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToggleWebhookSignatureKeyActivationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToggleWebhookSignatureKeyActivationResponse) ProtoMessage() {} + +func (x *ToggleWebhookSignatureKeyActivationResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToggleWebhookSignatureKeyActivationResponse.ProtoReflect.Descriptor instead. +func (*ToggleWebhookSignatureKeyActivationResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{19} +} + +func (x *ToggleWebhookSignatureKeyActivationResponse) GetSignatureKey() *WebhookSignatureKey { + if x != nil { + return x.SignatureKey + } + return nil +} + +// The request for a call to `WebhookService_RotateWebhookSignatureKey` replace the current webhook signature key +// with a new one. The activation state of the new signature key will be inherited from the previous key. If no key +// exists then this will return an error - see `WebhookService_CreateWebhookSignatureKey`. +type RotateWebhookSignatureKeyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RotateWebhookSignatureKeyRequest) Reset() { + *x = RotateWebhookSignatureKeyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RotateWebhookSignatureKeyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RotateWebhookSignatureKeyRequest) ProtoMessage() {} + +func (x *RotateWebhookSignatureKeyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RotateWebhookSignatureKeyRequest.ProtoReflect.Descriptor instead. +func (*RotateWebhookSignatureKeyRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{20} +} + +// The response for a call to `WebhookService_RotateWebhookSignatureKey`. The `active` field indicates whether +// or not whether the key is currently active. +type RotateWebhookSignatureKeyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignatureKey *WebhookSignatureKey `protobuf:"bytes,1,opt,name=signature_key,json=signatureKey,proto3" json:"signature_key,omitempty"` +} + +func (x *RotateWebhookSignatureKeyResponse) Reset() { + *x = RotateWebhookSignatureKeyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RotateWebhookSignatureKeyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RotateWebhookSignatureKeyResponse) ProtoMessage() {} + +func (x *RotateWebhookSignatureKeyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RotateWebhookSignatureKeyResponse.ProtoReflect.Descriptor instead. +func (*RotateWebhookSignatureKeyResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{21} +} + +func (x *RotateWebhookSignatureKeyResponse) GetSignatureKey() *WebhookSignatureKey { + if x != nil { + return x.SignatureKey + } + return nil +} + +// The request for a call to `WebhookService_ListWebhookLogs` to retrieve and filter webhook logs. +type ListWebhookLogsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of webhook logs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 runs will be returned. + // The maximum value is 1000. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListWebhookLogs` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListWebhookLogs` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // The available fields to filter by are `webhook_id`, `status`. + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // How to order the retrieved webhook logs. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available field to order_by is `created_date`. + // If left empty, items are ordered by `created_date` in ascending order (oldest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListWebhookLogsRequest) Reset() { + *x = ListWebhookLogsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWebhookLogsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWebhookLogsRequest) ProtoMessage() {} + +func (x *ListWebhookLogsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWebhookLogsRequest.ProtoReflect.Descriptor instead. +func (*ListWebhookLogsRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{22} +} + +func (x *ListWebhookLogsRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListWebhookLogsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListWebhookLogsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListWebhookLogsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response of a call to `WebhookService_ListWebhookLogsResponse`. +type ListWebhookLogsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Logs []*WebhookLog `protobuf:"bytes,1,rep,name=logs,proto3" json:"logs,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListWebhookLogsResponse) Reset() { + *x = ListWebhookLogsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWebhookLogsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWebhookLogsResponse) ProtoMessage() {} + +func (x *ListWebhookLogsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWebhookLogsResponse.ProtoReflect.Descriptor instead. +func (*ListWebhookLogsResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{23} +} + +func (x *ListWebhookLogsResponse) GetLogs() []*WebhookLog { + if x != nil { + return x.Logs + } + return nil +} + +func (x *ListWebhookLogsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request to create a single webhook log entry. +type CreateWebhookLogRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebhookId string `protobuf:"bytes,1,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"` + EventId string `protobuf:"bytes,2,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"` + RetryAttemptNumber uint32 `protobuf:"varint,3,opt,name=retry_attempt_number,json=retryAttemptNumber,proto3" json:"retry_attempt_number,omitempty"` + Status WebhookLogStatus `protobuf:"varint,4,opt,name=status,proto3,enum=sift.webhooks.v1.WebhookLogStatus" json:"status,omitempty"` + Payload *string `protobuf:"bytes,5,opt,name=payload,proto3,oneof" json:"payload,omitempty"` + ErrorReason *string `protobuf:"bytes,6,opt,name=error_reason,json=errorReason,proto3,oneof" json:"error_reason,omitempty"` + SentDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=sent_date,json=sentDate,proto3" json:"sent_date,omitempty"` +} + +func (x *CreateWebhookLogRequest) Reset() { + *x = CreateWebhookLogRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWebhookLogRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWebhookLogRequest) ProtoMessage() {} + +func (x *CreateWebhookLogRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateWebhookLogRequest.ProtoReflect.Descriptor instead. +func (*CreateWebhookLogRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{24} +} + +func (x *CreateWebhookLogRequest) GetWebhookId() string { + if x != nil { + return x.WebhookId + } + return "" +} + +func (x *CreateWebhookLogRequest) GetEventId() string { + if x != nil { + return x.EventId + } + return "" +} + +func (x *CreateWebhookLogRequest) GetRetryAttemptNumber() uint32 { + if x != nil { + return x.RetryAttemptNumber + } + return 0 +} + +func (x *CreateWebhookLogRequest) GetStatus() WebhookLogStatus { + if x != nil { + return x.Status + } + return WebhookLogStatus_WEBHOOK_LOG_STATUS_UNSPECIFIED +} + +func (x *CreateWebhookLogRequest) GetPayload() string { + if x != nil && x.Payload != nil { + return *x.Payload + } + return "" +} + +func (x *CreateWebhookLogRequest) GetErrorReason() string { + if x != nil && x.ErrorReason != nil { + return *x.ErrorReason + } + return "" +} + +func (x *CreateWebhookLogRequest) GetSentDate() *timestamppb.Timestamp { + if x != nil { + return x.SentDate + } + return nil +} + +// The request for a call to `WebhookService_BatchCreateWebhookLogs` to create a batch of webhook logs. +type BatchCreateWebhookLogsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Requests []*CreateWebhookLogRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` +} + +func (x *BatchCreateWebhookLogsRequest) Reset() { + *x = BatchCreateWebhookLogsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchCreateWebhookLogsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchCreateWebhookLogsRequest) ProtoMessage() {} + +func (x *BatchCreateWebhookLogsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchCreateWebhookLogsRequest.ProtoReflect.Descriptor instead. +func (*BatchCreateWebhookLogsRequest) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{25} +} + +func (x *BatchCreateWebhookLogsRequest) GetRequests() []*CreateWebhookLogRequest { + if x != nil { + return x.Requests + } + return nil +} + +// The response of a call to `WebhookService_BatchCreateWebhookResponse`. +type BatchCreateWebhookLogsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BatchCreateWebhookLogsResponse) Reset() { + *x = BatchCreateWebhookLogsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchCreateWebhookLogsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchCreateWebhookLogsResponse) ProtoMessage() {} + +func (x *BatchCreateWebhookLogsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_webhooks_v1_webhooks_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchCreateWebhookLogsResponse.ProtoReflect.Descriptor instead. +func (*BatchCreateWebhookLogsResponse) Descriptor() ([]byte, []int) { + return file_sift_webhooks_v1_webhooks_proto_rawDescGZIP(), []int{26} +} + +var File_sift_webhooks_v1_webhooks_proto protoreflect.FileDescriptor + +var file_sift_webhooks_v1_webhooks_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x10, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 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, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, + 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xff, 0x05, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x2a, + 0x0a, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, + 0x09, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0f, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, + 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x2a, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0x88, 0x01, + 0x01, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xba, + 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0a, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0c, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, + 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, + 0x01, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x22, 0xd5, 0x05, 0x0a, 0x0a, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x4c, 0x6f, 0x67, 0x12, 0x31, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x6c, + 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, + 0xba, 0x48, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, + 0x48, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x09, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, + 0xba, 0x48, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x00, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x14, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x12, 0x72, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x01, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, + 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, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xcc, 0x02, 0x0a, + 0x13, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x04, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x11, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x1f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, + 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xc0, 0x01, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3f, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, + 0x01, 0x01, 0x52, 0x09, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x22, 0x4e, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x22, 0xc0, 0x04, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x12, 0xed, 0x03, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, + 0x73, 0x6b, 0x42, 0xaf, 0x03, 0xe0, 0x41, 0x02, 0xba, 0x48, 0xa8, 0x03, 0xba, 0x01, 0xa4, 0x03, + 0x0a, 0x17, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x12, 0xc1, 0x01, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x27, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x75, 0x72, 0x6c, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x6c, + 0x27, 0x2c, 0x20, 0x27, 0x6e, 0x61, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x27, 0x2c, + 0x20, 0x27, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x27, 0x2c, 0x20, + 0x27, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x27, 0x2c, + 0x20, 0x27, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x27, 0x2c, + 0x20, 0x27, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x27, 0x2c, 0x20, + 0x27, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x27, 0x5d, 0x1a, 0xc4, 0x01, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x74, 0x68, 0x73, 0x2e, 0x61, 0x6c, 0x6c, 0x28, 0x70, + 0x61, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x27, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x55, 0x72, 0x6c, 0x27, 0x2c, 0x20, 0x27, 0x6e, 0x61, 0x6d, 0x65, 0x27, 0x2c, + 0x20, 0x27, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x27, 0x2c, 0x20, 0x27, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x27, 0x5d, 0x29, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x22, 0x51, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x22, 0xa7, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xba, + 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x09, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x46, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x22, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x51, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x22, 0xa0, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xe0, 0x41, 0x01, + 0xba, 0x48, 0x05, 0x2a, 0x03, 0x18, 0xe8, 0x07, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x42, 0x79, 0x22, 0x7f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x77, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x77, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x77, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x09, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x07, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x12, 0x4f, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7b, 0x0a, 0x13, + 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x22, 0x0a, 0x20, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, + 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4b, 0x65, 0x79, 0x22, 0x4d, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x22, 0x71, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, + 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x49, 0x0a, 0x2a, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, + 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x22, 0x7e, 0x0a, 0x2b, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4f, 0x0a, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, + 0x22, 0x22, 0x0a, 0x20, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x21, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xa3, 0x01, 0x0a, 0x16, 0x4c, + 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xba, 0x48, 0x05, + 0x2a, 0x03, 0x18, 0xe8, 0x07, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, + 0x22, 0x7d, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x6c, + 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6c, 0x6f, + 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0x91, 0x03, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x77, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x77, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x02, 0xba, 0x48, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x35, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x12, 0x72, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x4c, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, + 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, + 0x5f, 0x64, 0x61, 0x74, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x65, + 0x6e, 0x74, 0x44, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x22, 0x74, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x42, 0x0c, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x5d, 0x0a, 0x10, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x22, 0x0a, 0x1e, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x56, + 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0x93, 0x01, 0x0a, 0x10, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x22, 0x0a, 0x1e, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x4c, + 0x4f, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, + 0x12, 0x1d, 0x0a, 0x19, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x1f, 0x0a, 0x1b, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x03, + 0x32, 0xbb, 0x19, 0x0a, 0x0e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x92, + 0x41, 0x27, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x1a, 0x19, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, + 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x73, 0x2f, 0x7b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa2, + 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x40, 0x92, 0x41, 0x22, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x1a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, + 0x2a, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x12, 0xbd, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x92, 0x41, 0x3d, 0x12, 0x0d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x1a, 0x2c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, + 0x2a, 0x32, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x12, 0xbc, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x92, 0x41, 0x42, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x1a, 0x32, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, + 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x73, 0x12, 0xc2, 0x02, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xe5, 0x01, 0x92, 0x41, 0xc1, 0x01, 0x12, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x1a, 0xb1, 0x01, 0x54, 0x65, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x52, 0x50, 0x43, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x63, 0x74, + 0x75, 0x61, 0x6c, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, + 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x73, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x12, 0x8a, 0x05, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, + 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, + 0x04, 0x92, 0x41, 0xd6, 0x03, 0x12, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x1a, 0xb0, 0x03, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x69, 0x74, 0x73, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x61, 0x20, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6b, + 0x65, 0x79, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x48, 0x4d, 0x41, 0x43, 0x2d, 0x53, 0x48, 0x41, 0x2d, 0x32, 0x35, + 0x36, 0x2e, 0x54, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x74, + 0x68, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x60, 0x58, 0x2d, 0x53, 0x69, 0x66, 0x74, 0x2d, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x60, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6b, 0x65, 0x79, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x68, 0x65, 0x6c, 0x64, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x6b, 0x65, + 0x79, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x79, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x65, 0x20, 0x60, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x2d, 0x6b, 0x65, 0x79, 0x12, 0xa4, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xa6, 0x01, 0x92, 0x41, 0x7d, 0x12, 0x16, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, + 0x1a, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x57, 0x69, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x69, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x65, + 0x78, 0x69, 0x73, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0x12, 0xff, 0x02, 0x0a, 0x23, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xda, 0x01, 0x92, 0x41, 0xad, 0x01, 0x12, 0x23, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, + 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x85, 0x01, 0x53, + 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x73, 0x20, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x57, 0x69, 0x6c, + 0x6c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, + 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x32, 0x1e, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0x12, 0xf3, 0x02, + 0x0a, 0x19, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xec, 0x01, 0x92, 0x41, 0xbf, 0x01, 0x12, 0x23, 0x54, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x97, 0x01, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x6f, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, + 0x3a, 0x01, 0x2a, 0x1a, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2d, + 0x6b, 0x65, 0x79, 0x12, 0x94, 0x02, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x2f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x96, 0x01, 0x92, 0x41, 0x66, 0x12, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x1a, + 0x4c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x2e, + 0x20, 0x55, 0x73, 0x65, 0x72, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x3a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x2d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0xd1, 0x01, 0x0a, 0x0f, 0x4c, + 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x28, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x69, 0x92, 0x41, 0x49, 0x12, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x1a, 0x36, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x6c, 0x6f, 0x67, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x42, 0xc6, + 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, + 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x57, 0x58, 0xaa, 0x02, 0x10, + 0x53, 0x69, 0x66, 0x74, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_sift_webhooks_v1_webhooks_proto_rawDescOnce sync.Once + file_sift_webhooks_v1_webhooks_proto_rawDescData = file_sift_webhooks_v1_webhooks_proto_rawDesc +) + +func file_sift_webhooks_v1_webhooks_proto_rawDescGZIP() []byte { + file_sift_webhooks_v1_webhooks_proto_rawDescOnce.Do(func() { + file_sift_webhooks_v1_webhooks_proto_rawDescData = protoimpl.X.CompressGZIP(file_sift_webhooks_v1_webhooks_proto_rawDescData) + }) + return file_sift_webhooks_v1_webhooks_proto_rawDescData +} + +var file_sift_webhooks_v1_webhooks_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_sift_webhooks_v1_webhooks_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_sift_webhooks_v1_webhooks_proto_goTypes = []interface{}{ + (WebhookEventType)(0), // 0: sift.webhooks.v1.WebhookEventType + (WebhookLogStatus)(0), // 1: sift.webhooks.v1.WebhookLogStatus + (*Webhook)(nil), // 2: sift.webhooks.v1.Webhook + (*WebhookLog)(nil), // 3: sift.webhooks.v1.WebhookLog + (*WebhookSignatureKey)(nil), // 4: sift.webhooks.v1.WebhookSignatureKey + (*WebhookHttpHeader)(nil), // 5: sift.webhooks.v1.WebhookHttpHeader + (*GetWebhookRequest)(nil), // 6: sift.webhooks.v1.GetWebhookRequest + (*GetWebhookResponse)(nil), // 7: sift.webhooks.v1.GetWebhookResponse + (*UpdateWebhookRequest)(nil), // 8: sift.webhooks.v1.UpdateWebhookRequest + (*UpdateWebhookResponse)(nil), // 9: sift.webhooks.v1.UpdateWebhookResponse + (*CreateWebhookRequest)(nil), // 10: sift.webhooks.v1.CreateWebhookRequest + (*CreateWebhookResponse)(nil), // 11: sift.webhooks.v1.CreateWebhookResponse + (*ListWebhooksRequest)(nil), // 12: sift.webhooks.v1.ListWebhooksRequest + (*ListWebhooksResponse)(nil), // 13: sift.webhooks.v1.ListWebhooksResponse + (*TestWebhookRequest)(nil), // 14: sift.webhooks.v1.TestWebhookRequest + (*TestWebhookResponse)(nil), // 15: sift.webhooks.v1.TestWebhookResponse + (*CreateWebhookSignatureKeyRequest)(nil), // 16: sift.webhooks.v1.CreateWebhookSignatureKeyRequest + (*CreateWebhookSignatureKeyResponse)(nil), // 17: sift.webhooks.v1.CreateWebhookSignatureKeyResponse + (*GetWebhookSignatureKeyRequest)(nil), // 18: sift.webhooks.v1.GetWebhookSignatureKeyRequest + (*GetWebhookSignatureKeyResponse)(nil), // 19: sift.webhooks.v1.GetWebhookSignatureKeyResponse + (*ToggleWebhookSignatureKeyActivationRequest)(nil), // 20: sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest + (*ToggleWebhookSignatureKeyActivationResponse)(nil), // 21: sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse + (*RotateWebhookSignatureKeyRequest)(nil), // 22: sift.webhooks.v1.RotateWebhookSignatureKeyRequest + (*RotateWebhookSignatureKeyResponse)(nil), // 23: sift.webhooks.v1.RotateWebhookSignatureKeyResponse + (*ListWebhookLogsRequest)(nil), // 24: sift.webhooks.v1.ListWebhookLogsRequest + (*ListWebhookLogsResponse)(nil), // 25: sift.webhooks.v1.ListWebhookLogsResponse + (*CreateWebhookLogRequest)(nil), // 26: sift.webhooks.v1.CreateWebhookLogRequest + (*BatchCreateWebhookLogsRequest)(nil), // 27: sift.webhooks.v1.BatchCreateWebhookLogsRequest + (*BatchCreateWebhookLogsResponse)(nil), // 28: sift.webhooks.v1.BatchCreateWebhookLogsResponse + (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 30: google.protobuf.FieldMask +} +var file_sift_webhooks_v1_webhooks_proto_depIdxs = []int32{ + 0, // 0: sift.webhooks.v1.Webhook.event_type:type_name -> sift.webhooks.v1.WebhookEventType + 29, // 1: sift.webhooks.v1.Webhook.created_date:type_name -> google.protobuf.Timestamp + 29, // 2: sift.webhooks.v1.Webhook.modified_date:type_name -> google.protobuf.Timestamp + 29, // 3: sift.webhooks.v1.Webhook.archived_date:type_name -> google.protobuf.Timestamp + 5, // 4: sift.webhooks.v1.Webhook.http_headers:type_name -> sift.webhooks.v1.WebhookHttpHeader + 1, // 5: sift.webhooks.v1.WebhookLog.status:type_name -> sift.webhooks.v1.WebhookLogStatus + 29, // 6: sift.webhooks.v1.WebhookLog.sent_date:type_name -> google.protobuf.Timestamp + 29, // 7: sift.webhooks.v1.WebhookLog.created_date:type_name -> google.protobuf.Timestamp + 29, // 8: sift.webhooks.v1.WebhookLog.modified_date:type_name -> google.protobuf.Timestamp + 29, // 9: sift.webhooks.v1.WebhookSignatureKey.created_date:type_name -> google.protobuf.Timestamp + 29, // 10: sift.webhooks.v1.WebhookSignatureKey.modified_date:type_name -> google.protobuf.Timestamp + 2, // 11: sift.webhooks.v1.GetWebhookResponse.webhook:type_name -> sift.webhooks.v1.Webhook + 2, // 12: sift.webhooks.v1.UpdateWebhookRequest.webhook:type_name -> sift.webhooks.v1.Webhook + 30, // 13: sift.webhooks.v1.UpdateWebhookRequest.update_mask:type_name -> google.protobuf.FieldMask + 2, // 14: sift.webhooks.v1.UpdateWebhookResponse.webhook:type_name -> sift.webhooks.v1.Webhook + 0, // 15: sift.webhooks.v1.CreateWebhookRequest.event_type:type_name -> sift.webhooks.v1.WebhookEventType + 5, // 16: sift.webhooks.v1.CreateWebhookRequest.http_headers:type_name -> sift.webhooks.v1.WebhookHttpHeader + 2, // 17: sift.webhooks.v1.CreateWebhookResponse.webhook:type_name -> sift.webhooks.v1.Webhook + 2, // 18: sift.webhooks.v1.ListWebhooksResponse.webhooks:type_name -> sift.webhooks.v1.Webhook + 2, // 19: sift.webhooks.v1.TestWebhookRequest.webhook:type_name -> sift.webhooks.v1.Webhook + 10, // 20: sift.webhooks.v1.TestWebhookRequest.create_request:type_name -> sift.webhooks.v1.CreateWebhookRequest + 4, // 21: sift.webhooks.v1.CreateWebhookSignatureKeyResponse.signature_key:type_name -> sift.webhooks.v1.WebhookSignatureKey + 4, // 22: sift.webhooks.v1.GetWebhookSignatureKeyResponse.signature_key:type_name -> sift.webhooks.v1.WebhookSignatureKey + 4, // 23: sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse.signature_key:type_name -> sift.webhooks.v1.WebhookSignatureKey + 4, // 24: sift.webhooks.v1.RotateWebhookSignatureKeyResponse.signature_key:type_name -> sift.webhooks.v1.WebhookSignatureKey + 3, // 25: sift.webhooks.v1.ListWebhookLogsResponse.logs:type_name -> sift.webhooks.v1.WebhookLog + 1, // 26: sift.webhooks.v1.CreateWebhookLogRequest.status:type_name -> sift.webhooks.v1.WebhookLogStatus + 29, // 27: sift.webhooks.v1.CreateWebhookLogRequest.sent_date:type_name -> google.protobuf.Timestamp + 26, // 28: sift.webhooks.v1.BatchCreateWebhookLogsRequest.requests:type_name -> sift.webhooks.v1.CreateWebhookLogRequest + 6, // 29: sift.webhooks.v1.WebhookService.GetWebhook:input_type -> sift.webhooks.v1.GetWebhookRequest + 10, // 30: sift.webhooks.v1.WebhookService.CreateWebhook:input_type -> sift.webhooks.v1.CreateWebhookRequest + 8, // 31: sift.webhooks.v1.WebhookService.UpdateWebhook:input_type -> sift.webhooks.v1.UpdateWebhookRequest + 12, // 32: sift.webhooks.v1.WebhookService.ListWebhooks:input_type -> sift.webhooks.v1.ListWebhooksRequest + 14, // 33: sift.webhooks.v1.WebhookService.TestWebhook:input_type -> sift.webhooks.v1.TestWebhookRequest + 16, // 34: sift.webhooks.v1.WebhookService.CreateWebhookSignatureKey:input_type -> sift.webhooks.v1.CreateWebhookSignatureKeyRequest + 18, // 35: sift.webhooks.v1.WebhookService.GetWebhookSignatureKey:input_type -> sift.webhooks.v1.GetWebhookSignatureKeyRequest + 20, // 36: sift.webhooks.v1.WebhookService.ToggleWebhookSignatureKeyActivation:input_type -> sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest + 22, // 37: sift.webhooks.v1.WebhookService.RotateWebhookSignatureKey:input_type -> sift.webhooks.v1.RotateWebhookSignatureKeyRequest + 27, // 38: sift.webhooks.v1.WebhookService.BatchCreateWebhookLogs:input_type -> sift.webhooks.v1.BatchCreateWebhookLogsRequest + 24, // 39: sift.webhooks.v1.WebhookService.ListWebhookLogs:input_type -> sift.webhooks.v1.ListWebhookLogsRequest + 7, // 40: sift.webhooks.v1.WebhookService.GetWebhook:output_type -> sift.webhooks.v1.GetWebhookResponse + 11, // 41: sift.webhooks.v1.WebhookService.CreateWebhook:output_type -> sift.webhooks.v1.CreateWebhookResponse + 9, // 42: sift.webhooks.v1.WebhookService.UpdateWebhook:output_type -> sift.webhooks.v1.UpdateWebhookResponse + 13, // 43: sift.webhooks.v1.WebhookService.ListWebhooks:output_type -> sift.webhooks.v1.ListWebhooksResponse + 15, // 44: sift.webhooks.v1.WebhookService.TestWebhook:output_type -> sift.webhooks.v1.TestWebhookResponse + 17, // 45: sift.webhooks.v1.WebhookService.CreateWebhookSignatureKey:output_type -> sift.webhooks.v1.CreateWebhookSignatureKeyResponse + 19, // 46: sift.webhooks.v1.WebhookService.GetWebhookSignatureKey:output_type -> sift.webhooks.v1.GetWebhookSignatureKeyResponse + 21, // 47: sift.webhooks.v1.WebhookService.ToggleWebhookSignatureKeyActivation:output_type -> sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse + 23, // 48: sift.webhooks.v1.WebhookService.RotateWebhookSignatureKey:output_type -> sift.webhooks.v1.RotateWebhookSignatureKeyResponse + 28, // 49: sift.webhooks.v1.WebhookService.BatchCreateWebhookLogs:output_type -> sift.webhooks.v1.BatchCreateWebhookLogsResponse + 25, // 50: sift.webhooks.v1.WebhookService.ListWebhookLogs:output_type -> sift.webhooks.v1.ListWebhookLogsResponse + 40, // [40:51] is the sub-list for method output_type + 29, // [29:40] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name +} + +func init() { file_sift_webhooks_v1_webhooks_proto_init() } +func file_sift_webhooks_v1_webhooks_proto_init() { + if File_sift_webhooks_v1_webhooks_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sift_webhooks_v1_webhooks_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Webhook); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookLog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookSignatureKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookHttpHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWebhookRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWebhookResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateWebhookRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateWebhookResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWebhookRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWebhookResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWebhooksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWebhooksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestWebhookRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestWebhookResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWebhookSignatureKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWebhookSignatureKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWebhookSignatureKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWebhookSignatureKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToggleWebhookSignatureKeyActivationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToggleWebhookSignatureKeyActivationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RotateWebhookSignatureKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RotateWebhookSignatureKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWebhookLogsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWebhookLogsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWebhookLogRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCreateWebhookLogsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCreateWebhookLogsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_sift_webhooks_v1_webhooks_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_sift_webhooks_v1_webhooks_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_sift_webhooks_v1_webhooks_proto_msgTypes[12].OneofWrappers = []interface{}{ + (*TestWebhookRequest_WebhookId)(nil), + (*TestWebhookRequest_Webhook)(nil), + (*TestWebhookRequest_CreateRequest)(nil), + } + file_sift_webhooks_v1_webhooks_proto_msgTypes[24].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_sift_webhooks_v1_webhooks_proto_rawDesc, + NumEnums: 2, + NumMessages: 27, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_sift_webhooks_v1_webhooks_proto_goTypes, + DependencyIndexes: file_sift_webhooks_v1_webhooks_proto_depIdxs, + EnumInfos: file_sift_webhooks_v1_webhooks_proto_enumTypes, + MessageInfos: file_sift_webhooks_v1_webhooks_proto_msgTypes, + }.Build() + File_sift_webhooks_v1_webhooks_proto = out.File + file_sift_webhooks_v1_webhooks_proto_rawDesc = nil + file_sift_webhooks_v1_webhooks_proto_goTypes = nil + file_sift_webhooks_v1_webhooks_proto_depIdxs = nil +} diff --git a/go/gen/sift/webhooks/v1/webhooks.pb.gw.go b/go/gen/sift/webhooks/v1/webhooks.pb.gw.go new file mode 100644 index 000000000..e2e496abe --- /dev/null +++ b/go/gen/sift/webhooks/v1/webhooks.pb.gw.go @@ -0,0 +1,1045 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: sift/webhooks/v1/webhooks.proto + +/* +Package webhooksv1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package webhooksv1 + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_WebhookService_GetWebhook_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWebhookRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["webhook_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "webhook_id") + } + + protoReq.WebhookId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "webhook_id", err) + } + + msg, err := client.GetWebhook(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_GetWebhook_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWebhookRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["webhook_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "webhook_id") + } + + protoReq.WebhookId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "webhook_id", err) + } + + msg, err := server.GetWebhook(ctx, &protoReq) + return msg, metadata, err + +} + +func request_WebhookService_CreateWebhook_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateWebhookRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateWebhook(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_CreateWebhook_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateWebhookRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateWebhook(ctx, &protoReq) + return msg, metadata, err + +} + +func request_WebhookService_UpdateWebhook_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateWebhookRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateWebhook(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_UpdateWebhook_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateWebhookRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateWebhook(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_WebhookService_ListWebhooks_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_WebhookService_ListWebhooks_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListWebhooksRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WebhookService_ListWebhooks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListWebhooks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_ListWebhooks_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListWebhooksRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WebhookService_ListWebhooks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListWebhooks(ctx, &protoReq) + return msg, metadata, err + +} + +func request_WebhookService_TestWebhook_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq TestWebhookRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.TestWebhook(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_TestWebhook_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq TestWebhookRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.TestWebhook(ctx, &protoReq) + return msg, metadata, err + +} + +func request_WebhookService_CreateWebhookSignatureKey_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateWebhookSignatureKeyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateWebhookSignatureKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_CreateWebhookSignatureKey_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateWebhookSignatureKeyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateWebhookSignatureKey(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_WebhookService_GetWebhookSignatureKey_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_WebhookService_GetWebhookSignatureKey_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWebhookSignatureKeyRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WebhookService_GetWebhookSignatureKey_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetWebhookSignatureKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_GetWebhookSignatureKey_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWebhookSignatureKeyRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WebhookService_GetWebhookSignatureKey_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetWebhookSignatureKey(ctx, &protoReq) + return msg, metadata, err + +} + +func request_WebhookService_ToggleWebhookSignatureKeyActivation_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ToggleWebhookSignatureKeyActivationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ToggleWebhookSignatureKeyActivation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_ToggleWebhookSignatureKeyActivation_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ToggleWebhookSignatureKeyActivationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ToggleWebhookSignatureKeyActivation(ctx, &protoReq) + return msg, metadata, err + +} + +func request_WebhookService_RotateWebhookSignatureKey_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RotateWebhookSignatureKeyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.RotateWebhookSignatureKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_RotateWebhookSignatureKey_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RotateWebhookSignatureKeyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.RotateWebhookSignatureKey(ctx, &protoReq) + return msg, metadata, err + +} + +func request_WebhookService_BatchCreateWebhookLogs_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchCreateWebhookLogsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.BatchCreateWebhookLogs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_BatchCreateWebhookLogs_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BatchCreateWebhookLogsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.BatchCreateWebhookLogs(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_WebhookService_ListWebhookLogs_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_WebhookService_ListWebhookLogs_0(ctx context.Context, marshaler runtime.Marshaler, client WebhookServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListWebhookLogsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WebhookService_ListWebhookLogs_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListWebhookLogs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WebhookService_ListWebhookLogs_0(ctx context.Context, marshaler runtime.Marshaler, server WebhookServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListWebhookLogsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WebhookService_ListWebhookLogs_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListWebhookLogs(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterWebhookServiceHandlerServer registers the http handlers for service WebhookService to "mux". +// UnaryRPC :call WebhookServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterWebhookServiceHandlerFromEndpoint instead. +func RegisterWebhookServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server WebhookServiceServer) error { + + mux.Handle("GET", pattern_WebhookService_GetWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/GetWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks/{webhook_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_GetWebhook_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_GetWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_CreateWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/CreateWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_CreateWebhook_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_CreateWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_WebhookService_UpdateWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/UpdateWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_UpdateWebhook_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_UpdateWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WebhookService_ListWebhooks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/ListWebhooks", runtime.WithHTTPPathPattern("/api/v1/webhooks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_ListWebhooks_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_ListWebhooks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_TestWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/TestWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks:test")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_TestWebhook_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_TestWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_CreateWebhookSignatureKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_CreateWebhookSignatureKey_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_CreateWebhookSignatureKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WebhookService_GetWebhookSignatureKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_GetWebhookSignatureKey_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_GetWebhookSignatureKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_WebhookService_ToggleWebhookSignatureKeyActivation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_ToggleWebhookSignatureKeyActivation_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_ToggleWebhookSignatureKeyActivation_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_WebhookService_RotateWebhookSignatureKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_RotateWebhookSignatureKey_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_RotateWebhookSignatureKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_BatchCreateWebhookLogs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs", runtime.WithHTTPPathPattern("/api/v1/webhooks/logs:batch-create")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_BatchCreateWebhookLogs_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_BatchCreateWebhookLogs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WebhookService_ListWebhookLogs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/ListWebhookLogs", runtime.WithHTTPPathPattern("/api/v1/webhooks/logs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WebhookService_ListWebhookLogs_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_ListWebhookLogs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterWebhookServiceHandlerFromEndpoint is same as RegisterWebhookServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterWebhookServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterWebhookServiceHandler(ctx, mux, conn) +} + +// RegisterWebhookServiceHandler registers the http handlers for service WebhookService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterWebhookServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterWebhookServiceHandlerClient(ctx, mux, NewWebhookServiceClient(conn)) +} + +// RegisterWebhookServiceHandlerClient registers the http handlers for service WebhookService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "WebhookServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "WebhookServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "WebhookServiceClient" to call the correct interceptors. +func RegisterWebhookServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client WebhookServiceClient) error { + + mux.Handle("GET", pattern_WebhookService_GetWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/GetWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks/{webhook_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_GetWebhook_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_GetWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_CreateWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/CreateWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_CreateWebhook_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_CreateWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_WebhookService_UpdateWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/UpdateWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_UpdateWebhook_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_UpdateWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WebhookService_ListWebhooks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/ListWebhooks", runtime.WithHTTPPathPattern("/api/v1/webhooks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_ListWebhooks_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_ListWebhooks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_TestWebhook_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/TestWebhook", runtime.WithHTTPPathPattern("/api/v1/webhooks:test")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_TestWebhook_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_TestWebhook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_CreateWebhookSignatureKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_CreateWebhookSignatureKey_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_CreateWebhookSignatureKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WebhookService_GetWebhookSignatureKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_GetWebhookSignatureKey_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_GetWebhookSignatureKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_WebhookService_ToggleWebhookSignatureKeyActivation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_ToggleWebhookSignatureKeyActivation_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_ToggleWebhookSignatureKeyActivation_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_WebhookService_RotateWebhookSignatureKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey", runtime.WithHTTPPathPattern("/api/v1/webhooks/signature-key")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_RotateWebhookSignatureKey_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_RotateWebhookSignatureKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_WebhookService_BatchCreateWebhookLogs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs", runtime.WithHTTPPathPattern("/api/v1/webhooks/logs:batch-create")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_BatchCreateWebhookLogs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_BatchCreateWebhookLogs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WebhookService_ListWebhookLogs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.webhooks.v1.WebhookService/ListWebhookLogs", runtime.WithHTTPPathPattern("/api/v1/webhooks/logs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WebhookService_ListWebhookLogs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_WebhookService_ListWebhookLogs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_WebhookService_GetWebhook_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "webhooks", "webhook_id"}, "")) + + pattern_WebhookService_CreateWebhook_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "webhooks"}, "")) + + pattern_WebhookService_UpdateWebhook_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "webhooks"}, "")) + + pattern_WebhookService_ListWebhooks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "webhooks"}, "")) + + pattern_WebhookService_TestWebhook_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "webhooks"}, "test")) + + pattern_WebhookService_CreateWebhookSignatureKey_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "webhooks", "signature-key"}, "")) + + pattern_WebhookService_GetWebhookSignatureKey_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "webhooks", "signature-key"}, "")) + + pattern_WebhookService_ToggleWebhookSignatureKeyActivation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "webhooks", "signature-key"}, "")) + + pattern_WebhookService_RotateWebhookSignatureKey_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "webhooks", "signature-key"}, "")) + + pattern_WebhookService_BatchCreateWebhookLogs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "webhooks", "logs"}, "batch-create")) + + pattern_WebhookService_ListWebhookLogs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "webhooks", "logs"}, "")) +) + +var ( + forward_WebhookService_GetWebhook_0 = runtime.ForwardResponseMessage + + forward_WebhookService_CreateWebhook_0 = runtime.ForwardResponseMessage + + forward_WebhookService_UpdateWebhook_0 = runtime.ForwardResponseMessage + + forward_WebhookService_ListWebhooks_0 = runtime.ForwardResponseMessage + + forward_WebhookService_TestWebhook_0 = runtime.ForwardResponseMessage + + forward_WebhookService_CreateWebhookSignatureKey_0 = runtime.ForwardResponseMessage + + forward_WebhookService_GetWebhookSignatureKey_0 = runtime.ForwardResponseMessage + + forward_WebhookService_ToggleWebhookSignatureKeyActivation_0 = runtime.ForwardResponseMessage + + forward_WebhookService_RotateWebhookSignatureKey_0 = runtime.ForwardResponseMessage + + forward_WebhookService_BatchCreateWebhookLogs_0 = runtime.ForwardResponseMessage + + forward_WebhookService_ListWebhookLogs_0 = runtime.ForwardResponseMessage +) diff --git a/go/gen/sift/webhooks/v1/webhooks_vtproto.pb.go b/go/gen/sift/webhooks/v1/webhooks_vtproto.pb.go new file mode 100644 index 000000000..608c6fbe4 --- /dev/null +++ b/go/gen/sift/webhooks/v1/webhooks_vtproto.pb.go @@ -0,0 +1,13251 @@ +// Code generated by protoc-gen-go-vtproto. DO NOT EDIT. +// protoc-gen-go-vtproto version: v0.6.0 +// source: sift/webhooks/v1/webhooks.proto + +package webhooksv1 + +import ( + context "context" + fmt "fmt" + protohelpers "github.com/planetscale/vtprotobuf/protohelpers" + fieldmaskpb1 "github.com/planetscale/vtprotobuf/types/known/fieldmaskpb" + timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + proto "google.golang.org/protobuf/proto" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + io "io" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +func (m *Webhook) CloneVT() *Webhook { + if m == nil { + return (*Webhook)(nil) + } + r := new(Webhook) + r.WebhookId = m.WebhookId + r.OrganizationId = m.OrganizationId + r.TargetUrl = m.TargetUrl + r.Name = m.Name + r.EventType = m.EventType + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + r.ModifiedByUserId = m.ModifiedByUserId + r.IsArchived = m.IsArchived + if rhs := m.Payload; rhs != nil { + tmpVal := *rhs + r.Payload = &tmpVal + } + if rhs := m.HttpHeaders; rhs != nil { + tmpContainer := make([]*WebhookHttpHeader, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.HttpHeaders = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Webhook) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *WebhookLog) CloneVT() *WebhookLog { + if m == nil { + return (*WebhookLog)(nil) + } + r := new(WebhookLog) + r.WebhookLogId = m.WebhookLogId + r.WebhookId = m.WebhookId + r.EventId = m.EventId + r.OrganizationId = m.OrganizationId + r.Status = m.Status + r.RetryAttemptNumber = m.RetryAttemptNumber + r.SentDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.SentDate).CloneVT()) + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + r.ModifiedByUserId = m.ModifiedByUserId + if rhs := m.Payload; rhs != nil { + tmpVal := *rhs + r.Payload = &tmpVal + } + if rhs := m.ErrorReason; rhs != nil { + tmpVal := *rhs + r.ErrorReason = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *WebhookLog) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *WebhookSignatureKey) CloneVT() *WebhookSignatureKey { + if m == nil { + return (*WebhookSignatureKey)(nil) + } + r := new(WebhookSignatureKey) + r.SignatureKey = m.SignatureKey + r.Active = m.Active + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + r.ModifiedByUserId = m.ModifiedByUserId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *WebhookSignatureKey) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *WebhookHttpHeader) CloneVT() *WebhookHttpHeader { + if m == nil { + return (*WebhookHttpHeader)(nil) + } + r := new(WebhookHttpHeader) + r.Name = m.Name + r.Value = m.Value + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *WebhookHttpHeader) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetWebhookRequest) CloneVT() *GetWebhookRequest { + if m == nil { + return (*GetWebhookRequest)(nil) + } + r := new(GetWebhookRequest) + r.WebhookId = m.WebhookId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetWebhookRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetWebhookResponse) CloneVT() *GetWebhookResponse { + if m == nil { + return (*GetWebhookResponse)(nil) + } + r := new(GetWebhookResponse) + r.Webhook = m.Webhook.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetWebhookResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UpdateWebhookRequest) CloneVT() *UpdateWebhookRequest { + if m == nil { + return (*UpdateWebhookRequest)(nil) + } + r := new(UpdateWebhookRequest) + r.Webhook = m.Webhook.CloneVT() + r.UpdateMask = (*fieldmaskpb.FieldMask)((*fieldmaskpb1.FieldMask)(m.UpdateMask).CloneVT()) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UpdateWebhookRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UpdateWebhookResponse) CloneVT() *UpdateWebhookResponse { + if m == nil { + return (*UpdateWebhookResponse)(nil) + } + r := new(UpdateWebhookResponse) + r.Webhook = m.Webhook.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UpdateWebhookResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateWebhookRequest) CloneVT() *CreateWebhookRequest { + if m == nil { + return (*CreateWebhookRequest)(nil) + } + r := new(CreateWebhookRequest) + r.Name = m.Name + r.TargetUrl = m.TargetUrl + r.EventType = m.EventType + if rhs := m.Payload; rhs != nil { + tmpVal := *rhs + r.Payload = &tmpVal + } + if rhs := m.HttpHeaders; rhs != nil { + tmpContainer := make([]*WebhookHttpHeader, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.HttpHeaders = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateWebhookRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateWebhookResponse) CloneVT() *CreateWebhookResponse { + if m == nil { + return (*CreateWebhookResponse)(nil) + } + r := new(CreateWebhookResponse) + r.Webhook = m.Webhook.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateWebhookResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListWebhooksRequest) CloneVT() *ListWebhooksRequest { + if m == nil { + return (*ListWebhooksRequest)(nil) + } + r := new(ListWebhooksRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.Filter = m.Filter + r.OrderBy = m.OrderBy + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListWebhooksRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListWebhooksResponse) CloneVT() *ListWebhooksResponse { + if m == nil { + return (*ListWebhooksResponse)(nil) + } + r := new(ListWebhooksResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.Webhooks; rhs != nil { + tmpContainer := make([]*Webhook, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Webhooks = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListWebhooksResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *TestWebhookRequest) CloneVT() *TestWebhookRequest { + if m == nil { + return (*TestWebhookRequest)(nil) + } + r := new(TestWebhookRequest) + if m.Form != nil { + r.Form = m.Form.(interface { + CloneVT() isTestWebhookRequest_Form + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *TestWebhookRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *TestWebhookRequest_WebhookId) CloneVT() isTestWebhookRequest_Form { + if m == nil { + return (*TestWebhookRequest_WebhookId)(nil) + } + r := new(TestWebhookRequest_WebhookId) + r.WebhookId = m.WebhookId + return r +} + +func (m *TestWebhookRequest_Webhook) CloneVT() isTestWebhookRequest_Form { + if m == nil { + return (*TestWebhookRequest_Webhook)(nil) + } + r := new(TestWebhookRequest_Webhook) + r.Webhook = m.Webhook.CloneVT() + return r +} + +func (m *TestWebhookRequest_CreateRequest) CloneVT() isTestWebhookRequest_Form { + if m == nil { + return (*TestWebhookRequest_CreateRequest)(nil) + } + r := new(TestWebhookRequest_CreateRequest) + r.CreateRequest = m.CreateRequest.CloneVT() + return r +} + +func (m *TestWebhookResponse) CloneVT() *TestWebhookResponse { + if m == nil { + return (*TestWebhookResponse)(nil) + } + r := new(TestWebhookResponse) + r.HttpResponseCode = m.HttpResponseCode + if rhs := m.HttpResponseBody; rhs != nil { + tmpBytes := make([]byte, len(rhs)) + copy(tmpBytes, rhs) + r.HttpResponseBody = tmpBytes + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *TestWebhookResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateWebhookSignatureKeyRequest) CloneVT() *CreateWebhookSignatureKeyRequest { + if m == nil { + return (*CreateWebhookSignatureKeyRequest)(nil) + } + r := new(CreateWebhookSignatureKeyRequest) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateWebhookSignatureKeyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateWebhookSignatureKeyResponse) CloneVT() *CreateWebhookSignatureKeyResponse { + if m == nil { + return (*CreateWebhookSignatureKeyResponse)(nil) + } + r := new(CreateWebhookSignatureKeyResponse) + r.SignatureKey = m.SignatureKey.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateWebhookSignatureKeyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetWebhookSignatureKeyRequest) CloneVT() *GetWebhookSignatureKeyRequest { + if m == nil { + return (*GetWebhookSignatureKeyRequest)(nil) + } + r := new(GetWebhookSignatureKeyRequest) + r.OrganizationId = m.OrganizationId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetWebhookSignatureKeyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetWebhookSignatureKeyResponse) CloneVT() *GetWebhookSignatureKeyResponse { + if m == nil { + return (*GetWebhookSignatureKeyResponse)(nil) + } + r := new(GetWebhookSignatureKeyResponse) + r.SignatureKey = m.SignatureKey.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetWebhookSignatureKeyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) CloneVT() *ToggleWebhookSignatureKeyActivationRequest { + if m == nil { + return (*ToggleWebhookSignatureKeyActivationRequest)(nil) + } + r := new(ToggleWebhookSignatureKeyActivationRequest) + r.Enable = m.Enable + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) CloneVT() *ToggleWebhookSignatureKeyActivationResponse { + if m == nil { + return (*ToggleWebhookSignatureKeyActivationResponse)(nil) + } + r := new(ToggleWebhookSignatureKeyActivationResponse) + r.SignatureKey = m.SignatureKey.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *RotateWebhookSignatureKeyRequest) CloneVT() *RotateWebhookSignatureKeyRequest { + if m == nil { + return (*RotateWebhookSignatureKeyRequest)(nil) + } + r := new(RotateWebhookSignatureKeyRequest) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RotateWebhookSignatureKeyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *RotateWebhookSignatureKeyResponse) CloneVT() *RotateWebhookSignatureKeyResponse { + if m == nil { + return (*RotateWebhookSignatureKeyResponse)(nil) + } + r := new(RotateWebhookSignatureKeyResponse) + r.SignatureKey = m.SignatureKey.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RotateWebhookSignatureKeyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListWebhookLogsRequest) CloneVT() *ListWebhookLogsRequest { + if m == nil { + return (*ListWebhookLogsRequest)(nil) + } + r := new(ListWebhookLogsRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.Filter = m.Filter + r.OrderBy = m.OrderBy + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListWebhookLogsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListWebhookLogsResponse) CloneVT() *ListWebhookLogsResponse { + if m == nil { + return (*ListWebhookLogsResponse)(nil) + } + r := new(ListWebhookLogsResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.Logs; rhs != nil { + tmpContainer := make([]*WebhookLog, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Logs = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListWebhookLogsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateWebhookLogRequest) CloneVT() *CreateWebhookLogRequest { + if m == nil { + return (*CreateWebhookLogRequest)(nil) + } + r := new(CreateWebhookLogRequest) + r.WebhookId = m.WebhookId + r.EventId = m.EventId + r.RetryAttemptNumber = m.RetryAttemptNumber + r.Status = m.Status + r.SentDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.SentDate).CloneVT()) + if rhs := m.Payload; rhs != nil { + tmpVal := *rhs + r.Payload = &tmpVal + } + if rhs := m.ErrorReason; rhs != nil { + tmpVal := *rhs + r.ErrorReason = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateWebhookLogRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchCreateWebhookLogsRequest) CloneVT() *BatchCreateWebhookLogsRequest { + if m == nil { + return (*BatchCreateWebhookLogsRequest)(nil) + } + r := new(BatchCreateWebhookLogsRequest) + if rhs := m.Requests; rhs != nil { + tmpContainer := make([]*CreateWebhookLogRequest, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Requests = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchCreateWebhookLogsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *BatchCreateWebhookLogsResponse) CloneVT() *BatchCreateWebhookLogsResponse { + if m == nil { + return (*BatchCreateWebhookLogsResponse)(nil) + } + r := new(BatchCreateWebhookLogsResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *BatchCreateWebhookLogsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (this *Webhook) EqualVT(that *Webhook) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.WebhookId != that.WebhookId { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + if this.TargetUrl != that.TargetUrl { + return false + } + if this.Name != that.Name { + return false + } + if this.EventType != that.EventType { + return false + } + if p, q := this.Payload, that.Payload; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ModifiedDate).EqualVT((*timestamppb1.Timestamp)(that.ModifiedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + if this.ModifiedByUserId != that.ModifiedByUserId { + return false + } + if len(this.HttpHeaders) != len(that.HttpHeaders) { + return false + } + for i, vx := range this.HttpHeaders { + vy := that.HttpHeaders[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &WebhookHttpHeader{} + } + if q == nil { + q = &WebhookHttpHeader{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.IsArchived != that.IsArchived { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Webhook) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Webhook) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *WebhookLog) EqualVT(that *WebhookLog) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.WebhookLogId != that.WebhookLogId { + return false + } + if this.WebhookId != that.WebhookId { + return false + } + if this.EventId != that.EventId { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + if this.Status != that.Status { + return false + } + if p, q := this.Payload, that.Payload; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if this.RetryAttemptNumber != that.RetryAttemptNumber { + return false + } + if p, q := this.ErrorReason, that.ErrorReason; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if !(*timestamppb1.Timestamp)(this.SentDate).EqualVT((*timestamppb1.Timestamp)(that.SentDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ModifiedDate).EqualVT((*timestamppb1.Timestamp)(that.ModifiedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + if this.ModifiedByUserId != that.ModifiedByUserId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *WebhookLog) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*WebhookLog) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *WebhookSignatureKey) EqualVT(that *WebhookSignatureKey) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.SignatureKey != that.SignatureKey { + return false + } + if this.Active != that.Active { + return false + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ModifiedDate).EqualVT((*timestamppb1.Timestamp)(that.ModifiedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + if this.ModifiedByUserId != that.ModifiedByUserId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *WebhookSignatureKey) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*WebhookSignatureKey) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *WebhookHttpHeader) EqualVT(that *WebhookHttpHeader) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + if this.Value != that.Value { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *WebhookHttpHeader) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*WebhookHttpHeader) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetWebhookRequest) EqualVT(that *GetWebhookRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.WebhookId != that.WebhookId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetWebhookRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetWebhookRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetWebhookResponse) EqualVT(that *GetWebhookResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Webhook.EqualVT(that.Webhook) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetWebhookResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetWebhookResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateWebhookRequest) EqualVT(that *UpdateWebhookRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Webhook.EqualVT(that.Webhook) { + return false + } + if !(*fieldmaskpb1.FieldMask)(this.UpdateMask).EqualVT((*fieldmaskpb1.FieldMask)(that.UpdateMask)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateWebhookRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateWebhookRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateWebhookResponse) EqualVT(that *UpdateWebhookResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Webhook.EqualVT(that.Webhook) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateWebhookResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateWebhookResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateWebhookRequest) EqualVT(that *CreateWebhookRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + if this.TargetUrl != that.TargetUrl { + return false + } + if this.EventType != that.EventType { + return false + } + if p, q := this.Payload, that.Payload; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.HttpHeaders) != len(that.HttpHeaders) { + return false + } + for i, vx := range this.HttpHeaders { + vy := that.HttpHeaders[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &WebhookHttpHeader{} + } + if q == nil { + q = &WebhookHttpHeader{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateWebhookRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateWebhookRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateWebhookResponse) EqualVT(that *CreateWebhookResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Webhook.EqualVT(that.Webhook) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateWebhookResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateWebhookResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListWebhooksRequest) EqualVT(that *ListWebhooksRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListWebhooksRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListWebhooksRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListWebhooksResponse) EqualVT(that *ListWebhooksResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Webhooks) != len(that.Webhooks) { + return false + } + for i, vx := range this.Webhooks { + vy := that.Webhooks[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Webhook{} + } + if q == nil { + q = &Webhook{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListWebhooksResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListWebhooksResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *TestWebhookRequest) EqualVT(that *TestWebhookRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Form == nil && that.Form != nil { + return false + } else if this.Form != nil { + if that.Form == nil { + return false + } + if !this.Form.(interface { + EqualVT(isTestWebhookRequest_Form) bool + }).EqualVT(that.Form) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *TestWebhookRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*TestWebhookRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *TestWebhookRequest_WebhookId) EqualVT(thatIface isTestWebhookRequest_Form) bool { + that, ok := thatIface.(*TestWebhookRequest_WebhookId) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.WebhookId != that.WebhookId { + return false + } + return true +} + +func (this *TestWebhookRequest_Webhook) EqualVT(thatIface isTestWebhookRequest_Form) bool { + that, ok := thatIface.(*TestWebhookRequest_Webhook) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Webhook, that.Webhook; p != q { + if p == nil { + p = &Webhook{} + } + if q == nil { + q = &Webhook{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *TestWebhookRequest_CreateRequest) EqualVT(thatIface isTestWebhookRequest_Form) bool { + that, ok := thatIface.(*TestWebhookRequest_CreateRequest) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.CreateRequest, that.CreateRequest; p != q { + if p == nil { + p = &CreateWebhookRequest{} + } + if q == nil { + q = &CreateWebhookRequest{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *TestWebhookResponse) EqualVT(that *TestWebhookResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.HttpResponseCode != that.HttpResponseCode { + return false + } + if string(this.HttpResponseBody) != string(that.HttpResponseBody) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *TestWebhookResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*TestWebhookResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateWebhookSignatureKeyRequest) EqualVT(that *CreateWebhookSignatureKeyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateWebhookSignatureKeyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateWebhookSignatureKeyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateWebhookSignatureKeyResponse) EqualVT(that *CreateWebhookSignatureKeyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.SignatureKey.EqualVT(that.SignatureKey) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateWebhookSignatureKeyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateWebhookSignatureKeyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetWebhookSignatureKeyRequest) EqualVT(that *GetWebhookSignatureKeyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetWebhookSignatureKeyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetWebhookSignatureKeyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetWebhookSignatureKeyResponse) EqualVT(that *GetWebhookSignatureKeyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.SignatureKey.EqualVT(that.SignatureKey) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetWebhookSignatureKeyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetWebhookSignatureKeyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ToggleWebhookSignatureKeyActivationRequest) EqualVT(that *ToggleWebhookSignatureKeyActivationRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Enable != that.Enable { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ToggleWebhookSignatureKeyActivationRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ToggleWebhookSignatureKeyActivationRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ToggleWebhookSignatureKeyActivationResponse) EqualVT(that *ToggleWebhookSignatureKeyActivationResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.SignatureKey.EqualVT(that.SignatureKey) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ToggleWebhookSignatureKeyActivationResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ToggleWebhookSignatureKeyActivationResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *RotateWebhookSignatureKeyRequest) EqualVT(that *RotateWebhookSignatureKeyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RotateWebhookSignatureKeyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RotateWebhookSignatureKeyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *RotateWebhookSignatureKeyResponse) EqualVT(that *RotateWebhookSignatureKeyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.SignatureKey.EqualVT(that.SignatureKey) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RotateWebhookSignatureKeyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RotateWebhookSignatureKeyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListWebhookLogsRequest) EqualVT(that *ListWebhookLogsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListWebhookLogsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListWebhookLogsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListWebhookLogsResponse) EqualVT(that *ListWebhookLogsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Logs) != len(that.Logs) { + return false + } + for i, vx := range this.Logs { + vy := that.Logs[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &WebhookLog{} + } + if q == nil { + q = &WebhookLog{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListWebhookLogsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListWebhookLogsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateWebhookLogRequest) EqualVT(that *CreateWebhookLogRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.WebhookId != that.WebhookId { + return false + } + if this.EventId != that.EventId { + return false + } + if this.RetryAttemptNumber != that.RetryAttemptNumber { + return false + } + if this.Status != that.Status { + return false + } + if p, q := this.Payload, that.Payload; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.ErrorReason, that.ErrorReason; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if !(*timestamppb1.Timestamp)(this.SentDate).EqualVT((*timestamppb1.Timestamp)(that.SentDate)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateWebhookLogRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateWebhookLogRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *BatchCreateWebhookLogsRequest) EqualVT(that *BatchCreateWebhookLogsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Requests) != len(that.Requests) { + return false + } + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &CreateWebhookLogRequest{} + } + if q == nil { + q = &CreateWebhookLogRequest{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *BatchCreateWebhookLogsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchCreateWebhookLogsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *BatchCreateWebhookLogsResponse) EqualVT(that *BatchCreateWebhookLogsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *BatchCreateWebhookLogsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*BatchCreateWebhookLogsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// WebhookServiceClient is the client API for WebhookService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type WebhookServiceClient interface { + // Retrieve a webhook by ID. + GetWebhook(ctx context.Context, in *GetWebhookRequest, opts ...grpc.CallOption) (*GetWebhookResponse, error) + // Create a webhook. + CreateWebhook(ctx context.Context, in *CreateWebhookRequest, opts ...grpc.CallOption) (*CreateWebhookResponse, error) + // Update select fields of an existing webhook. + UpdateWebhook(ctx context.Context, in *UpdateWebhookRequest, opts ...grpc.CallOption) (*UpdateWebhookResponse, error) + // Retrieve and optionally filter a list of webhooks. + ListWebhooks(ctx context.Context, in *ListWebhooksRequest, opts ...grpc.CallOption) (*ListWebhooksResponse, error) + // Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook + // with the provided parameters and forward back the response from the target. + TestWebhook(ctx context.Context, in *TestWebhookRequest, opts ...grpc.CallOption) (*TestWebhookResponse, error) + // Create an webhook signature key. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256. + // The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then + // this will simply return it. See `WebhookService_RotateWebhookSignatureKey` to rotate the key. + CreateWebhookSignatureKey(ctx context.Context, in *CreateWebhookSignatureKeyRequest, opts ...grpc.CallOption) (*CreateWebhookSignatureKeyResponse, error) + // Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist. + GetWebhookSignatureKey(ctx context.Context, in *GetWebhookSignatureKeyRequest, opts ...grpc.CallOption) (*GetWebhookSignatureKeyResponse, error) + // Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist. + ToggleWebhookSignatureKeyActivation(ctx context.Context, in *ToggleWebhookSignatureKeyActivationRequest, opts ...grpc.CallOption) (*ToggleWebhookSignatureKeyActivationResponse, error) + // Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous. + RotateWebhookSignatureKey(ctx context.Context, in *RotateWebhookSignatureKeyRequest, opts ...grpc.CallOption) (*RotateWebhookSignatureKeyResponse, error) + // Create a batch of webhook logs. Users should not have to call this directly. + BatchCreateWebhookLogs(ctx context.Context, in *BatchCreateWebhookLogsRequest, opts ...grpc.CallOption) (*BatchCreateWebhookLogsResponse, error) + // Retrieve and optionally filter a list of webhook logs. + ListWebhookLogs(ctx context.Context, in *ListWebhookLogsRequest, opts ...grpc.CallOption) (*ListWebhookLogsResponse, error) +} + +type webhookServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewWebhookServiceClient(cc grpc.ClientConnInterface) WebhookServiceClient { + return &webhookServiceClient{cc} +} + +func (c *webhookServiceClient) GetWebhook(ctx context.Context, in *GetWebhookRequest, opts ...grpc.CallOption) (*GetWebhookResponse, error) { + out := new(GetWebhookResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/GetWebhook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) CreateWebhook(ctx context.Context, in *CreateWebhookRequest, opts ...grpc.CallOption) (*CreateWebhookResponse, error) { + out := new(CreateWebhookResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/CreateWebhook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) UpdateWebhook(ctx context.Context, in *UpdateWebhookRequest, opts ...grpc.CallOption) (*UpdateWebhookResponse, error) { + out := new(UpdateWebhookResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/UpdateWebhook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) ListWebhooks(ctx context.Context, in *ListWebhooksRequest, opts ...grpc.CallOption) (*ListWebhooksResponse, error) { + out := new(ListWebhooksResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/ListWebhooks", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) TestWebhook(ctx context.Context, in *TestWebhookRequest, opts ...grpc.CallOption) (*TestWebhookResponse, error) { + out := new(TestWebhookResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/TestWebhook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) CreateWebhookSignatureKey(ctx context.Context, in *CreateWebhookSignatureKeyRequest, opts ...grpc.CallOption) (*CreateWebhookSignatureKeyResponse, error) { + out := new(CreateWebhookSignatureKeyResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) GetWebhookSignatureKey(ctx context.Context, in *GetWebhookSignatureKeyRequest, opts ...grpc.CallOption) (*GetWebhookSignatureKeyResponse, error) { + out := new(GetWebhookSignatureKeyResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) ToggleWebhookSignatureKeyActivation(ctx context.Context, in *ToggleWebhookSignatureKeyActivationRequest, opts ...grpc.CallOption) (*ToggleWebhookSignatureKeyActivationResponse, error) { + out := new(ToggleWebhookSignatureKeyActivationResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) RotateWebhookSignatureKey(ctx context.Context, in *RotateWebhookSignatureKeyRequest, opts ...grpc.CallOption) (*RotateWebhookSignatureKeyResponse, error) { + out := new(RotateWebhookSignatureKeyResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) BatchCreateWebhookLogs(ctx context.Context, in *BatchCreateWebhookLogsRequest, opts ...grpc.CallOption) (*BatchCreateWebhookLogsResponse, error) { + out := new(BatchCreateWebhookLogsResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *webhookServiceClient) ListWebhookLogs(ctx context.Context, in *ListWebhookLogsRequest, opts ...grpc.CallOption) (*ListWebhookLogsResponse, error) { + out := new(ListWebhookLogsResponse) + err := c.cc.Invoke(ctx, "/sift.webhooks.v1.WebhookService/ListWebhookLogs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WebhookServiceServer is the server API for WebhookService service. +// All implementations must embed UnimplementedWebhookServiceServer +// for forward compatibility +type WebhookServiceServer interface { + // Retrieve a webhook by ID. + GetWebhook(context.Context, *GetWebhookRequest) (*GetWebhookResponse, error) + // Create a webhook. + CreateWebhook(context.Context, *CreateWebhookRequest) (*CreateWebhookResponse, error) + // Update select fields of an existing webhook. + UpdateWebhook(context.Context, *UpdateWebhookRequest) (*UpdateWebhookResponse, error) + // Retrieve and optionally filter a list of webhooks. + ListWebhooks(context.Context, *ListWebhooksRequest) (*ListWebhooksResponse, error) + // Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook + // with the provided parameters and forward back the response from the target. + TestWebhook(context.Context, *TestWebhookRequest) (*TestWebhookResponse, error) + // Create an webhook signature key. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256. + // The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then + // this will simply return it. See `WebhookService_RotateWebhookSignatureKey` to rotate the key. + CreateWebhookSignatureKey(context.Context, *CreateWebhookSignatureKeyRequest) (*CreateWebhookSignatureKeyResponse, error) + // Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist. + GetWebhookSignatureKey(context.Context, *GetWebhookSignatureKeyRequest) (*GetWebhookSignatureKeyResponse, error) + // Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist. + ToggleWebhookSignatureKeyActivation(context.Context, *ToggleWebhookSignatureKeyActivationRequest) (*ToggleWebhookSignatureKeyActivationResponse, error) + // Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous. + RotateWebhookSignatureKey(context.Context, *RotateWebhookSignatureKeyRequest) (*RotateWebhookSignatureKeyResponse, error) + // Create a batch of webhook logs. Users should not have to call this directly. + BatchCreateWebhookLogs(context.Context, *BatchCreateWebhookLogsRequest) (*BatchCreateWebhookLogsResponse, error) + // Retrieve and optionally filter a list of webhook logs. + ListWebhookLogs(context.Context, *ListWebhookLogsRequest) (*ListWebhookLogsResponse, error) + mustEmbedUnimplementedWebhookServiceServer() +} + +// UnimplementedWebhookServiceServer must be embedded to have forward compatible implementations. +type UnimplementedWebhookServiceServer struct { +} + +func (UnimplementedWebhookServiceServer) GetWebhook(context.Context, *GetWebhookRequest) (*GetWebhookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetWebhook not implemented") +} +func (UnimplementedWebhookServiceServer) CreateWebhook(context.Context, *CreateWebhookRequest) (*CreateWebhookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateWebhook not implemented") +} +func (UnimplementedWebhookServiceServer) UpdateWebhook(context.Context, *UpdateWebhookRequest) (*UpdateWebhookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateWebhook not implemented") +} +func (UnimplementedWebhookServiceServer) ListWebhooks(context.Context, *ListWebhooksRequest) (*ListWebhooksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListWebhooks not implemented") +} +func (UnimplementedWebhookServiceServer) TestWebhook(context.Context, *TestWebhookRequest) (*TestWebhookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TestWebhook not implemented") +} +func (UnimplementedWebhookServiceServer) CreateWebhookSignatureKey(context.Context, *CreateWebhookSignatureKeyRequest) (*CreateWebhookSignatureKeyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateWebhookSignatureKey not implemented") +} +func (UnimplementedWebhookServiceServer) GetWebhookSignatureKey(context.Context, *GetWebhookSignatureKeyRequest) (*GetWebhookSignatureKeyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetWebhookSignatureKey not implemented") +} +func (UnimplementedWebhookServiceServer) ToggleWebhookSignatureKeyActivation(context.Context, *ToggleWebhookSignatureKeyActivationRequest) (*ToggleWebhookSignatureKeyActivationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ToggleWebhookSignatureKeyActivation not implemented") +} +func (UnimplementedWebhookServiceServer) RotateWebhookSignatureKey(context.Context, *RotateWebhookSignatureKeyRequest) (*RotateWebhookSignatureKeyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RotateWebhookSignatureKey not implemented") +} +func (UnimplementedWebhookServiceServer) BatchCreateWebhookLogs(context.Context, *BatchCreateWebhookLogsRequest) (*BatchCreateWebhookLogsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchCreateWebhookLogs not implemented") +} +func (UnimplementedWebhookServiceServer) ListWebhookLogs(context.Context, *ListWebhookLogsRequest) (*ListWebhookLogsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListWebhookLogs not implemented") +} +func (UnimplementedWebhookServiceServer) mustEmbedUnimplementedWebhookServiceServer() {} + +// UnsafeWebhookServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to WebhookServiceServer will +// result in compilation errors. +type UnsafeWebhookServiceServer interface { + mustEmbedUnimplementedWebhookServiceServer() +} + +func RegisterWebhookServiceServer(s grpc.ServiceRegistrar, srv WebhookServiceServer) { + s.RegisterService(&WebhookService_ServiceDesc, srv) +} + +func _WebhookService_GetWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWebhookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).GetWebhook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/GetWebhook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).GetWebhook(ctx, req.(*GetWebhookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_CreateWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateWebhookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).CreateWebhook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/CreateWebhook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).CreateWebhook(ctx, req.(*CreateWebhookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_UpdateWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateWebhookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).UpdateWebhook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/UpdateWebhook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).UpdateWebhook(ctx, req.(*UpdateWebhookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_ListWebhooks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWebhooksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).ListWebhooks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/ListWebhooks", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).ListWebhooks(ctx, req.(*ListWebhooksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_TestWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TestWebhookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).TestWebhook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/TestWebhook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).TestWebhook(ctx, req.(*TestWebhookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_CreateWebhookSignatureKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateWebhookSignatureKeyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).CreateWebhookSignatureKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).CreateWebhookSignatureKey(ctx, req.(*CreateWebhookSignatureKeyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_GetWebhookSignatureKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWebhookSignatureKeyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).GetWebhookSignatureKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).GetWebhookSignatureKey(ctx, req.(*GetWebhookSignatureKeyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_ToggleWebhookSignatureKeyActivation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ToggleWebhookSignatureKeyActivationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).ToggleWebhookSignatureKeyActivation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).ToggleWebhookSignatureKeyActivation(ctx, req.(*ToggleWebhookSignatureKeyActivationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_RotateWebhookSignatureKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RotateWebhookSignatureKeyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).RotateWebhookSignatureKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).RotateWebhookSignatureKey(ctx, req.(*RotateWebhookSignatureKeyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_BatchCreateWebhookLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchCreateWebhookLogsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).BatchCreateWebhookLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).BatchCreateWebhookLogs(ctx, req.(*BatchCreateWebhookLogsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WebhookService_ListWebhookLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWebhookLogsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WebhookServiceServer).ListWebhookLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.webhooks.v1.WebhookService/ListWebhookLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WebhookServiceServer).ListWebhookLogs(ctx, req.(*ListWebhookLogsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// WebhookService_ServiceDesc is the grpc.ServiceDesc for WebhookService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var WebhookService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "sift.webhooks.v1.WebhookService", + HandlerType: (*WebhookServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetWebhook", + Handler: _WebhookService_GetWebhook_Handler, + }, + { + MethodName: "CreateWebhook", + Handler: _WebhookService_CreateWebhook_Handler, + }, + { + MethodName: "UpdateWebhook", + Handler: _WebhookService_UpdateWebhook_Handler, + }, + { + MethodName: "ListWebhooks", + Handler: _WebhookService_ListWebhooks_Handler, + }, + { + MethodName: "TestWebhook", + Handler: _WebhookService_TestWebhook_Handler, + }, + { + MethodName: "CreateWebhookSignatureKey", + Handler: _WebhookService_CreateWebhookSignatureKey_Handler, + }, + { + MethodName: "GetWebhookSignatureKey", + Handler: _WebhookService_GetWebhookSignatureKey_Handler, + }, + { + MethodName: "ToggleWebhookSignatureKeyActivation", + Handler: _WebhookService_ToggleWebhookSignatureKeyActivation_Handler, + }, + { + MethodName: "RotateWebhookSignatureKey", + Handler: _WebhookService_RotateWebhookSignatureKey_Handler, + }, + { + MethodName: "BatchCreateWebhookLogs", + Handler: _WebhookService_BatchCreateWebhookLogs_Handler, + }, + { + MethodName: "ListWebhookLogs", + Handler: _WebhookService_ListWebhookLogs_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "sift/webhooks/v1/webhooks.proto", +} + +func (m *Webhook) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Webhook) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Webhook) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x68 + } + if len(m.HttpHeaders) > 0 { + for iNdEx := len(m.HttpHeaders) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.HttpHeaders[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 + } + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x5a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x52 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x32 + } + if m.EventType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.EventType)) + i-- + dAtA[i] = 0x28 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + } + if len(m.TargetUrl) > 0 { + i -= len(m.TargetUrl) + copy(dAtA[i:], m.TargetUrl) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TargetUrl))) + i-- + dAtA[i] = 0x1a + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x12 + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WebhookLog) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookLog) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *WebhookLog) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x6a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x62 + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + if m.SentDate != nil { + size, err := (*timestamppb1.Timestamp)(m.SentDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.ErrorReason != nil { + i -= len(*m.ErrorReason) + copy(dAtA[i:], *m.ErrorReason) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorReason))) + i-- + dAtA[i] = 0x42 + } + if m.RetryAttemptNumber != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RetryAttemptNumber)) + i-- + dAtA[i] = 0x38 + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x32 + } + if m.Status != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x28 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x22 + } + if len(m.EventId) > 0 { + i -= len(m.EventId) + copy(dAtA[i:], m.EventId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.EventId))) + i-- + dAtA[i] = 0x1a + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0x12 + } + if len(m.WebhookLogId) > 0 { + i -= len(m.WebhookLogId) + copy(dAtA[i:], m.WebhookLogId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookLogId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WebhookSignatureKey) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookSignatureKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *WebhookSignatureKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x32 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x2a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.Active { + i-- + if m.Active { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if len(m.SignatureKey) > 0 { + i -= len(m.SignatureKey) + copy(dAtA[i:], m.SignatureKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SignatureKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WebhookHttpHeader) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookHttpHeader) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *WebhookHttpHeader) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetWebhookRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetWebhookResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateWebhookRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateWebhookRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdateWebhookRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateWebhookResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateWebhookResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdateWebhookResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateWebhookRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.HttpHeaders) > 0 { + for iNdEx := len(m.HttpHeaders) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.HttpHeaders[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x22 + } + if m.EventType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.EventType)) + i-- + dAtA[i] = 0x18 + } + if len(m.TargetUrl) > 0 { + i -= len(m.TargetUrl) + copy(dAtA[i:], m.TargetUrl) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TargetUrl))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateWebhookResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListWebhooksRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhooksRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListWebhooksRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListWebhooksResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhooksResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListWebhooksResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Webhooks) > 0 { + for iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Webhooks[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *TestWebhookRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TestWebhookRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TestWebhookRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Form.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *TestWebhookRequest_WebhookId) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TestWebhookRequest_WebhookId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *TestWebhookRequest_Webhook) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TestWebhookRequest_Webhook) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *TestWebhookRequest_CreateRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TestWebhookRequest_CreateRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.CreateRequest != nil { + size, err := m.CreateRequest.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *TestWebhookResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TestWebhookResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TestWebhookResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.HttpResponseBody) > 0 { + i -= len(m.HttpResponseBody) + copy(dAtA[i:], m.HttpResponseBody) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.HttpResponseBody))) + i-- + dAtA[i] = 0x12 + } + if m.HttpResponseCode != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HttpResponseCode)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookSignatureKeyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookSignatureKeyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateWebhookSignatureKeyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookSignatureKeyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookSignatureKeyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateWebhookSignatureKeyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookSignatureKeyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookSignatureKeyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetWebhookSignatureKeyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookSignatureKeyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookSignatureKeyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetWebhookSignatureKeyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Enable { + i-- + if m.Enable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RotateWebhookSignatureKeyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RotateWebhookSignatureKeyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RotateWebhookSignatureKeyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *RotateWebhookSignatureKeyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RotateWebhookSignatureKeyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RotateWebhookSignatureKeyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListWebhookLogsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhookLogsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListWebhookLogsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListWebhookLogsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhookLogsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListWebhookLogsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Logs) > 0 { + for iNdEx := len(m.Logs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Logs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookLogRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookLogRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateWebhookLogRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SentDate != nil { + size, err := (*timestamppb1.Timestamp)(m.SentDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.ErrorReason != nil { + i -= len(*m.ErrorReason) + copy(dAtA[i:], *m.ErrorReason) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorReason))) + i-- + dAtA[i] = 0x32 + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x2a + } + if m.Status != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x20 + } + if m.RetryAttemptNumber != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RetryAttemptNumber)) + i-- + dAtA[i] = 0x18 + } + if len(m.EventId) > 0 { + i -= len(m.EventId) + copy(dAtA[i:], m.EventId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.EventId))) + i-- + dAtA[i] = 0x12 + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BatchCreateWebhookLogsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchCreateWebhookLogsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BatchCreateWebhookLogsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *BatchCreateWebhookLogsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchCreateWebhookLogsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BatchCreateWebhookLogsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Webhook) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Webhook) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Webhook) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x68 + } + if len(m.HttpHeaders) > 0 { + for iNdEx := len(m.HttpHeaders) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.HttpHeaders[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 + } + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x5a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x52 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x32 + } + if m.EventType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.EventType)) + i-- + dAtA[i] = 0x28 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + } + if len(m.TargetUrl) > 0 { + i -= len(m.TargetUrl) + copy(dAtA[i:], m.TargetUrl) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TargetUrl))) + i-- + dAtA[i] = 0x1a + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x12 + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WebhookLog) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookLog) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *WebhookLog) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x6a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x62 + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + if m.SentDate != nil { + size, err := (*timestamppb1.Timestamp)(m.SentDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.ErrorReason != nil { + i -= len(*m.ErrorReason) + copy(dAtA[i:], *m.ErrorReason) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorReason))) + i-- + dAtA[i] = 0x42 + } + if m.RetryAttemptNumber != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RetryAttemptNumber)) + i-- + dAtA[i] = 0x38 + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x32 + } + if m.Status != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x28 + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x22 + } + if len(m.EventId) > 0 { + i -= len(m.EventId) + copy(dAtA[i:], m.EventId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.EventId))) + i-- + dAtA[i] = 0x1a + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0x12 + } + if len(m.WebhookLogId) > 0 { + i -= len(m.WebhookLogId) + copy(dAtA[i:], m.WebhookLogId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookLogId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WebhookSignatureKey) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookSignatureKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *WebhookSignatureKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x32 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x2a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.Active { + i-- + if m.Active { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if len(m.SignatureKey) > 0 { + i -= len(m.SignatureKey) + copy(dAtA[i:], m.SignatureKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SignatureKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WebhookHttpHeader) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookHttpHeader) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *WebhookHttpHeader) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetWebhookRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetWebhookResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateWebhookRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateWebhookRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateWebhookRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateWebhookResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateWebhookResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateWebhookResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateWebhookRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.HttpHeaders) > 0 { + for iNdEx := len(m.HttpHeaders) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.HttpHeaders[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x22 + } + if m.EventType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.EventType)) + i-- + dAtA[i] = 0x18 + } + if len(m.TargetUrl) > 0 { + i -= len(m.TargetUrl) + copy(dAtA[i:], m.TargetUrl) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TargetUrl))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateWebhookResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListWebhooksRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhooksRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListWebhooksRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListWebhooksResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhooksResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListWebhooksResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Webhooks) > 0 { + for iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Webhooks[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *TestWebhookRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TestWebhookRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TestWebhookRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Form.(*TestWebhookRequest_CreateRequest); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Form.(*TestWebhookRequest_Webhook); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Form.(*TestWebhookRequest_WebhookId); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *TestWebhookRequest_WebhookId) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TestWebhookRequest_WebhookId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *TestWebhookRequest_Webhook) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TestWebhookRequest_Webhook) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Webhook != nil { + size, err := m.Webhook.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *TestWebhookRequest_CreateRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TestWebhookRequest_CreateRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.CreateRequest != nil { + size, err := m.CreateRequest.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *TestWebhookResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TestWebhookResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TestWebhookResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.HttpResponseBody) > 0 { + i -= len(m.HttpResponseBody) + copy(dAtA[i:], m.HttpResponseBody) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.HttpResponseBody))) + i-- + dAtA[i] = 0x12 + } + if m.HttpResponseCode != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HttpResponseCode)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookSignatureKeyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookSignatureKeyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateWebhookSignatureKeyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookSignatureKeyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookSignatureKeyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateWebhookSignatureKeyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookSignatureKeyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookSignatureKeyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetWebhookSignatureKeyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetWebhookSignatureKeyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetWebhookSignatureKeyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetWebhookSignatureKeyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Enable { + i-- + if m.Enable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RotateWebhookSignatureKeyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RotateWebhookSignatureKeyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RotateWebhookSignatureKeyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *RotateWebhookSignatureKeyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RotateWebhookSignatureKeyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RotateWebhookSignatureKeyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SignatureKey != nil { + size, err := m.SignatureKey.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListWebhookLogsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhookLogsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListWebhookLogsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListWebhookLogsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListWebhookLogsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListWebhookLogsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Logs) > 0 { + for iNdEx := len(m.Logs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Logs[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreateWebhookLogRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateWebhookLogRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateWebhookLogRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.SentDate != nil { + size, err := (*timestamppb1.Timestamp)(m.SentDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.ErrorReason != nil { + i -= len(*m.ErrorReason) + copy(dAtA[i:], *m.ErrorReason) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ErrorReason))) + i-- + dAtA[i] = 0x32 + } + if m.Payload != nil { + i -= len(*m.Payload) + copy(dAtA[i:], *m.Payload) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Payload))) + i-- + dAtA[i] = 0x2a + } + if m.Status != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x20 + } + if m.RetryAttemptNumber != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RetryAttemptNumber)) + i-- + dAtA[i] = 0x18 + } + if len(m.EventId) > 0 { + i -= len(m.EventId) + copy(dAtA[i:], m.EventId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.EventId))) + i-- + dAtA[i] = 0x12 + } + if len(m.WebhookId) > 0 { + i -= len(m.WebhookId) + copy(dAtA[i:], m.WebhookId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WebhookId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BatchCreateWebhookLogsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchCreateWebhookLogsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchCreateWebhookLogsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *BatchCreateWebhookLogsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchCreateWebhookLogsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *BatchCreateWebhookLogsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Webhook) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WebhookId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.TargetUrl) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.EventType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.EventType)) + } + if m.Payload != nil { + l = len(*m.Payload) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ArchivedDate != nil { + l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.HttpHeaders) > 0 { + for _, e := range m.HttpHeaders { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.IsArchived { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *WebhookLog) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WebhookLogId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.WebhookId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.EventId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Status != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Status)) + } + if m.Payload != nil { + l = len(*m.Payload) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.RetryAttemptNumber != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RetryAttemptNumber)) + } + if m.ErrorReason != nil { + l = len(*m.ErrorReason) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.SentDate != nil { + l = (*timestamppb1.Timestamp)(m.SentDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *WebhookSignatureKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SignatureKey) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Active { + n += 2 + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *WebhookHttpHeader) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetWebhookRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WebhookId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetWebhookResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Webhook != nil { + l = m.Webhook.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateWebhookRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Webhook != nil { + l = m.Webhook.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.UpdateMask != nil { + l = (*fieldmaskpb1.FieldMask)(m.UpdateMask).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateWebhookResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Webhook != nil { + l = m.Webhook.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CreateWebhookRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.TargetUrl) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.EventType != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.EventType)) + } + if m.Payload != nil { + l = len(*m.Payload) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.HttpHeaders) > 0 { + for _, e := range m.HttpHeaders { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *CreateWebhookResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Webhook != nil { + l = m.Webhook.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListWebhooksRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListWebhooksResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Webhooks) > 0 { + for _, e := range m.Webhooks { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *TestWebhookRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Form.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *TestWebhookRequest_WebhookId) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WebhookId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *TestWebhookRequest_Webhook) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Webhook != nil { + l = m.Webhook.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *TestWebhookRequest_CreateRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CreateRequest != nil { + l = m.CreateRequest.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *TestWebhookResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.HttpResponseCode != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.HttpResponseCode)) + } + l = len(m.HttpResponseBody) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CreateWebhookSignatureKeyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *CreateWebhookSignatureKeyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SignatureKey != nil { + l = m.SignatureKey.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetWebhookSignatureKeyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetWebhookSignatureKeyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SignatureKey != nil { + l = m.SignatureKey.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ToggleWebhookSignatureKeyActivationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Enable { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *ToggleWebhookSignatureKeyActivationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SignatureKey != nil { + l = m.SignatureKey.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *RotateWebhookSignatureKeyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *RotateWebhookSignatureKeyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SignatureKey != nil { + l = m.SignatureKey.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListWebhookLogsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListWebhookLogsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Logs) > 0 { + for _, e := range m.Logs { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CreateWebhookLogRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WebhookId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.EventId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.RetryAttemptNumber != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RetryAttemptNumber)) + } + if m.Status != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Status)) + } + if m.Payload != nil { + l = len(*m.Payload) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ErrorReason != nil { + l = len(*m.ErrorReason) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.SentDate != nil { + l = (*timestamppb1.Timestamp)(m.SentDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *BatchCreateWebhookLogsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Requests) > 0 { + for _, e := range m.Requests { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *BatchCreateWebhookLogsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *Webhook) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Webhook: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Webhook: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WebhookId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TargetUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EventType", wireType) + } + m.EventType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EventType |= WebhookEventType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Payload = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpHeaders", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HttpHeaders = append(m.HttpHeaders, &WebhookHttpHeader{}) + if err := m.HttpHeaders[len(m.HttpHeaders)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookLog) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookLog: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookLog: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookLogId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WebhookLogId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WebhookId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EventId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EventId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= WebhookLogStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Payload = &s + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryAttemptNumber", wireType) + } + m.RetryAttemptNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RetryAttemptNumber |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorReason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ErrorReason = &s + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SentDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SentDate == nil { + m.SentDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.SentDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookSignatureKey) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookSignatureKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookSignatureKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SignatureKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Active = bool(v != 0) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookHttpHeader) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookHttpHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookHttpHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WebhookId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateWebhookRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateWebhookResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TargetUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EventType", wireType) + } + m.EventType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EventType |= WebhookEventType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Payload = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpHeaders", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HttpHeaders = append(m.HttpHeaders, &WebhookHttpHeader{}) + if err := m.HttpHeaders[len(m.HttpHeaders)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhooksRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhooksRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhooksRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhooksResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhooksResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhooksResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhooks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Webhooks = append(m.Webhooks, &Webhook{}) + if err := m.Webhooks[len(m.Webhooks)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TestWebhookRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TestWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TestWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Form = &TestWebhookRequest_WebhookId{WebhookId: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Form.(*TestWebhookRequest_Webhook); ok { + if err := oneof.Webhook.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Webhook{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Form = &TestWebhookRequest_Webhook{Webhook: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreateRequest", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Form.(*TestWebhookRequest_CreateRequest); ok { + if err := oneof.CreateRequest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &CreateWebhookRequest{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Form = &TestWebhookRequest_CreateRequest{CreateRequest: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TestWebhookResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TestWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TestWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpResponseCode", wireType) + } + m.HttpResponseCode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.HttpResponseCode |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpResponseBody", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HttpResponseBody = append(m.HttpResponseBody[:0], dAtA[iNdEx:postIndex]...) + if m.HttpResponseBody == nil { + m.HttpResponseBody = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookSignatureKeyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookSignatureKeyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookSignatureKeyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookSignatureKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookSignatureKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookSignatureKeyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookSignatureKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookSignatureKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ToggleWebhookSignatureKeyActivationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Enable = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ToggleWebhookSignatureKeyActivationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RotateWebhookSignatureKeyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RotateWebhookSignatureKeyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhookLogsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhookLogsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhookLogsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhookLogsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhookLogsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhookLogsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Logs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Logs = append(m.Logs, &WebhookLog{}) + if err := m.Logs[len(m.Logs)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookLogRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookLogRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookLogRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WebhookId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EventId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EventId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryAttemptNumber", wireType) + } + m.RetryAttemptNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RetryAttemptNumber |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= WebhookLogStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Payload = &s + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorReason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ErrorReason = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SentDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SentDate == nil { + m.SentDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.SentDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchCreateWebhookLogsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchCreateWebhookLogsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchCreateWebhookLogsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Requests", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Requests = append(m.Requests, &CreateWebhookLogRequest{}) + if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchCreateWebhookLogsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchCreateWebhookLogsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchCreateWebhookLogsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Webhook) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Webhook: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Webhook: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.WebhookId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.TargetUrl = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EventType", wireType) + } + m.EventType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EventType |= WebhookEventType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Payload = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpHeaders", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HttpHeaders = append(m.HttpHeaders, &WebhookHttpHeader{}) + if err := m.HttpHeaders[len(m.HttpHeaders)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookLog) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookLog: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookLog: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookLogId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.WebhookLogId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.WebhookId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EventId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.EventId = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= WebhookLogStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Payload = &s + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryAttemptNumber", wireType) + } + m.RetryAttemptNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RetryAttemptNumber |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorReason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.ErrorReason = &s + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SentDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SentDate == nil { + m.SentDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.SentDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookSignatureKey) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookSignatureKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookSignatureKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.SignatureKey = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Active = bool(v != 0) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookHttpHeader) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookHttpHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookHttpHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Value = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.WebhookId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateWebhookRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateWebhookResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.TargetUrl = stringValue + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EventType", wireType) + } + m.EventType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EventType |= WebhookEventType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Payload = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpHeaders", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HttpHeaders = append(m.HttpHeaders, &WebhookHttpHeader{}) + if err := m.HttpHeaders[len(m.HttpHeaders)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Webhook == nil { + m.Webhook = &Webhook{} + } + if err := m.Webhook.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhooksRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhooksRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhooksRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhooksResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhooksResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhooksResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhooks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Webhooks = append(m.Webhooks, &Webhook{}) + if err := m.Webhooks[len(m.Webhooks)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TestWebhookRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TestWebhookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TestWebhookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Form = &TestWebhookRequest_WebhookId{WebhookId: stringValue} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Form.(*TestWebhookRequest_Webhook); ok { + if err := oneof.Webhook.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &Webhook{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Form = &TestWebhookRequest_Webhook{Webhook: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreateRequest", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Form.(*TestWebhookRequest_CreateRequest); ok { + if err := oneof.CreateRequest.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &CreateWebhookRequest{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Form = &TestWebhookRequest_CreateRequest{CreateRequest: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TestWebhookResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TestWebhookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TestWebhookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpResponseCode", wireType) + } + m.HttpResponseCode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.HttpResponseCode |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HttpResponseBody", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HttpResponseBody = dAtA[iNdEx:postIndex] + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookSignatureKeyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookSignatureKeyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookSignatureKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookSignatureKeyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookSignatureKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookSignatureKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetWebhookSignatureKeyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetWebhookSignatureKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetWebhookSignatureKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ToggleWebhookSignatureKeyActivationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Enable = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ToggleWebhookSignatureKeyActivationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ToggleWebhookSignatureKeyActivationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RotateWebhookSignatureKeyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RotateWebhookSignatureKeyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RotateWebhookSignatureKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignatureKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SignatureKey == nil { + m.SignatureKey = &WebhookSignatureKey{} + } + if err := m.SignatureKey.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhookLogsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhookLogsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhookLogsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListWebhookLogsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListWebhookLogsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListWebhookLogsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Logs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Logs = append(m.Logs, &WebhookLog{}) + if err := m.Logs[len(m.Logs)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateWebhookLogRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateWebhookLogRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateWebhookLogRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WebhookId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.WebhookId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EventId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.EventId = stringValue + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryAttemptNumber", wireType) + } + m.RetryAttemptNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RetryAttemptNumber |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= WebhookLogStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Payload = &s + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorReason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.ErrorReason = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SentDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SentDate == nil { + m.SentDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.SentDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchCreateWebhookLogsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchCreateWebhookLogsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchCreateWebhookLogsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Requests", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Requests = append(m.Requests, &CreateWebhookLogRequest{}) + if err := m.Requests[len(m.Requests)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchCreateWebhookLogsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchCreateWebhookLogsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchCreateWebhookLogsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/makefile b/makefile index 5b3a84169..45abe6da3 100644 --- a/makefile +++ b/makefile @@ -13,7 +13,8 @@ gen-rust: bash scripts/gen.sh rust sanitize: - bash scripts/sanitize.sh + echo "Error: sanitize has been removed from this repo. Please see Confluence on proto updating." + exit 1 git-hooks: git config core.hooksPath .githooks diff --git a/protos/buf.lock b/protos/buf.lock index d7ef8cccf..33c97783d 100644 --- a/protos/buf.lock +++ b/protos/buf.lock @@ -1,6 +1,11 @@ # Generated by buf. DO NOT EDIT. version: v1 deps: + - remote: buf.build + owner: bufbuild + repository: protovalidate + commit: 52f32327d4b045a79293a6ad4e7e1236 + digest: shake256:ddff976f6322abaecd49ff0b271b7f8dec485046bafc52fe31f3272b555fa2829328be24d71ececefca38c87319173a31f1e931984066531b6ca2016b3598146 - remote: buf.build owner: googleapis repository: googleapis diff --git a/protos/buf.yaml b/protos/buf.yaml index 08cee397f..e7857f182 100644 --- a/protos/buf.yaml +++ b/protos/buf.yaml @@ -13,4 +13,5 @@ lint: - sift/protobuf_descriptors/v2/channel_parsing_options.proto deps: - buf.build/googleapis/googleapis - - buf.build/grpc-ecosystem/grpc-gateway \ No newline at end of file + - buf.build/grpc-ecosystem/grpc-gateway + - buf.build/bufbuild/protovalidate \ No newline at end of file diff --git a/protos/sift/annotation_logs/v1/annotation_logs.proto b/protos/sift/annotation_logs/v1/annotation_logs.proto index 01c1d7591..ab49d82e3 100644 --- a/protos/sift/annotation_logs/v1/annotation_logs.proto +++ b/protos/sift/annotation_logs/v1/annotation_logs.proto @@ -8,13 +8,12 @@ import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - service AnnotationLogService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with [annotation logs](/glossary#annotation)." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685"; - description: "Read more about annotations."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685" + description: "Read more about annotations." } }; @@ -32,7 +31,10 @@ service AnnotationLogService { // Retrieves annotation logs using an optional filter. rpc ListAnnotationLogs(ListAnnotationLogsRequest) returns (ListAnnotationLogsResponse) { - option (google.api.http) = {get: "/api/v1/annotations/{annotation_id}/logs"}; + option (google.api.http) = { + get: "/api/v1/annotations/{annotation_id}/logs" + additional_bindings: {get: "/api/v1/annotation-logs"} + }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "ListAnnotationLogs" description: "Retrieves annotation logs using an optional filter." @@ -73,7 +75,7 @@ message CreateAnnotationLogResponse { // The request for a call to `AnnotationLogService_ListAnnotationLogs` to retrieve annotation logs. message ListAnnotationLogsRequest { // The ID of the parent annotation associated with the annotation logs. - string annotation_id = 1 [(google.api.field_behavior) = REQUIRED]; + string annotation_id = 1 [(google.api.field_behavior) = OPTIONAL]; // The maximum number of annotation logs to return. // The service may return fewer than this value. @@ -89,7 +91,7 @@ message ListAnnotationLogsRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `annotation_log_id`, `annotation_id`, `created_by_user_id`, - // `created_date`, `modified_date`, and `kind`. + // `annotation_id`, `created_date`, `modified_date`, and `kind`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/annotation_logs#annotationlogsearchresult). Optional. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; diff --git a/protos/sift/annotations/v1/annotations.proto b/protos/sift/annotations/v1/annotations.proto index 2db7570ae..d98e6a019 100644 --- a/protos/sift/annotations/v1/annotations.proto +++ b/protos/sift/annotations/v1/annotations.proto @@ -10,7 +10,6 @@ import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/user.proto"; import "sift/metadata/v1/metadata.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Annotation Service"} }; @@ -19,8 +18,8 @@ service AnnotationService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with annotations." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685"; - description: "Read more about annotations."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685" + description: "Read more about annotations." } }; @@ -36,30 +35,82 @@ service AnnotationService { }; } - // Delete Annotation is deprecated. Calling this will archive the annotation, which should be done using the - // UpdateAnnotation method with the delete date set to a non-null value. Restoring an annotation can be done - // by calling UpdateAnnotation with the delete date set to a null value. + // Delete Annotation is deprecated. Use ArchiveAnnotation instead. + // Calling this will archive the annotation, which should be done using the + // ArchiveAnnotation method or the UpdateAnnotation method with the delete date set to a non-null value. + // Restoring an annotation can be done using the UnarchiveAnnotation method or by calling + // UpdateAnnotation with the delete date set to a null value. rpc DeleteAnnotation(DeleteAnnotationRequest) returns (DeleteAnnotationResponse) { + option deprecated = true; option (google.api.http) = {delete: "/api/v1/annotations/{annotation_id}"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "DeleteAnnotation" - description: "Deletes an annotation." + description: "Archives an annotation." + }; + } + + // Archives an annotation. + rpc ArchiveAnnotation(ArchiveAnnotationRequest) returns (ArchiveAnnotationResponse) { + option (google.api.http) = { + post: "/api/v1/annotations/{annotation_id}:archive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ArchiveAnnotation" + description: "Archives an annotation." }; } + // Unarchives an annotation. + rpc UnarchiveAnnotation(UnarchiveAnnotationRequest) returns (UnarchiveAnnotationResponse) { + option (google.api.http) = { + post: "/api/v1/annotations/{annotation_id}:unarchive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "UnarchiveAnnotation" + description: "Unarchives an annotation." + }; + } + + // BatchDeleteAnnotations is deprecated. Use BatchArchiveAnnotations instead. // BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored - // by calling UpdateAnnotation with the delete date set to a null value. + // by calling UnarchiveAnnotation or UpdateAnnotation with the delete date set to a null value. rpc BatchDeleteAnnotations(BatchDeleteAnnotationsRequest) returns (BatchDeleteAnnotationsResponse) { + option deprecated = true; option (google.api.http) = { - post: "/api/v1/annotations:batchDelete", + post: "/api/v1/annotations:batchDelete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "BatchDeleteAnnotation" - description: "Batch deletes annotations." + description: "Batch archives annotations." }; } + // Batch archives annotations. + rpc BatchArchiveAnnotations(BatchArchiveAnnotationsRequest) returns (BatchArchiveAnnotationsResponse) { + option (google.api.http) = { + post: "/api/v1/annotations:batchArchive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "BatchArchiveAnnotations" + description: "Batch archives annotations." + }; + } + + // Batch unarchives annotations. + rpc BatchUnarchiveAnnotations(BatchUnarchiveAnnotationsRequest) returns (BatchUnarchiveAnnotationsResponse) { + option (google.api.http) = { + post: "/api/v1/annotations:batchUnarchive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "BatchUnarchiveAnnotations" + description: "Batch unarchives annotations." + }; + } // Retrieves annotations using an optional filter. rpc ListAnnotations(ListAnnotationsRequest) returns (ListAnnotationsResponse) { option (google.api.http) = {get: "/api/v1/annotations"}; @@ -116,11 +167,19 @@ message Annotation { // The `end_time` of a pending annotation might be set, but is not yet finalized. bool pending = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; sift.common.type.v1.User assigned_to_user = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - google.protobuf.Timestamp deleted_date = 22 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp deleted_date = 22 [ + (google.api.field_behavior) = OPTIONAL, + deprecated = true + ]; repeated AnnotationLinkedChannel linked_channels = 23 [(google.api.field_behavior) = OPTIONAL]; repeated string asset_ids = 24 [(google.api.field_behavior) = OPTIONAL]; repeated sift.metadata.v1.MetadataValue metadata = 25 [(google.api.field_behavior) = OPTIONAL]; + + google.protobuf.Timestamp archived_date = 26 [(google.api.field_behavior) = OPTIONAL]; + + // is_archived is a inferred from when archived_date is not null + bool is_archived = 27 [(google.api.field_behavior) = REQUIRED]; } enum AnnotationState { @@ -236,7 +295,7 @@ message ListAnnotationsRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `annotation_id`, `start_time`, `end_time`, // `created_date`, `modified_date`, `run_id`, `name`, `description`, `state`, `created_by_user_id`, `created_by_rule_condition_version_id`, - // `annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, `campaign_reports`, and `metadata`. + // `annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, `campaign_reports`, `metadata`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/annotations#annotation). Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -275,3 +334,45 @@ message UpdateAnnotationRequest { message UpdateAnnotationResponse { Annotation annotation = 1; } + +// The request for a call to `AnnotationService_ArchiveAnnotation`. +message ArchiveAnnotationRequest { + string annotation_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response of a call to `AnnotationService_ArchiveAnnotation`. +message ArchiveAnnotationResponse { + Annotation annotation = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `AnnotationService_UnarchiveAnnotation`. +message UnarchiveAnnotationRequest { + string annotation_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response of a call to `AnnotationService_UnarchiveAnnotation`. +message UnarchiveAnnotationResponse { + Annotation annotation = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `AnnotationService_BatchArchiveAnnotations`. +message BatchArchiveAnnotationsRequest { + // Limit of 1000 annotations per batch + repeated string annotation_ids = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response of a call to `AnnotationService_BatchArchiveAnnotations`. +message BatchArchiveAnnotationsResponse { + repeated Annotation annotations = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `AnnotationService_BatchUnarchiveAnnotations`. +message BatchUnarchiveAnnotationsRequest { + // Limit of 1000 annotations per batch + repeated string annotation_ids = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response of a call to `AnnotationService_BatchUnarchiveAnnotations`. +message BatchUnarchiveAnnotationsResponse { + repeated Annotation annotations = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/protos/sift/api_keys/v2/api_keys.proto b/protos/sift/api_keys/v2/api_keys.proto index 88bca5ace..f845582d8 100644 --- a/protos/sift/api_keys/v2/api_keys.proto +++ b/protos/sift/api_keys/v2/api_keys.proto @@ -2,13 +2,13 @@ syntax = "proto3"; package sift.api_keys.v2; +import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/organization.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "API Key Service"} }; @@ -113,12 +113,18 @@ message ListApiKeysResponse { message CreateApiKeyRequest { // The name for the new ApiKey. Required. string name = 1 [(google.api.field_behavior) = REQUIRED]; - string user_id = 2 [(google.api.field_behavior) = REQUIRED]; + string user_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; } // The request for a call to ApiKeyService.DeleteApiKey. message DeleteApiKeyRequest { - string api_key_id = 1 [(google.api.field_behavior) = REQUIRED]; + string api_key_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; } message DeleteApiKeyResponse {} diff --git a/protos/sift/assets/v1/assets.proto b/protos/sift/assets/v1/assets.proto index 29dbe53f6..fe0750e53 100644 --- a/protos/sift/assets/v1/assets.proto +++ b/protos/sift/assets/v1/assets.proto @@ -9,7 +9,6 @@ import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/metadata/v1/metadata.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Asset Service"} }; @@ -111,13 +110,13 @@ message ListAssetsRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `asset_id`, `created_by_user_id`, `modified_by_user_id`, - // `created_date`, `modified_date`, `name`, `tag_id`, `tag_name`, `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. + // `created_date`, `modified_date`, `name`, 'name_lower', `tag_id`, `tag_name`, 'archived_date', `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/assets#asset). Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; // How to order the retrieved assets. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are `name`, `created_date` and `modified_date`. + // Available fields to order_by are `name`, `created_date`, `modified_date` and `archived_date`. // If left empty, items are ordered by `created_date` in descending order (newest-first). // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,modified_date" diff --git a/protos/sift/calculated_channels/v1/calculated_channels.proto b/protos/sift/calculated_channels/v1/calculated_channels.proto index c6fce2544..916e648a0 100644 --- a/protos/sift/calculated_channels/v1/calculated_channels.proto +++ b/protos/sift/calculated_channels/v1/calculated_channels.proto @@ -6,7 +6,7 @@ import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/channel_data_type.proto"; - +import "sift/common/type/v1/user_defined_functions.proto"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Calculated Channels Service"} @@ -16,8 +16,8 @@ service CalculatedChannelsService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with calculated channels." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153"; - description: "Read more about calculated channels."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153" + description: "Read more about calculated channels." } }; @@ -54,6 +54,7 @@ message ExpressionRequest { map channel_references = 1 [deprecated = true]; string expression = 2 [(google.api.field_behavior) = REQUIRED]; repeated ExpressionChannelReference expression_channel_references = 3; + repeated sift.common.type.v1.FunctionDependency function_dependencies = 4 [(google.api.field_behavior) = OPTIONAL]; } message ListExpressionIdentifiersRequest { @@ -67,6 +68,7 @@ message ListExpressionIdentifiersRequest { message ListExpressionIdentifiersResponse { repeated ExpressionIdentifier identifiers = 1 [(google.api.field_behavior) = REQUIRED]; + optional string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; } message ExpressionIdentifier { @@ -91,6 +93,7 @@ enum ExpressionIdentifierLibrary { EXPRESSION_IDENTIFIER_LIBRARY_ITER = 4; EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL = 5; EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY = 6; + EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS = 7; } enum ExpressionMode { diff --git a/protos/sift/calculated_channels/v2/calculated_channels.proto b/protos/sift/calculated_channels/v2/calculated_channels.proto index 2a375d4d8..2ac6ad069 100644 --- a/protos/sift/calculated_channels/v2/calculated_channels.proto +++ b/protos/sift/calculated_channels/v2/calculated_channels.proto @@ -14,16 +14,15 @@ import "sift/common/type/v1/user_defined_functions.proto"; import "sift/metadata/v1/metadata.proto"; - service CalculatedChannelService { // Retrieve the latest version of a calculated channel rpc GetCalculatedChannel(GetCalculatedChannelRequest) returns (GetCalculatedChannelResponse) { option (google.api.http) = { get: "/api/v2/calculated-channels/{calculated_channel_id}" - additional_bindings {get: "/v2/organizations/{organization_id}/calculated-channels/{client_key}"} + additional_bindings: {get: "/v2/organizations/{organization_id}/calculated-channels/{client_key}"} }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetCalculatedChannel", + summary: "GetCalculatedChannel" description: "Retrieve the latest version of a calculated channel." }; } @@ -35,7 +34,7 @@ service CalculatedChannelService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CreateCalculatedChannel", + summary: "CreateCalculatedChannel" description: "Create a calculated channel." }; } @@ -44,7 +43,7 @@ service CalculatedChannelService { rpc ListCalculatedChannels(ListCalculatedChannelsRequest) returns (ListCalculatedChannelsResponse) { option (google.api.http) = {get: "/api/v2/calculated-channels"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ListCalculatedChannels", + summary: "ListCalculatedChannels" description: "Retrieve the latest versions of calculated channels based on an optional filter." }; } @@ -56,7 +55,7 @@ service CalculatedChannelService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "UpdateCalculatedChannel", + summary: "UpdateCalculatedChannel" description: "Update and create a new version of a calculated channel." }; } @@ -65,10 +64,10 @@ service CalculatedChannelService { rpc ListCalculatedChannelVersions(ListCalculatedChannelVersionsRequest) returns (ListCalculatedChannelVersionsResponse) { option (google.api.http) = { get: "/api/v2/calculated-channels/{calculated_channel_id}/versions" - additional_bindings {get: "/v2/organizations/{organization_id}/calculated-channels/{client_key}/versions"} + additional_bindings: {get: "/v2/organizations/{organization_id}/calculated-channels/{client_key}/versions"} }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ListCalculatedChannelVersions", + summary: "ListCalculatedChannelVersions" description: "List versions of a particular calculated channel with an optional filter." }; } @@ -80,7 +79,7 @@ service CalculatedChannelService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ResolveCalculatedChannel", + summary: "ResolveCalculatedChannel" description: "Resolve a calculated channel into an expression with references" }; } @@ -92,7 +91,7 @@ service CalculatedChannelService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "BatchResolveCalculatedChannel", + summary: "BatchResolveCalculatedChannel" description: "Resolve a batch of calculated channels into expressions with references" }; } @@ -101,7 +100,7 @@ service CalculatedChannelService { rpc ListResolvedCalculatedChannels(ListResolvedCalculatedChannelsRequest) returns (ListResolvedCalculatedChannelsResponse) { option (google.api.http) = {get: "/api/v2/calculated-channels/resolved"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ListResolvedCalculatedChannels", + summary: "ListResolvedCalculatedChannels" description: "Retrieve the latest versions of calculated channels based on an optional filter." }; } @@ -127,6 +126,8 @@ message CalculatedChannel { string modified_by_user_id = 17 [(google.api.field_behavior) = REQUIRED]; repeated sift.common.type.v1.FunctionDependency function_dependencies = 19 [(google.api.field_behavior) = REQUIRED]; repeated sift.metadata.v1.MetadataValue metadata = 20 [(google.api.field_behavior) = REQUIRED]; + // Whether the calculated channel is archived. This is inferred from whether archived_date is set. + bool is_archived = 21 [(google.api.field_behavior) = REQUIRED]; } message CalculatedChannelConfiguration { @@ -215,7 +216,9 @@ message ListCalculatedChannelsRequest { string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, and `archived_date. + // Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + // `asset_id`, `asset_name`, `tag_id`, `tag_name`, `units`, `calculated_channel_version_id`, + // `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -224,7 +227,7 @@ message ListCalculatedChannelsRequest { string organization_id = 4 [(google.api.field_behavior) = OPTIONAL]; // How to order the retrieved calculated channels. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are `created_date` and `modified_date`. + // Available fields to order_by are `created_date`, `modified_date`, `name`, `description`, `units`, and `archived_date`. // If left empty, items are ordered by `created_date` in descending order (newest-first). // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,modified_date" @@ -247,7 +250,7 @@ message UpdateCalculatedChannelRequest { CalculatedChannel calculated_channel = 1 [(google.api.field_behavior) = REQUIRED]; // The list of fields to be updated. The fields available to be updated are `name`, `description`, `units`, `metadata`, - // `query_configuration`, `archived_date`, and `asset_configuration`. + // `query_configuration`, `archived_date`, `is_archived`, and `asset_configuration`. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; // Optional user notes to describe changes. @@ -278,7 +281,9 @@ message ListCalculatedChannelVersionsRequest { string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `archived_date`, and `metadata`. + // Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + // `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`, + // `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. string filter = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -287,7 +292,7 @@ message ListCalculatedChannelVersionsRequest { string organization_id = 6 [(google.api.field_behavior) = OPTIONAL]; // How to order the retrieved calculated channel versions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are `created_date`, `modified_date`, and `version`. + // Available fields to order_by are 'version', `created_date`, `modified_date`, `name`, `description`, `units`, and `archived_date`. // If left empty, items are ordered by `created_date` in ascending order (oldest-first). // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,modified_date". @@ -378,7 +383,9 @@ message ListResolvedCalculatedChannelsRequest { string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, and `archived_date. + // Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + // `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`, + // `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. string filter = 5 [(google.api.field_behavior) = OPTIONAL]; diff --git a/protos/sift/campaigns/v1/campaigns.proto b/protos/sift/campaigns/v1/campaigns.proto index 8cf554d7d..6c9517c1c 100644 --- a/protos/sift/campaigns/v1/campaigns.proto +++ b/protos/sift/campaigns/v1/campaigns.proto @@ -12,7 +12,6 @@ import "sift/common/type/v1/resource_identifier.proto"; import "sift/metadata/v1/metadata.proto"; import "sift/tags/v1/tags.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Campaign service"} }; @@ -22,10 +21,10 @@ service CampaignService { rpc GetCampaign(GetCampaignRequest) returns (GetCampaignResponse) { option (google.api.http) = { get: "/api/v1/campaigns/{campaign_id}" - additional_bindings {get: "/v1/organizations/{organization_id}/campaigns/{client_key}"} + additional_bindings: {get: "/v1/organizations/{organization_id}/campaigns/{client_key}"} }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetCampaign", + summary: "GetCampaign" description: "Retrieve a campaign." }; } @@ -37,7 +36,7 @@ service CampaignService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CreateCampaign", + summary: "CreateCampaign" description: "Create a campaign." }; } @@ -58,7 +57,7 @@ service CampaignService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "UpdateCampaign", + summary: "UpdateCampaign" description: "Updates an existing campaign using the list of fields specified in `update_mask`." }; } @@ -94,6 +93,9 @@ message Campaign { // User-defined metadata for this campaign repeated sift.metadata.v1.MetadataValue metadata = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Whether the campaign. This is inferred from whether archived_date is set. + bool is_archived = 15 [(google.api.field_behavior) = REQUIRED]; } // A top-level summary of the report's rules is provided here so clients needn't aggregate this information themselves. @@ -190,7 +192,7 @@ message ListCampaignsRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `created_by_user_id`, `tag_id`, `tag_name`, `report_id`, `report_name`, `campaign_id`, `client_key`, `description`, `run_id`, `name`, and `metadata`. + // `created_by_user_id`, `tag_id`, `tag_name`, `report_id`, `report_name`, `campaign_id`, `client_key`, `description`, `run_id`, `name`, `is_archived`, and `metadata`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -222,7 +224,7 @@ message UpdateCampaignRequest { // The campaign to update. Campaign campaign = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `tags`, `reports`, and `metadata`. + // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `reports`, and `metadata`. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } diff --git a/protos/sift/channel_schemas/v1/channel_schemas.proto b/protos/sift/channel_schemas/v1/channel_schemas.proto index 69f01939c..63934b11a 100644 --- a/protos/sift/channel_schemas/v1/channel_schemas.proto +++ b/protos/sift/channel_schemas/v1/channel_schemas.proto @@ -9,7 +9,6 @@ import "sift/common/type/v1/channel_bit_field_element.proto"; import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Channel Schema Service"} }; @@ -20,7 +19,7 @@ service ChannelSchemaService { // Create a channel schema rpc CreateChannelSchema(CreateChannelSchemaRequest) returns (CreateChannelSchemaResponse) { option (google.api.http) = { - post: "/api/v1/channel-schemas", + post: "/api/v1/channel-schemas" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { diff --git a/protos/sift/channel_schemas/v2/channel_schemas.proto b/protos/sift/channel_schemas/v2/channel_schemas.proto index 12d133a24..2a31729ea 100644 --- a/protos/sift/channel_schemas/v2/channel_schemas.proto +++ b/protos/sift/channel_schemas/v2/channel_schemas.proto @@ -9,7 +9,6 @@ import "sift/common/type/v1/channel_bit_field_element.proto"; import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Channel Schema Service"} }; @@ -20,7 +19,7 @@ service ChannelSchemaService { // Create a channel schema rpc CreateChannelSchema(CreateChannelSchemaRequest) returns (CreateChannelSchemaResponse) { option (google.api.http) = { - post: "/api/v2/channel-schemas", + post: "/api/v2/channel-schemas" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { diff --git a/protos/sift/channels/v2/channels.proto b/protos/sift/channels/v2/channels.proto index 3f28e9083..0c026dd60 100644 --- a/protos/sift/channels/v2/channels.proto +++ b/protos/sift/channels/v2/channels.proto @@ -9,7 +9,7 @@ import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/channel_bit_field_element.proto"; import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; - +import "sift/metadata/v1/metadata.proto"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Channel service"} @@ -19,8 +19,8 @@ service ChannelService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with [channels](/glossary#channel)." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943"; - description: "Read more about what channels are."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943" + description: "Read more about what channels are." } }; @@ -58,6 +58,7 @@ message Channel { sift.common.type.v1.ChannelDataType data_type = 12 [(google.api.field_behavior) = REQUIRED]; repeated sift.common.type.v1.ChannelEnumType enum_types = 13; repeated sift.common.type.v1.ChannelBitFieldElement bit_field_elements = 14; + repeated sift.metadata.v1.MetadataValue metadata = 15 [(google.api.field_behavior) = REQUIRED]; } // The request for a call to `ChannelService_GetChannel`. diff --git a/protos/sift/channels/v3/channels.proto b/protos/sift/channels/v3/channels.proto index adfff1277..875b64793 100644 --- a/protos/sift/channels/v3/channels.proto +++ b/protos/sift/channels/v3/channels.proto @@ -12,7 +12,6 @@ import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; import "sift/metadata/v1/metadata.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Channel service"} }; @@ -21,8 +20,8 @@ service ChannelService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with [channels](/glossary#channel)." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943"; - description: "Read more about what channels are."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943" + description: "Read more about what channels are." } }; @@ -46,6 +45,8 @@ service ChannelService { }; } + // EXPERIMENTAL: This RPC is experimental and only available to a limited set of users. + // Update a channel rpc UpdateChannel(UpdateChannelRequest) returns (UpdateChannelResponse) { option (google.api.http) = { @@ -104,7 +105,7 @@ message ListChannelsRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `channel_id`, `asset_id`, `name`, `description`, `active`, - // `run_id`, `run_name`, `run_client_key`, `created_date`, and `modified_date`. + // `run_id`, `run_name`, `run_client_key`, `created_date`, `modified_date`, `created_by_user_id`, and `modified_by_user_id`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/channels#channel). Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -123,6 +124,65 @@ message ListChannelsResponse { string next_page_token = 2; } +message FilterChannel { + string channel_id = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 2 [(google.api.field_behavior) = REQUIRED]; + reserved 3; + string organization_id = 4 [(google.api.field_behavior) = REQUIRED]; + string asset_id = 5 [(google.api.field_behavior) = REQUIRED]; + string asset_name = 6 [(google.api.field_behavior) = REQUIRED]; + string description = 7; + string display_description = 8; + string unit_id = 9; + string display_unit_id = 10; + string unit = 11; + string display_unit = 12; + sift.common.type.v1.ChannelDataType data_type = 13 [(google.api.field_behavior) = REQUIRED]; + repeated sift.common.type.v1.ChannelEnumType enum_types = 14; + repeated sift.common.type.v1.ChannelBitFieldElement bit_field_elements = 15; + repeated sift.metadata.v1.MetadataValue metadata = 16 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to ChannelService_FilterChannels. +message FilterChannelsRequest { + uint32 page_size = 1; + string page_token = 2; + + // The search term to match against channel names, components and descriptions. Optional. + string search_term = 4; + + // If true, the search term is case sensitive. Optional, default false. + bool is_search_case_sensitive = 5; + + // If true, the search term is treated as a regular expression. Optional, default false. + bool is_search_regexp = 6; + + // If provided, only channels matching these asset_ids are returned. Optional + repeated string asset_ids = 7; + + // Only channels for these runs are returned. Optional + repeated string run_ids = 8; + + // If provided, only channels matching these channel_ids are returned. Optional + repeated string channel_ids = 9; + + // If provided, only channels with assets with these tag_ids are returned. Optional + repeated string asset_tag_ids = 10; + + // If provide, only channels with these data types are returned. Optional. + repeated sift.common.type.v1.ChannelDataType data_types = 11; + + // If provided, only channels with this metadata are returned. Optional. + repeated string metadata_keys = 12; + repeated string metadata_values = 13; +} + +// The result of a call to ChannelService_FilterChannels. +message FilterChannelsResponse { + repeated FilterChannel channels = 1; + string next_page_token = 2; +} + // The request for a call to ChannelService_UpdateChannel. message UpdateChannelRequest { Channel channel = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/common/type/v1/channel_bit_field_element.proto b/protos/sift/common/type/v1/channel_bit_field_element.proto index 048f6ab60..67ad1fdb4 100644 --- a/protos/sift/common/type/v1/channel_bit_field_element.proto +++ b/protos/sift/common/type/v1/channel_bit_field_element.proto @@ -5,7 +5,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message ChannelBitFieldElement { string name = 1 [(google.api.field_behavior) = REQUIRED]; // The index of this element's first bit in the logical bit field array. diff --git a/protos/sift/common/type/v1/channel_config.proto b/protos/sift/common/type/v1/channel_config.proto index bda59a1fb..5ccdf3224 100644 --- a/protos/sift/common/type/v1/channel_config.proto +++ b/protos/sift/common/type/v1/channel_config.proto @@ -8,7 +8,6 @@ import "sift/common/type/v1/channel_enum_type.proto"; import "sift/metadata/v1/metadata.proto"; - message ChannelConfig { string name = 1; string units = 2; diff --git a/protos/sift/common/type/v1/channel_data_type.proto b/protos/sift/common/type/v1/channel_data_type.proto index 0f73a3332..999813e3d 100644 --- a/protos/sift/common/type/v1/channel_data_type.proto +++ b/protos/sift/common/type/v1/channel_data_type.proto @@ -3,7 +3,6 @@ syntax = "proto3"; package sift.common.type.v1; - enum ChannelDataType { CHANNEL_DATA_TYPE_UNSPECIFIED = 0 [deprecated = true]; CHANNEL_DATA_TYPE_DOUBLE = 1; diff --git a/protos/sift/common/type/v1/channel_enum_type.proto b/protos/sift/common/type/v1/channel_enum_type.proto index 8c5850251..51be839d8 100644 --- a/protos/sift/common/type/v1/channel_enum_type.proto +++ b/protos/sift/common/type/v1/channel_enum_type.proto @@ -5,7 +5,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message ChannelEnumType { string name = 1 [(google.api.field_behavior) = REQUIRED]; uint32 key = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/common/type/v1/organization.proto b/protos/sift/common/type/v1/organization.proto index dadb2a84b..2618fcf8a 100644 --- a/protos/sift/common/type/v1/organization.proto +++ b/protos/sift/common/type/v1/organization.proto @@ -5,7 +5,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message Organization { string organization_id = 1 [(google.api.field_behavior) = REQUIRED]; string organization_name = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/common/type/v1/resource_identifier.proto b/protos/sift/common/type/v1/resource_identifier.proto index 81c52df09..d0b1fb2d3 100644 --- a/protos/sift/common/type/v1/resource_identifier.proto +++ b/protos/sift/common/type/v1/resource_identifier.proto @@ -5,7 +5,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message ResourceIdentifier { oneof identifier { string id = 1; diff --git a/protos/sift/common/type/v1/resource_ref.proto b/protos/sift/common/type/v1/resource_ref.proto index 0519ef770..42c1b725c 100644 --- a/protos/sift/common/type/v1/resource_ref.proto +++ b/protos/sift/common/type/v1/resource_ref.proto @@ -5,7 +5,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - // ResourceRef is meant to be embedded as a field in other resources. It's used by one resource to point to another resource. // In a request, use the `find_by` field to select a resource to point to. // In a response, the fields marked `google.api.field_behavior = OUTPUT_ONLY` will be populated by the backend. diff --git a/protos/sift/common/type/v1/user.proto b/protos/sift/common/type/v1/user.proto index b05e838fe..1d50f6041 100644 --- a/protos/sift/common/type/v1/user.proto +++ b/protos/sift/common/type/v1/user.proto @@ -6,7 +6,6 @@ import "google/api/field_behavior.proto"; import "sift/common/type/v1/organization.proto"; - message User { string user_id = 1 [(google.api.field_behavior) = REQUIRED]; string user_name = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/common/type/v1/user_defined_functions.proto b/protos/sift/common/type/v1/user_defined_functions.proto index 3f46aa601..019ef95ec 100644 --- a/protos/sift/common/type/v1/user_defined_functions.proto +++ b/protos/sift/common/type/v1/user_defined_functions.proto @@ -2,12 +2,12 @@ syntax = "proto3"; package sift.common.type.v1; +import "buf/validate/validate.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "sift/metadata/v1/metadata.proto"; - enum FunctionDataType { FUNCTION_DATA_TYPE_UNSPECIFIED = 0; FUNCTION_DATA_TYPE_NUMERIC = 1; @@ -35,10 +35,14 @@ message UserDefinedFunction { string created_by_user_id = 16 [(google.api.field_behavior) = REQUIRED]; string modified_by_user_id = 17 [(google.api.field_behavior) = REQUIRED]; repeated sift.metadata.v1.MetadataValue metadata = 18 [(google.api.field_behavior) = REQUIRED]; + bool is_archived = 19 [(google.api.field_behavior) = REQUIRED]; } message FunctionDependency { - string user_defined_function_version_id = 1 [(google.api.field_behavior) = REQUIRED]; + string user_defined_function_version_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; } message FunctionInput { diff --git a/protos/sift/data/v1/data.proto b/protos/sift/data/v1/data.proto index b5cf3cfe3..bd1ee47e5 100644 --- a/protos/sift/data/v1/data.proto +++ b/protos/sift/data/v1/data.proto @@ -12,7 +12,6 @@ import "sift/common/type/v1/channel_bit_field_element.proto"; import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Data Service"} }; @@ -24,7 +23,7 @@ service DataService { rpc GetData(GetDataRequest) returns (GetDataResponse) { option (google.api.http) = { post: "/api/v1/data" - body: "*", + body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "GetData" diff --git a/protos/sift/data/v2/data.proto b/protos/sift/data/v2/data.proto index 639fb0dee..c2687310e 100644 --- a/protos/sift/data/v2/data.proto +++ b/protos/sift/data/v2/data.proto @@ -11,7 +11,7 @@ import "sift/calculated_channels/v1/calculated_channels.proto"; import "sift/common/type/v1/channel_bit_field_element.proto"; import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; - +import "sift/options/v1/safe_to_log.proto"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Data Service"} @@ -24,7 +24,7 @@ service DataService { rpc GetData(GetDataRequest) returns (GetDataResponse) { option (google.api.http) = { post: "/api/v2/data" - body: "*", + body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "GetData" @@ -35,6 +35,7 @@ service DataService { } message GetDataRequest { + option (sift.options.v1.safe_to_log) = true; repeated Query queries = 1; // Required. The starting timestamp of the data to retrieve. This is an inclusive bound. @@ -91,6 +92,13 @@ message CalculatedChannelQuery { optional string run_id = 3; // Optional. If unset, will default to EXPRESSION_MODE_CALCULATED_CHANNELS. optional sift.calculated_channels.v1.ExpressionMode mode = 4; + // Optional. If unset, will default to false. + // If true, then requests that return data across multiple runs will be + // combined into a single result. This will apply to queries without a run, + // or when the requested run is an ad hoc run. + // This is useful when you prefer to see all the data as a single time series, + // instead of separated results by run. + optional bool combine_run_data = 5; } message GetDataResponse { @@ -257,6 +265,9 @@ message Uint64Values { repeated Uint64Value values = 2 [(google.api.field_behavior) = REQUIRED]; } + + + message BytesValue { google.protobuf.Timestamp timestamp = 1 [(google.api.field_behavior) = REQUIRED]; bytes value = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/data_imports/v2/data_imports.proto b/protos/sift/data_imports/v2/data_imports.proto index 251866891..7a38e1d96 100644 --- a/protos/sift/data_imports/v2/data_imports.proto +++ b/protos/sift/data_imports/v2/data_imports.proto @@ -8,7 +8,6 @@ import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/channel_config.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Data import service"} }; @@ -186,6 +185,9 @@ message TDMSConfig { // The file size in bytes. // If the file has truncated chunks, this will be required to pass validation. optional uint64 file_size = 4; + + // The id of the run to add this data to. If set, `run_name` is ignored. + string run_id = 5; } message ParquetTimeColumn { diff --git a/protos/sift/dlq_errors/v2/dlq_errors.proto b/protos/sift/dlq_errors/v2/dlq_errors.proto index 32449e17e..f52b31bda 100644 --- a/protos/sift/dlq_errors/v2/dlq_errors.proto +++ b/protos/sift/dlq_errors/v2/dlq_errors.proto @@ -7,7 +7,6 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "DLQ Errors Service"} }; @@ -32,7 +31,6 @@ message ListDlqErrorsRequest { // A page token, received from a previous `ListDlqErrors` call. // Provide this to retrieve the subsequent page. - // // When paginating, all other parameters provided to `ListDlqErrors` must match // the call that provided the page token. string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; diff --git a/protos/sift/exports/v1/exports.proto b/protos/sift/exports/v1/exports.proto index b6e602729..0df02de49 100644 --- a/protos/sift/exports/v1/exports.proto +++ b/protos/sift/exports/v1/exports.proto @@ -8,7 +8,6 @@ import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/calculated_channels/v2/calculated_channels.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Exports service"} }; diff --git a/protos/sift/external_sync/v1/external_sync.proto b/protos/sift/external_sync/v1/external_sync.proto new file mode 100644 index 000000000..bd1d679b4 --- /dev/null +++ b/protos/sift/external_sync/v1/external_sync.proto @@ -0,0 +1,126 @@ +syntax = "proto3"; + +package sift.external_sync.v1; + +import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; +import "sift/common/type/v1/user.proto"; +import "sift/user_groups/v2/user_groups.proto"; + + +service ExternalSyncService { + rpc SyncOrganization(SyncOrganizationRequest) returns (SyncOrganizationResponse) { + option (google.api.http) = { + post: "/api/v1/external-sync" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "SyncOrganization" + description: "Synchronizes an organization's users and groups" + }; + } + + rpc GenerateToken(GenerateTokenRequest) returns (GenerateTokenResponse) { + option (google.api.http) = { + post: "/api/v1/external-sync:generate-token" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GenerateToken" + description: "Generates a token for synchronizing an organization's users and groups" + }; + } + + rpc GetExternalSync(GetExternalSyncRequest) returns (GetExternalSyncResponse) { + option (google.api.http) = {get: "/api/v1/external-sync"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetTokenDetails" + description: "Get details about the most recent token generated, does not include the token itself" + }; + } + + rpc ListExternalSyncTokens(ListExternalSyncTokensRequest) returns (ListExternalSyncTokensResponse) { + option (google.api.http) = {get: "/api/v1/external-sync:list-tokens"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListExternalSyncTokens" + description: "List all tokens created by org" + }; + } +} + +message ExternalSync { + string organization_id = 1 [(google.api.field_behavior) = OPTIONAL]; + optional google.protobuf.Timestamp most_recent_sync_date = 2 [(google.api.field_behavior) = OPTIONAL]; + optional string most_recent_sync_by_user_id = 3 [(google.api.field_behavior) = OPTIONAL]; + string scim_server_url = 4 [(google.api.field_behavior) = REQUIRED]; + optional google.protobuf.Timestamp token_created_date = 5 [(google.api.field_behavior) = OPTIONAL]; + uint32 token_lifetime_seconds = 6 [(google.api.field_behavior) = REQUIRED]; + optional string most_recent_token_by_user_id = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// The actual token value is not returned after it is first generated. +message ExternalSyncToken { + string token_id = 1 [(google.api.field_behavior) = REQUIRED]; + uint32 lifetime_seconds = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp created_date = 3 [(google.api.field_behavior) = REQUIRED]; + string created_by_user_id = 4 [(google.api.field_behavior) = REQUIRED]; +} + +message SyncOrganizationRequest {} + +message SyncOrganizationResponse { + ExternalSync external_sync = 1 [(google.api.field_behavior) = REQUIRED]; + uint32 existing_user_count = 2 [(google.api.field_behavior) = REQUIRED]; + repeated string added_to_organization_user_ids = 3 [(google.api.field_behavior) = REQUIRED]; + repeated sift.common.type.v1.User created_users = 4 [(google.api.field_behavior) = REQUIRED]; + repeated string deactivated_user_ids = 5 [(google.api.field_behavior) = REQUIRED]; + uint32 existing_group_count = 6 [(google.api.field_behavior) = REQUIRED]; + repeated sift.user_groups.v2.UserGroup created_user_groups = 7 [(google.api.field_behavior) = REQUIRED]; + repeated string deleted_user_group_names = 8 [(google.api.field_behavior) = REQUIRED]; +} + +message GenerateTokenRequest {} + +message GenerateTokenResponse { + ExternalSync external_sync = 1 [(google.api.field_behavior) = REQUIRED]; + string token = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message GetExternalSyncRequest {} + +message GetExternalSyncResponse { + bool success = 1 [(google.api.field_behavior) = REQUIRED]; + ExternalSync external_sync = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message ListExternalSyncTokensRequest { + // The maximum number of tokens to return. The service may return fewer than this value. + // If unspecified, at most 50 tokens will be returned. The maximum value is 1000; values above + // 1000 will be coerced to 1000. Optional. + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous `ListExternalSyncTokens` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListExternalSyncTokens` must match + // the call that provided the page token. Optional. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // There are currently no available fields. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available field to order_by is `created_date`. + // If left empty, items are ordered by `created_date` in descending order (newest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date asc". + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListExternalSyncTokensResponse { + repeated ExternalSyncToken external_sync_tokens = 1 [(google.api.field_behavior) = REQUIRED]; + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/protos/sift/ingest/v1/ingest.proto b/protos/sift/ingest/v1/ingest.proto index 470d82f24..85a90d7a3 100644 --- a/protos/sift/ingest/v1/ingest.proto +++ b/protos/sift/ingest/v1/ingest.proto @@ -6,7 +6,6 @@ import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; - service IngestService { rpc IngestWithConfigDataStream(stream IngestWithConfigDataStreamRequest) returns (IngestWithConfigDataStreamResponse); rpc IngestArbitraryProtobufDataStream(stream IngestArbitraryProtobufDataStreamRequest) returns (IngestArbitraryProtobufDataStreamResponse); @@ -28,6 +27,8 @@ message IngestWithConfigDataStreamRequest { string organization_id = 7; } + + message IngestWithConfigDataStreamResponse {} message IngestWithConfigDataChannelValue { diff --git a/protos/sift/ingestion_configs/v1/ingestion_configs.proto b/protos/sift/ingestion_configs/v1/ingestion_configs.proto index 77033b06b..0f61d46c4 100644 --- a/protos/sift/ingestion_configs/v1/ingestion_configs.proto +++ b/protos/sift/ingestion_configs/v1/ingestion_configs.proto @@ -9,7 +9,6 @@ import "sift/common/type/v1/channel_bit_field_element.proto"; import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Ingestion Config Service"} }; @@ -18,8 +17,8 @@ service IngestionConfigService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with [ingestion configs](/glossary#ingestion-config)." external_docs: { - url: "/ingestion/creating-amend-ingestion-config", - description: "Read more about what ingestion configs are."; + url: "/ingestion/creating-amend-ingestion-config" + description: "Read more about what ingestion configs are." } }; @@ -56,7 +55,7 @@ service IngestionConfigService { // Create ingestion config [flows](/glossary#flow). rpc CreateIngestionConfigFlows(CreateIngestionConfigFlowsRequest) returns (CreateIngestionConfigFlowsResponse) { option (google.api.http) = { - post: "/api/v1/ingestion-configs/{ingestion_config_id}/flows", + post: "/api/v1/ingestion-configs/{ingestion_config_id}/flows" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -105,7 +104,7 @@ message GetIngestionConfigResponse { IngestionConfig ingestion_config = 1 [(google.api.field_behavior) = REQUIRED]; } -// The request for a call to `IngestionConfigService_ListIngestionConfigs` to retrieve ingestion configs. +// The request for a call to `IngestionConfigService_CreateIngestionConfig` to create an ingestion configs. message CreateIngestionConfigRequest { string asset_name = 1 [(google.api.field_behavior) = REQUIRED]; repeated FlowConfig flows = 2; diff --git a/protos/sift/ingestion_configs/v2/ingestion_configs.proto b/protos/sift/ingestion_configs/v2/ingestion_configs.proto index b71299976..764ef3565 100644 --- a/protos/sift/ingestion_configs/v2/ingestion_configs.proto +++ b/protos/sift/ingestion_configs/v2/ingestion_configs.proto @@ -9,7 +9,6 @@ import "sift/common/type/v1/channel_bit_field_element.proto"; import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Ingestion Config Service"} }; @@ -18,8 +17,8 @@ service IngestionConfigService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with [ingestion configs](/glossary#ingestion-config)." external_docs: { - url: "/ingestion/creating-amend-ingestion-config", - description: "Read more about what ingestion configs are."; + url: "/ingestion/creating-amend-ingestion-config" + description: "Read more about what ingestion configs are." } }; @@ -59,7 +58,7 @@ service IngestionConfigService { // Create ingestion config [flows](/glossary#flow). rpc CreateIngestionConfigFlows(CreateIngestionConfigFlowsRequest) returns (CreateIngestionConfigFlowsResponse) { option (google.api.http) = { - post: "/api/v2/ingestion-configs/{ingestion_config_id}/flows", + post: "/api/v2/ingestion-configs/{ingestion_config_id}/flows" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -109,7 +108,7 @@ message GetIngestionConfigResponse { IngestionConfig ingestion_config = 1 [(google.api.field_behavior) = REQUIRED]; } -// The request for a call to `IngestionConfigService_ListIngestionConfigs` to retrieve ingestion configs. +// The request for a call to `IngestionConfigService_CreateIngestionConfig` to retrieve ingestion configs. message CreateIngestionConfigRequest { string asset_name = 1 [(google.api.field_behavior) = REQUIRED]; repeated FlowConfig flows = 2; diff --git a/protos/sift/jobs/v1/jobs.proto b/protos/sift/jobs/v1/jobs.proto index c367f91cf..032d1a4b9 100644 --- a/protos/sift/jobs/v1/jobs.proto +++ b/protos/sift/jobs/v1/jobs.proto @@ -6,7 +6,7 @@ import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - +import "sift/exports/v1/exports.proto"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Jobs service"} @@ -28,29 +28,60 @@ service JobService { rpc CancelJob(CancelJobRequest) returns (CancelJobResponse) { option (google.api.http) = {post: "/api/v1/jobs/{job_id}:cancel"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CancelJob", + summary: "CancelJob" description: "Requests cancellation of a job." }; } + + // Requests a retry of a job. + // Jobs that are finished, in progress or in the process of being cancelled are not affected. + rpc RetryJob(RetryJobRequest) returns (RetryJobResponse) { + option (google.api.http) = {post: "/api/v1/jobs/{job_id}:retry"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "RetryJob" + description: "Manually retries a job." + }; + } } message Job { string job_id = 1 [(google.api.field_behavior) = REQUIRED]; string organization_id = 2 [(google.api.field_behavior) = IMMUTABLE]; - string created_by_user_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - string modified_by_user_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - google.protobuf.Timestamp created_date = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - google.protobuf.Timestamp modified_date = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + string created_by_user_id = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string modified_by_user_id = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + google.protobuf.Timestamp created_date = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + google.protobuf.Timestamp modified_date = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; google.protobuf.Timestamp started_date = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; google.protobuf.Timestamp completed_date = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - JobType job_type = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - JobStatus job_status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + JobType job_type = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + JobStatus job_status = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + JobStatusDetails job_status_details = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + JobDetails job_details = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } enum JobType { JOB_TYPE_UNSPECIFIED = 0 [deprecated = true]; JOB_TYPE_RULE_EVALUATION = 1; JOB_TYPE_DATA_IMPORT = 2; + JOB_TYPE_DATA_EXPORT = 3; } enum JobStatus { @@ -63,6 +94,46 @@ enum JobStatus { JOB_STATUS_CANCEL_REQUESTED = 6; } +message JobStatusDetails { + oneof status { + RuleEvaluationStatusDetails rule_evaluation = 1; + DataImportStatusDetails data_import = 2; + DataExportStatusDetails data_export = 3; + } +} + +message RuleEvaluationStatusDetails {} + +message DataImportStatusDetails { + uint64 points_processed = 1 [(google.api.field_behavior) = REQUIRED]; + uint64 points_total = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message DataExportStatusDetails { + string error_message = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +message DataExportJobDetails { + sift.exports.v1.ExportDataRequest request = 1; + string storage_key = 2; +} + +message JobDetails { + oneof details { + RuleEvaluationJobDetails rule_evaluation = 1; + DataImportJobDetails data_import = 2; + DataExportJobDetails data_export = 3; + } +} + +message RuleEvaluationJobDetails { + string report_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message DataImportJobDetails { + string data_import_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + message ListJobsRequest { // The maximum number of jobs to return. The service may return fewer than this value. // If unspecified, at most 50 jobs will be returned. @@ -77,7 +148,7 @@ message ListJobsRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `job_id`, `created_by_user_id`, `modified_by_user_id`, `created_date`, `modified_date`, `started_date`, `completed_date` + // `job_id`, `created_by_user_id`, `modified_by_user_id`, `created_date`, `modified_date`, `started_date`, `completed_date`, and `job_status` // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -102,3 +173,11 @@ message CancelJobRequest { string job_id = 1 [(google.api.field_behavior) = REQUIRED]; } message CancelJobResponse {} + +message RetryJobRequest { + string job_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message RetryJobResponse { + Job job = 1; +} diff --git a/protos/sift/me/v2/me.proto b/protos/sift/me/v2/me.proto index cb5b22d5b..6f1681c7d 100644 --- a/protos/sift/me/v2/me.proto +++ b/protos/sift/me/v2/me.proto @@ -8,7 +8,6 @@ import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/organization.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Me Service"} }; diff --git a/protos/sift/metadata/v1/metadata.proto b/protos/sift/metadata/v1/metadata.proto index 26907c9e8..4d301ae0c 100644 --- a/protos/sift/metadata/v1/metadata.proto +++ b/protos/sift/metadata/v1/metadata.proto @@ -7,7 +7,6 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Metadata service"} }; @@ -20,7 +19,7 @@ service MetadataService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CreateMetadataKey", + summary: "CreateMetadataKey" description: "Create a metadata key." }; } @@ -54,7 +53,7 @@ service MetadataService { // Archive metadata keys. rpc ArchiveMetadataKeys(ArchiveMetadataKeysRequest) returns (ArchiveMetadataKeysResponse) { option (google.api.http) = { - post: "/api/v1/metadata-keys/archive", + post: "/api/v1/metadata-keys/archive" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -66,7 +65,7 @@ service MetadataService { // Archive metadata values. rpc ArchiveMetadataValues(ArchiveMetadataValuesRequest) returns (ArchiveMetadataValuesResponse) { option (google.api.http) = { - post: "/api/v1/metadata-values/archive", + post: "/api/v1/metadata-values/archive" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -78,7 +77,7 @@ service MetadataService { // Unarchive metadata keys. rpc UnarchiveMetadataKeys(UnarchiveMetadataKeysRequest) returns (UnarchiveMetadataKeysResponse) { option (google.api.http) = { - post: "/api/v1/metadata-keys/unarchive", + post: "/api/v1/metadata-keys/unarchive" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -90,7 +89,7 @@ service MetadataService { // Unarchive metadata values. rpc UnarchiveMetadataValues(UnarchiveMetadataValuesRequest) returns (UnarchiveMetadataValuesResponse) { option (google.api.http) = { - post: "/api/v1/metadata-values/unarchive", + post: "/api/v1/metadata-values/unarchive" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -102,7 +101,7 @@ service MetadataService { // Delete metadata keys. rpc DeleteMetadataKeys(DeleteMetadataKeysRequest) returns (DeleteMetadataKeysResponse) { option (google.api.http) = { - post: "/api/v1/metadata-keys/delete", + post: "/api/v1/metadata-keys/delete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -114,7 +113,7 @@ service MetadataService { // Delete metadata values. rpc DeleteMetadataValues(DeleteMetadataValuesRequest) returns (DeleteMetadataValuesResponse) { option (google.api.http) = { - post: "/api/v1/metadata-values/delete", + post: "/api/v1/metadata-values/delete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -148,6 +147,8 @@ message MetadataKey { string name = 1 [(google.api.field_behavior) = REQUIRED]; MetadataKeyType type = 2 [(google.api.field_behavior) = REQUIRED]; google.protobuf.Timestamp archived_date = 3 [(google.api.field_behavior) = OPTIONAL]; + // Whether the metadata key is archived. This is inferred from whether archived_date is set. + bool is_archived = 4 [(google.api.field_behavior) = OPTIONAL]; } message MetadataValue { @@ -158,6 +159,8 @@ message MetadataValue { bool boolean_value = 4; } google.protobuf.Timestamp archived_date = 5 [(google.api.field_behavior) = OPTIONAL]; + // Whether the metadata value is archived. This is inferred from whether archived_date is set. + bool is_archived = 6 [(google.api.field_behavior) = OPTIONAL]; } // The request of a call to `MetadataService_CreateMetadataKey` to create a metadata key. @@ -195,7 +198,7 @@ message ListMetadataKeysRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `name`. + // `name`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -228,7 +231,7 @@ message ListMetadataValuesRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are: - // `value_string`, `value_number`, and `value_boolean`. + // `value_string`, `value_number`, `value_boolean`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to this definition. Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; diff --git a/protos/sift/notifications/v1/notifications.proto b/protos/sift/notifications/v1/notifications.proto index 71984d991..5a9c17d18 100644 --- a/protos/sift/notifications/v1/notifications.proto +++ b/protos/sift/notifications/v1/notifications.proto @@ -8,7 +8,6 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Notification Service"} }; @@ -61,6 +60,7 @@ enum NotificationKind { NOTIFICATION_KIND_CONDITION_TRIGGERED = 4; NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED = 5; NOTIFICATION_KIND_REPORT_READY = 6; + NOTIFICATION_KIND_DATA_EXPORT_READY = 7; } // The request for a call to `NotificationService_ListNotifications` to retrieve notifications. diff --git a/protos/sift/options/v1/safe_to_log.proto b/protos/sift/options/v1/safe_to_log.proto new file mode 100644 index 000000000..30ff08da9 --- /dev/null +++ b/protos/sift/options/v1/safe_to_log.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package sift.options.v1; + +import "google/protobuf/descriptor.proto"; + + +// Indicates that the request message does not contain any sensitive information and +// is safe to log in access logs. Whitelist approach for safety. +extend google.protobuf.MessageOptions { + bool safe_to_log = 70000; +} diff --git a/protos/sift/ping/v1/ping.proto b/protos/sift/ping/v1/ping.proto index 5155a68e0..0b163d0a1 100644 --- a/protos/sift/ping/v1/ping.proto +++ b/protos/sift/ping/v1/ping.proto @@ -6,7 +6,6 @@ import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Ping Service"} }; diff --git a/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto b/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto index e2c494e1f..d24791d2e 100644 --- a/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto +++ b/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto @@ -9,7 +9,6 @@ package sift.protobuf_descriptors.v2; import "google/protobuf/descriptor.proto"; - // Enum for different types of tag sources enum TagSourceType { DESCENDANT_SOURCES = 0; // Tags can be sourced from descendant fields diff --git a/protos/sift/protobuf_descriptors/v2/protobuf_descriptors.proto b/protos/sift/protobuf_descriptors/v2/protobuf_descriptors.proto index ad57560e6..9b08759ca 100644 --- a/protos/sift/protobuf_descriptors/v2/protobuf_descriptors.proto +++ b/protos/sift/protobuf_descriptors/v2/protobuf_descriptors.proto @@ -7,7 +7,6 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Protobuf Descriptor Service"} }; @@ -16,14 +15,17 @@ service ProtobufDescriptorService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with protobuf descriptors used for protobuf ingestion." external_docs: { - url: "/ingestion/protobuf_ingestion"; - description: "Read more about what protobuf ingestion."; + url: "/ingestion/protobuf_ingestion" + description: "Read more about what protobuf ingestion." } }; // Used to register a protobuf message to be ingested. rpc AddProtobufDescriptor(AddProtobufDescriptorRequest) returns (AddProtobufDescriptorResponse) { - option (google.api.http) = {post: "/api/v2/protobuf-descriptors:add"}; + option (google.api.http) = { + post: "/api/v2/protobuf-descriptors:add", + body: "*" + }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "AddProtobufDescriptor" description: "Used to register a protobuf message to be ingested." @@ -33,7 +35,10 @@ service ProtobufDescriptorService { // Used to check if a protobuf descriptor is compatible with the existing descriptors. rpc CheckProtobufDescriptorCompatibility(CheckProtobufDescriptorCompatibilityRequest) returns (CheckProtobufDescriptorCompatibilityResponse) { - option (google.api.http) = {post: "/api/v2/protobuf-descriptors:check-compatibility"}; + option (google.api.http) = { + post: "/api/v2/protobuf-descriptors:check-compatibility", + body: "*" + }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "CheckProtobufDescriptorCompatibility" description: "Used to check if a protobuf descriptor is compatible with the existing descriptors." @@ -96,7 +101,7 @@ message IncompatibleProtobufField { string reason = 6; string details = 7; string field_kind = 8; -} +} message CheckProtobufDescriptorCompatibilityResponse { bool is_valid = 1; diff --git a/protos/sift/remote_files/v1/remote_files.proto b/protos/sift/remote_files/v1/remote_files.proto index 978f7305a..c2f0225bd 100644 --- a/protos/sift/remote_files/v1/remote_files.proto +++ b/protos/sift/remote_files/v1/remote_files.proto @@ -8,7 +8,6 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "RemoteFile service"} }; @@ -18,12 +17,12 @@ service RemoteFileService { rpc GetRemoteFile(GetRemoteFileRequest) returns (GetRemoteFileResponse) { option (google.api.http) = {get: "/api/v1/remote-files/{remote_file_id}"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetRemoteFile", + summary: "GetRemoteFile" description: "Retrieve a remote file." }; } - // Create a remote file. + // Create a remote file. Note that this does not perform the actual file upload. rpc CreateRemoteFile(CreateRemoteFileRequest) returns (CreateRemoteFileResponse) { option (google.api.http) = { post: "/api/v1/remote-files" @@ -68,7 +67,7 @@ service RemoteFileService { // Batch deletes remote files. Each batch is limited to 1000 records. rpc BatchDeleteRemoteFiles(BatchDeleteRemoteFilesRequest) returns (BatchDeleteRemoteFilesResponse) { option (google.api.http) = { - post: "/api/v1/remote-files:batchDelete", + post: "/api/v1/remote-files:batchDelete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -81,7 +80,7 @@ service RemoteFileService { rpc GetRemoteFileDownloadUrl(GetRemoteFileDownloadUrlRequest) returns (GetRemoteFileDownloadUrlResponse) { option (google.api.http) = {get: "/api/v1/remote-files/{remote_file_id}/download-url"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetRemoteFileUrl", + summary: "GetRemoteFileUrl" description: "Gets a download URL for the remote file." }; } @@ -132,6 +131,7 @@ enum EntityType { ENTITY_TYPE_ANNOTATION = 2; ENTITY_TYPE_ASSET = 3; ENTITY_TYPE_ANNOTATION_LOG = 4; + ENTITY_TYPE_TEST_REPORT = 5; } // The request for a call to `RemoteFileService_GetRemoteFile` to retrieve a remote file; diff --git a/protos/sift/report_templates/v1/report_templates.proto b/protos/sift/report_templates/v1/report_templates.proto index ec0c64871..01f1fd51d 100644 --- a/protos/sift/report_templates/v1/report_templates.proto +++ b/protos/sift/report_templates/v1/report_templates.proto @@ -9,7 +9,6 @@ import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/metadata/v1/metadata.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "ReportTemplate service"} }; @@ -19,10 +18,10 @@ service ReportTemplateService { rpc GetReportTemplate(GetReportTemplateRequest) returns (GetReportTemplateResponse) { option (google.api.http) = { get: "/api/v1/report-templates/{report_template_id}" - additional_bindings {get: "/v1/organizations/{organization_id}/report_templates/{client_key}"} + additional_bindings: {get: "/v1/organizations/{organization_id}/report_templates/{client_key}"} }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetReportTemplate", + summary: "GetReportTemplate" description: "Retrieve a report template." }; } @@ -34,7 +33,7 @@ service ReportTemplateService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CreateReportTemplate", + summary: "CreateReportTemplate" description: "Create a report template." }; } @@ -75,6 +74,8 @@ message ReportTemplate { repeated ReportTemplateRule rules = 11 [(google.api.field_behavior) = REQUIRED]; repeated ReportTemplateTag tags = 12 [(google.api.field_behavior) = REQUIRED]; repeated sift.metadata.v1.MetadataValue metadata = 13 [(google.api.field_behavior) = REQUIRED]; + // Whether the report template is archived. This is inferred from whether archived_date is set. + bool is_archived = 14 [(google.api.field_behavior) = REQUIRED]; } message ReportTemplateRule { @@ -145,7 +146,7 @@ message ListReportTemplatesRequest { string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `report_template_id`, `tag_id`, `tag_name`, `client_key`, `metadata`, and `name`. + // Available fields to filter by are `report_template_id`, `tag_id`, `tag_name`, `client_key`, `metadata`, `name` and 'is_archived'. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/report_templates#report_template). Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -177,7 +178,7 @@ message UpdateReportTemplateRequest { // The report template to update. ReportTemplate report_template = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `tags`, `rules`, and `metadata`. + // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `rules`, and `metadata`. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } diff --git a/protos/sift/reports/v1/reports.proto b/protos/sift/reports/v1/reports.proto index 41ac8037b..aceb6e584 100644 --- a/protos/sift/reports/v1/reports.proto +++ b/protos/sift/reports/v1/reports.proto @@ -9,7 +9,6 @@ import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/metadata/v1/metadata.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Report service"} }; @@ -19,7 +18,7 @@ service ReportService { rpc GetReport(GetReportRequest) returns (GetReportResponse) { option (google.api.http) = {get: "/api/v1/reports/{report_id}"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetReport", + summary: "GetReport" description: "Retrieve a report." }; } @@ -31,7 +30,7 @@ service ReportService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CreateReport", + summary: "CreateReport" description: "Create a report." }; } @@ -43,7 +42,7 @@ service ReportService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "UpdateReport", + summary: "UpdateReport" description: "Update a report." }; } @@ -52,7 +51,7 @@ service ReportService { rpc ListReports(ListReportsRequest) returns (ListReportsResponse) { option (google.api.http) = {get: "/api/v1/reports"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ListReports", + summary: "ListReports" description: "List reports." }; } @@ -62,7 +61,7 @@ service ReportService { rpc RerunReport(RerunReportRequest) returns (RerunReportResponse) { option (google.api.http) = {post: "/api/v1/reports/{report_id}:rerun"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "RerunReport", + summary: "RerunReport" description: "Rerunning a report will create a new report with the same rule versions and run as the original report and run the evaluation again using the most up-to-date set of data." }; } @@ -72,7 +71,7 @@ service ReportService { rpc CancelReport(CancelReportRequest) returns (CancelReportResponse) { option (google.api.http) = {post: "/api/v1/reports/{report_id}:cancel"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CancelReport", + summary: "CancelReport" description: "Canceling a report will stop the evaluation of the report and mark it as canceled. Any results that have been calculated up to the point of cancellation will be saved." }; } @@ -95,6 +94,7 @@ message Report { optional string job_id = 14 [(google.api.field_behavior) = OPTIONAL]; optional google.protobuf.Timestamp archived_date = 15 [(google.api.field_behavior) = OPTIONAL]; repeated sift.metadata.v1.MetadataValue metadata = 16 [(google.api.field_behavior) = REQUIRED]; + bool is_archived = 17 [(google.api.field_behavior) = OPTIONAL]; } message ReportRuleSummary { @@ -228,7 +228,7 @@ message ListReportsRequest { string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, and `archived_date`. + // Available fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/reports#report). Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -271,7 +271,7 @@ message UpdateReportRequest { // The report to update. Report report = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of fields to be updated. The fields available to be updated are `archived_date` and `metadata`. + // The list of fields to be updated. The fields available to be updated are `archived_date`, `is_archived`, and `metadata`. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } diff --git a/protos/sift/roles/v2/roles.proto b/protos/sift/roles/v2/roles.proto index ad56b5ae7..0909500d3 100644 --- a/protos/sift/roles/v2/roles.proto +++ b/protos/sift/roles/v2/roles.proto @@ -6,7 +6,6 @@ import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Role Service"} }; @@ -26,6 +25,7 @@ message Role { string role_id = 1; string name = 2; string description = 3; + int32 role_order = 4; } message ListRolesRequest { @@ -37,7 +37,6 @@ message ListRolesRequest { // A page token, received from a previous `ListRoles` call. // Provide this to retrieve the subsequent page. - // // When paginating, all other parameters provided to `ListRoles` must match // the call that provided the page token. string page_token = 2; diff --git a/protos/sift/rule_evaluation/v1/rule_evaluation.proto b/protos/sift/rule_evaluation/v1/rule_evaluation.proto index 413f67121..13cabb109 100644 --- a/protos/sift/rule_evaluation/v1/rule_evaluation.proto +++ b/protos/sift/rule_evaluation/v1/rule_evaluation.proto @@ -9,7 +9,6 @@ import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/resource_identifier.proto"; import "sift/rules/v1/rules.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Rule Evaluation Service"} }; @@ -130,18 +129,8 @@ message EvaluateRulesFromRuleConfigs { repeated sift.rules.v1.UpdateRuleRequest configs = 1 [(google.api.field_behavior) = REQUIRED]; } -message RulePreviewOutput { - string rule_name = 1 [(google.api.field_behavior) = REQUIRED]; - string rule_id = 2; - string rule_version_id = 3; - string asset_id = 4 [(google.api.field_behavior) = REQUIRED]; - int32 exit_code = 5 [(google.api.field_behavior) = REQUIRED]; - string stdout = 6; - string stderr = 7; -} message EvaluateRulesPreviewResponse { int32 created_annotation_count = 1 [(google.api.field_behavior) = REQUIRED]; repeated sift.rules.v1.DryRunAnnotation dry_run_annotations = 2; - repeated RulePreviewOutput rule_outputs = 3; } diff --git a/protos/sift/rules/v1/rules.proto b/protos/sift/rules/v1/rules.proto index 6a97ec44f..65ededf28 100644 --- a/protos/sift/rules/v1/rules.proto +++ b/protos/sift/rules/v1/rules.proto @@ -18,7 +18,6 @@ import "sift/common/type/v1/resource_identifier.proto"; import "sift/common/type/v1/user_defined_functions.proto"; import "sift/metadata/v1/metadata.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Rule Service"} }; @@ -101,51 +100,107 @@ service RuleService { }; } - // Deletes a rule + // Deprecated - use ArchiveRule instead. + // Archives a rule. rpc DeleteRule(DeleteRuleRequest) returns (DeleteRuleResponse) { + option deprecated = true; option (google.api.http) = { post: "/api/v1/rules/delete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "DeleteRule" - description: "Deletes a rule." + description: "Archives a rule. Deprecated: Use ArchiveRule instead." }; } - // Deletes multiple rules + // Archives a rule. + rpc ArchiveRule(ArchiveRuleRequest) returns (ArchiveRuleResponse) { + option (google.api.http) = { + post: "/api/v1/rules/archive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ArchiveRule" + description: "Archives a rule." + }; + } + + // Deprecated - use BatchArchiveRules instead. + // Archives multiple rules. rpc BatchDeleteRules(BatchDeleteRulesRequest) returns (BatchDeleteRulesResponse) { + option deprecated = true; option (google.api.http) = { post: "/api/v1/rules/batchDelete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "BatchDeleteRules" - description: "Deletes multiple rules." + description: "Archives multiple rules. Deprecated: Use BatchArchiveRules instead." + }; + } + + // Batch archives rules. + rpc BatchArchiveRules(BatchArchiveRulesRequest) returns (BatchArchiveRulesResponse) { + option (google.api.http) = { + post: "/api/v1/rules/batchArchive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "BatchArchiveRules" + description: "Batch archives rules." + }; + } + + // Unarchives a rule. + rpc UnarchiveRule(UnarchiveRuleRequest) returns (UnarchiveRuleResponse) { + option (google.api.http) = { + post: "/api/v1/rules/unarchive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "UnarchiveRule" + description: "Unarchives a rule." + }; + } + + // Batch unarchives rules. + rpc BatchUnarchiveRules(BatchUnarchiveRulesRequest) returns (BatchUnarchiveRulesResponse) { + option (google.api.http) = { + post: "/api/v1/rules/batchUnarchive" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "BatchUnarchiveRules" + description: "Batch unarchives rules." }; } - // Undeletes a rule + // Deprecated - use UnarchiveRule instead. + // Unarchives a rule rpc UndeleteRule(UndeleteRuleRequest) returns (UndeleteRuleResponse) { + option deprecated = true; option (google.api.http) = { post: "/api/v1/rules/undelete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "UndeleteRule" - description: "Undeletes a rule." + description: "Deprecated: Use UnarchiveRule instead." }; } - // Undeletes multiple rules + // Deprecated - use BatchUnarchiveRules instead. + // Unarchives multiple rules rpc BatchUndeleteRules(BatchUndeleteRulesRequest) returns (BatchUndeleteRulesResponse) { + option deprecated = true; option (google.api.http) = { post: "/api/v1/rules/batchUndelete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "BatchUndeleteRules" - description: "Undeletes multiple rules." + description: "Deprecated: Use BatchUnarchiveRules instead." }; } @@ -284,9 +339,18 @@ message Rule { RuleAssetConfiguration asset_configuration = 15 [(google.api.field_behavior) = REQUIRED]; ContextualChannels contextual_channels = 16 [(google.api.field_behavior) = REQUIRED]; - google.protobuf.Timestamp deleted_date = 17 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp deleted_date = 17 [ + (google.api.field_behavior) = OPTIONAL, + deprecated = true + ]; bool is_external = 18 [(google.api.field_behavior) = REQUIRED]; repeated sift.metadata.v1.MetadataValue metadata = 19 [(google.api.field_behavior) = REQUIRED]; + + // archived_date indicates when the rule was archived + google.protobuf.Timestamp archived_date = 20 [(google.api.field_behavior) = OPTIONAL]; + + // is_archived is inferred from when archived_date is not null + bool is_archived = 21 [(google.api.field_behavior) = REQUIRED]; } message RuleCondition { // 4 is reserved from old "status" column that lived directly on rule condition @@ -410,6 +474,7 @@ message UpdateRuleRequest { ContextualChannels contextual_channels = 11; bool is_external = 12; repeated sift.metadata.v1.MetadataValue metadata = 13 [(google.api.field_behavior) = REQUIRED]; + bool is_archived = 14 [(google.api.field_behavior) = OPTIONAL]; } message UpdateConditionRequest { // 2 is reserved from old status update support on rule condition directly @@ -496,6 +561,20 @@ message BatchDeleteRulesRequest { } message BatchDeleteRulesResponse {} +// ArchiveRuleRequest is used to archive a rule by rule_id or client_key. If both are provided, only rule_id will be used. +message ArchiveRuleRequest { + string rule_id = 1 [(google.api.field_behavior) = OPTIONAL]; + string client_key = 2 [(google.api.field_behavior) = OPTIONAL]; +} +message ArchiveRuleResponse {} + +// BatchArchiveRulesRequest is used to archive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used. +message BatchArchiveRulesRequest { + repeated string rule_ids = 1 [(google.api.field_behavior) = OPTIONAL]; + repeated string client_keys = 2 [(google.api.field_behavior) = OPTIONAL]; +} +message BatchArchiveRulesResponse {} + // UndeleteRuleRequest is used to undelete a rule by rule_id or client_key. If both are provided, only rule_id will be used. message UndeleteRuleRequest { string rule_id = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -510,6 +589,20 @@ message BatchUndeleteRulesRequest { } message BatchUndeleteRulesResponse {} +// UnarchiveRuleRequest is used to unarchive a rule by rule_id or client_key. If both are provided, only rule_id will be used. +message UnarchiveRuleRequest { + string rule_id = 1 [(google.api.field_behavior) = OPTIONAL]; + string client_key = 2 [(google.api.field_behavior) = OPTIONAL]; +} +message UnarchiveRuleResponse {} + +// BatchUnarchiveRulesRequest is used to unarchive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used. +message BatchUnarchiveRulesRequest { + repeated string rule_ids = 1 [(google.api.field_behavior) = OPTIONAL]; + repeated string client_keys = 2 [(google.api.field_behavior) = OPTIONAL]; +} +message BatchUnarchiveRulesResponse {} + // Deprecated - use ViewJsonRulesRequest. message ViewHumanFriendlyRulesRequest { option deprecated = true; @@ -591,7 +684,8 @@ message ListRulesRequest { string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `rule_id`, `client_key`, `name`, `description`, `asset_id`, `tag_id`, and `deleted_date`. + // Available fields to filter by are `rule_id`, `client_key`, `name`, `description`, `is_external`, `asset_id`, `tag_id`, + // `created_date`, `created_by_user_id`, `modified_date`, `modified_by_user_id`, `deleted_date`, `is_archived`, and `archived_date`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -636,7 +730,15 @@ message RuleVersion { string created_by_user_id = 5 [(google.api.field_behavior) = REQUIRED]; string version_notes = 6 [(google.api.field_behavior) = REQUIRED]; string generated_change_message = 7 [(google.api.field_behavior) = REQUIRED]; - google.protobuf.Timestamp deleted_date = 8 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp deleted_date = 8 [ + (google.api.field_behavior) = OPTIONAL, + deprecated = true + ]; + // archived_date indicates when the rule version was archived + google.protobuf.Timestamp archived_date = 9 [(google.api.field_behavior) = OPTIONAL]; + + // is_archived is inferred from when archived_date is not null + bool is_archived = 10 [(google.api.field_behavior) = REQUIRED]; } message ListRuleVersionsResponse { diff --git a/protos/sift/runs/v2/runs.proto b/protos/sift/runs/v2/runs.proto index e64ca1c92..bcdebb6c8 100644 --- a/protos/sift/runs/v2/runs.proto +++ b/protos/sift/runs/v2/runs.proto @@ -2,14 +2,15 @@ syntax = "proto3"; package sift.runs.v2; +import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/metadata/v1/metadata.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Run service"} }; @@ -18,8 +19,8 @@ service RunService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with [runs](/glossary#run)." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053"; - description: "Read more about what runs are."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053" + description: "Read more about what runs are." } }; @@ -78,11 +79,13 @@ service RunService { } // Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`. + // Deprecated: Use update with is_archived. rpc DeleteRun(DeleteRunRequest) returns (DeleteRunResponse) { + option deprecated = true; option (google.api.http) = {delete: "/api/v2/runs/{run_id}"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "DeleteRun" - description: "Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`." + description: "Permanently delete a given run. Deprecated: Use update with is_archived." }; } @@ -131,13 +134,19 @@ message Run { repeated string asset_ids = 16 [(google.api.field_behavior) = REQUIRED]; optional google.protobuf.Timestamp archived_date = 17 [(google.api.field_behavior) = OPTIONAL]; bool is_adhoc = 18 [(google.api.field_behavior) = REQUIRED]; + // Whether the Run is archived. This is inferred from whether archived_date is set. + bool is_archived = 19 [(google.api.field_behavior) = REQUIRED]; + // The duration of the run. Calculated as the difference between stop_time and start_time. + // If the run is ongoing (no stop_time), this represents the duration from start_time to current time. + optional google.protobuf.Duration duration = 20 [(google.api.field_behavior) = OPTIONAL]; } // The request for a call to `RunService_GetRun` to retrieve run. message GetRunRequest { // The ID of the run to retrieve. string run_id = 1 [ - (google.api.field_behavior) = REQUIRED + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true ]; } @@ -162,8 +171,9 @@ message ListRunsRequest { // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. // Available fields to filter by are `run_id` `organization_id`, `asset_id`, `asset_name`, `client_key`, `name`, `description`, `created_by_user_id`, `modified_by_user_id`, - // `created_date`, `modified_date`, `start_time`, `stop_time`, `tag_id`, `asset_tag_id`, `duration`, `annotation_comments_count`, `annotation_state`, `archived_date`, + // `created_date`, `modified_date`, `start_time`, `stop_time`, `tag_id`, `asset_tag_id`, `duration`, 'duration_string', `annotation_comments_count`, `annotation_state`, `archived_date`, `is_archived`, // and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. + // `duration` is in the format of elapsed seconds and `duration_string` allows for `h`, `m`, `s`, `ms` suffixes (example: `duration_string > duration('10h')) // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/runs#run). Optional. string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -209,7 +219,12 @@ message CreateRunRequest { // An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide. optional string client_key = 8 [ - (google.api.field_behavior) = OPTIONAL + (google.api.field_behavior) = OPTIONAL, + (buf.validate.field).cel = { + id: "invalid_client_key" + message: "client key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-]." + expression: "this.matches('^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$')" + } ]; // The metadata values associated with this run. @@ -223,7 +238,10 @@ message CreateRunResponse { // The request for a call to `RunService_CreateAdhocRun` to create an adhoc run. message CreateAdhocRunRequest { // The name that will be assigned to the new run. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.min_len = 1 + ]; // A description about the new run. string description = 2 [(google.api.field_behavior) = REQUIRED]; // The time at which data ingestion began for this new run. It must be before the `stop_time` @@ -231,24 +249,30 @@ message CreateAdhocRunRequest { // The time at which data ingestion concluded for this new run. google.protobuf.Timestamp stop_time = 4 [(google.api.field_behavior) = REQUIRED]; // A list of asset IDs to associate with the new run. - repeated string asset_ids = 5 [(google.api.field_behavior) = REQUIRED]; + repeated string asset_ids = 5 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).repeated.min_items = 1 + ]; // Tags to associate with the new run. repeated string tags = 6 [(google.api.field_behavior) = OPTIONAL]; // The metadata values associated with this run. repeated sift.metadata.v1.MetadataValue metadata = 7 [(google.api.field_behavior) = OPTIONAL]; // An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide. optional string client_key = 8 [ - (google.api.field_behavior) = OPTIONAL + (google.api.field_behavior) = OPTIONAL, + (buf.validate.field).cel = { + id: "invalid_client_key" + message: "client key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-]." + expression: "this.matches('^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$')" + } ]; } - // The response of a call to `RunService_CreateAdhocRun` containing the newly created adhoc run. message CreateAdhocRunResponse { Run run = 1 [(google.api.field_behavior) = REQUIRED]; } - // The request for a call to `RunService_UpdateRun` to update an existing run. message UpdateRunRequest { // The run to update. The run's `run_id` field is used to identify the run to update @@ -256,13 +280,18 @@ message UpdateRunRequest { Run run = 1 [(google.api.field_behavior) = REQUIRED]; // The list of fields to be updated. The fields available to be updated are `name`, `description`, - // `start_time`, `stop_time`, `is_pinned`, `client_key`, `tags`, and `metadata`. + // `start_time`, `stop_time`, `is_pinned`, `client_key`, `tags`,`is_archived`, and `metadata`. // Important Note: When updating the `start_time`, please be aware that if a subsequent data ingestion // commences for this run, the `start_time` will be automatically overwritten and set to the timestamp // corresponding to the beginning of the latest run. Additionally, `client_key` can only be set once either in run creation or in update. // Any subsequent attempt to update `client_key` will result in an error. google.protobuf.FieldMask update_mask = 2 [ - (google.api.field_behavior) = REQUIRED + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).cel = { + id: "invalid_field_mask_path" + message: "field mask path must be in ['name', 'description', 'start_time', 'startTime', 'stop_time', 'stopTime', 'is_pinned', 'isPinned', 'client_key', 'clientKey', 'tags', 'metadata', 'archived_date', 'is_archived', 'isArchived']" + expression: "this.paths.all(path, path in ['name', 'description', 'start_time', 'startTime', 'stop_time', 'stopTime', 'is_pinned', 'isPinned', 'client_key', 'clientKey', 'tags', 'metadata', 'archived_date', 'is_archived', 'isArchived'])" + } ]; } @@ -274,7 +303,8 @@ message UpdateRunResponse { message CreateAutomaticRunAssociationForAssetsRequest { // The ID of the run to associate the asset with. string run_id = 1 [ - (google.api.field_behavior) = REQUIRED + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true ]; // A list of asset names to automatically associate with the run. @@ -292,7 +322,8 @@ message CreateAutomaticRunAssociationForAssetsResponse {} // The request for a call to `RunService_DeleteRun`. message DeleteRunRequest { string run_id = 1 [ - (google.api.field_behavior) = REQUIRED + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true ]; } @@ -302,7 +333,8 @@ message DeleteRunResponse {} // The request for a call to `RunService_StopRun` to stop a run. message StopRunRequest { string run_id = 1 [ - (google.api.field_behavior) = REQUIRED + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true ]; } diff --git a/protos/sift/saved_searches/v1/saved_searches.proto b/protos/sift/saved_searches/v1/saved_searches.proto index b931a9141..fa437e8ed 100644 --- a/protos/sift/saved_searches/v1/saved_searches.proto +++ b/protos/sift/saved_searches/v1/saved_searches.proto @@ -8,7 +8,6 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "SavedSearch service"} }; @@ -18,7 +17,7 @@ service SavedSearchService { rpc GetSavedSearch(GetSavedSearchRequest) returns (GetSavedSearchResponse) { option (google.api.http) = {get: "/api/v1/saved_searches/{saved_search_id}"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetSavedSearch", + summary: "GetSavedSearch" description: "Retrieve a saved search." }; } @@ -68,7 +67,7 @@ service SavedSearchService { // Batch deletes saved searches. rpc BatchDeleteSavedSearches(BatchDeleteSavedSearchesRequest) returns (BatchDeleteSavedSearchesResponse) { option (google.api.http) = { - post: "/api/v1/saved_searches:batchDelete", + post: "/api/v1/saved_searches:batchDelete" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -101,6 +100,9 @@ message SavedSearchProperties { repeated SavedSearchFilterItem run_items = 9 [(google.api.field_behavior) = OPTIONAL]; repeated SavedSearchFilterItem report_template_items = 10 [(google.api.field_behavior) = OPTIONAL]; optional bool show_advanced_filters = 11 [(google.api.field_behavior) = OPTIONAL]; + optional bool include_archived = 12 [(google.api.field_behavior) = OPTIONAL]; + optional string order_by = 13 [(google.api.field_behavior) = OPTIONAL]; + repeated SavedSearchMetadataItem metadata_items = 14 [(google.api.field_behavior) = OPTIONAL]; } message SavedSearchFilterItem { @@ -108,6 +110,15 @@ message SavedSearchFilterItem { string name = 2 [(google.api.field_behavior) = REQUIRED]; } +message SavedSearchMetadataItem { + string key = 1 [(google.api.field_behavior) = REQUIRED]; + oneof value { + string string_value = 2; + double number_value = 3; + bool boolean_value = 4; + } +} + // The request for a call to `SavedSearchService_GetSavedSearch` to retrieve a saved search; message GetSavedSearchRequest { string saved_search_id = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/tags/v1/tags.proto b/protos/sift/tags/v1/tags.proto index 856e1ac6c..7745558f5 100644 --- a/protos/sift/tags/v1/tags.proto +++ b/protos/sift/tags/v1/tags.proto @@ -6,7 +6,6 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; - message Tag { string tag_id = 1 [(google.api.field_behavior) = REQUIRED]; string name = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/tags/v2/tags.proto b/protos/sift/tags/v2/tags.proto index 022fbaedd..ae07f459d 100644 --- a/protos/sift/tags/v2/tags.proto +++ b/protos/sift/tags/v2/tags.proto @@ -7,7 +7,6 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Tag Service"} }; @@ -46,6 +45,16 @@ message Tag { google.protobuf.Timestamp created_date = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } +enum TagType { + TAG_TYPE_UNSPECIFIED = 0; + TAG_TYPE_ANNOTATION = 1; + TAG_TYPE_ASSET = 2; + TAG_TYPE_CAMPAIGN = 3; + TAG_TYPE_REPORT = 4; + TAG_TYPE_REPORT_TEMPLATE = 5; + TAG_TYPE_RUN = 6; +} + // The request for a call to TagService.CreateTag. message CreateTagRequest { // The name for the new tag. @@ -83,6 +92,9 @@ message ListTagsRequest { // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) // Example: "created_date desc,name" string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Narrows the tags selected to a specific type. + TagType tag_type = 5 [(google.api.field_behavior) = OPTIONAL]; } message ListTagsResponse { diff --git a/protos/sift/unit/v2/unit.proto b/protos/sift/unit/v2/unit.proto index b695d4579..68d69e658 100644 --- a/protos/sift/unit/v2/unit.proto +++ b/protos/sift/unit/v2/unit.proto @@ -8,12 +8,19 @@ import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "Unit service"} }; service UnitService { + rpc CreateUnit(CreateUnitRequest) returns (CreateUnitResponse) { + option (google.api.http) = {post: "/api/v2/units"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "CreateUnit" + description: "Used to create a unit." + operation_id: "UnitService_CreateUnitV2" + }; + } rpc ListUnits(ListUnitsRequest) returns (ListUnitsResponse) { option (google.api.http) = {get: "/api/v2/units"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -38,7 +45,6 @@ message ListUnitsRequest { // A page token, received from a previous `ListUnits` call. // Provide this to retrieve the subsequent page. - // // When paginating, all other parameters provided to `ListUnits` must match // the call that provided the page token. string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -66,3 +72,11 @@ message ListUnitsResponse { // If this field is empty, there are no subsequent pages. string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; } + +message CreateUnitRequest { + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message CreateUnitResponse { + Unit unit = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/protos/sift/user_defined_functions/v1/user_defined_functions.proto b/protos/sift/user_defined_functions/v1/user_defined_functions.proto index 24c0b1214..932084329 100644 --- a/protos/sift/user_defined_functions/v1/user_defined_functions.proto +++ b/protos/sift/user_defined_functions/v1/user_defined_functions.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package sift.user_defined_functions.v1; +import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; @@ -12,13 +13,12 @@ import "sift/metadata/v1/metadata.proto"; import "sift/rules/v1/rules.proto"; - service UserDefinedFunctionService { // Retrieve the latest version of a user defined function rpc GetUserDefinedFunction(GetUserDefinedFunctionRequest) returns (GetUserDefinedFunctionResponse) { option (google.api.http) = {get: "/api/v1/user-defined-functions/{user_defined_function_id}"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetUserDefinedFunction", + summary: "GetUserDefinedFunction" description: "Retrieve the latest version of a user defined function." }; } @@ -27,7 +27,7 @@ service UserDefinedFunctionService { rpc GetUserDefinedFunctionVersion(GetUserDefinedFunctionVersionRequest) returns (GetUserDefinedFunctionVersionResponse) { option (google.api.http) = {get: "/api/v1/user-defined-functions/versions/{user_defined_function_version_id}"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetUserDefinedFunctionVersion", + summary: "GetUserDefinedFunctionVersion" description: "Retrieve a specific version of a user defined function." }; } @@ -36,7 +36,7 @@ service UserDefinedFunctionService { rpc GetUserDefinedFunctionVersions(GetUserDefinedFunctionVersionsRequest) returns (GetUserDefinedFunctionVersionsResponse) { option (google.api.http) = {get: "/api/v1/user-defined-functions/versions"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetUserDefinedFunctionVersions", + summary: "GetUserDefinedFunctionVersions" description: "Retrieve versions of user defined functions." }; } @@ -45,7 +45,7 @@ service UserDefinedFunctionService { rpc GetUserDefinedFunctionDependents(GetUserDefinedFunctionDependentsRequest) returns (GetUserDefinedFunctionDependentsResponse) { option (google.api.http) = {get: "/api/v1/user-defined-functions/dependents"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "GetUserDefinedFunctionDependents", + summary: "GetUserDefinedFunctionDependents" description: "Retrieve dependents of a user defined function." }; } @@ -57,7 +57,7 @@ service UserDefinedFunctionService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CreateUserDefinedFunction", + summary: "CreateUserDefinedFunction" description: "Create a user defined function." }; } @@ -69,7 +69,7 @@ service UserDefinedFunctionService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ValidateUserDefinedFunction", + summary: "ValidateUserDefinedFunction" description: "Validates a potential user defined function." }; } @@ -81,7 +81,7 @@ service UserDefinedFunctionService { body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "UpdateUserDefinedFunction", + summary: "UpdateUserDefinedFunction" description: "Update and create a new version of a user defined function." }; } @@ -90,7 +90,7 @@ service UserDefinedFunctionService { rpc CheckUpdatableFields(CheckUpdatableFieldsRequest) returns (CheckUpdatableFieldsResponse) { option (google.api.http) = {post: "/api/v1/user-defined-functions/updatable-fields"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "CheckUpdatableFields", + summary: "CheckUpdatableFields" description: "Check if given update paths are allowed to update for the user defined function" }; } @@ -99,7 +99,7 @@ service UserDefinedFunctionService { rpc ListUserDefinedFunctions(ListUserDefinedFunctionsRequest) returns (ListUserDefinedFunctionsResponse) { option (google.api.http) = {get: "/api/v1/user-defined-functions"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ListUserDefinedFunctions", + summary: "ListUserDefinedFunctions" description: "Retrieve the latest versions of user defined functions based on an optional filter." }; } @@ -108,7 +108,7 @@ service UserDefinedFunctionService { rpc ListUserDefinedFunctionVersions(ListUserDefinedFunctionVersionsRequest) returns (ListUserDefinedFunctionVersionsResponse) { option (google.api.http) = {get: "/api/v1/user-defined-functions/{user_defined_function_id}/versions"}; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "ListUserDefinedFunctionVersions", + summary: "ListUserDefinedFunctionVersions" description: "List versions of a particular user defined function with an optional filter." }; } @@ -118,7 +118,10 @@ service UserDefinedFunctionService { // If `user_defined_function_id` is provided then all other arguments will be ignored. The argument `user_defined_function_id` // should not be used together with `name`. message GetUserDefinedFunctionRequest { - string user_defined_function_id = 1 [(google.api.field_behavior) = OPTIONAL]; + string user_defined_function_id = 1 [ + (google.api.field_behavior) = OPTIONAL, + (buf.validate.field).string.uuid = true + ]; string name = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -128,7 +131,10 @@ message GetUserDefinedFunctionResponse { // The request for a call to `UserDefinedFunctionService_GetUserDefinedFunctionVersion` to retrieve a specific version of a user defined function. message GetUserDefinedFunctionVersionRequest { - string user_defined_function_version_id = 1 [(google.api.field_behavior) = REQUIRED]; + string user_defined_function_version_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; } message GetUserDefinedFunctionVersionResponse { @@ -139,9 +145,15 @@ message GetUserDefinedFunctionVersionResponse { message GetUserDefinedFunctionDependentsRequest { uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; oneof user_defined_function { - string user_defined_function_id = 2 [(google.api.field_behavior) = OPTIONAL]; + string user_defined_function_id = 2 [ + (buf.validate.field).string.uuid = true, + (google.api.field_behavior) = OPTIONAL + ]; string user_defined_function_name = 3 [(google.api.field_behavior) = OPTIONAL]; - string user_defined_function_version_id = 4 [(google.api.field_behavior) = OPTIONAL]; + string user_defined_function_version_id = 4 [ + (buf.validate.field).string.uuid = true, + (google.api.field_behavior) = OPTIONAL + ]; } } @@ -156,7 +168,10 @@ message GetUserDefinedFunctionDependentsResponse { // The request for a call to `UserDefinedFunctionService_GetUserDefinedFunctionVersions` to retrieve versions of user defined functions. message GetUserDefinedFunctionVersionsRequest { - repeated string user_defined_function_version_ids = 1 [(google.api.field_behavior) = REQUIRED]; + repeated string user_defined_function_version_ids = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).repeated.items.string.uuid = true + ]; } message GetUserDefinedFunctionVersionsResponse { @@ -164,7 +179,14 @@ message GetUserDefinedFunctionVersionsResponse { } message CreateUserDefinedFunctionRequest { - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).cel = { + id: "invalid_name" + message: "name must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-]." + expression: "this.matches('^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$')" + } + ]; optional string description = 2 [(google.api.field_behavior) = OPTIONAL]; string expression = 3 [(google.api.field_behavior) = REQUIRED]; repeated sift.common.type.v1.FunctionInput function_inputs = 4 [(google.api.field_behavior) = REQUIRED]; @@ -201,15 +223,16 @@ message ValidateUserDefinedFunctionResponse { // the current version is returned. If name is changed then only name will be changed. If archive date is changed then only archive date will be changed. // To archive user defined function, specify `archived_date` in the `update mask` as well as a non-null value for `archived_date` in the // `user_defined_function` object. To unarchive a user defined function, specify `archived_date` in the `update mask` and a `null` value for `archived_date` -// in the `user_defined_function` object. +// in the `user_defined_function` object. Alternatively, use `is_archived` with a boolean value to archive/unarchive. message UpdateUserDefinedFunctionRequest { // The user defined function to update. sift.common.type.v1.UserDefinedFunction user_defined_function = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `expression`, and `function_inputs`. + // The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `expression`, `function_inputs`, and `metadata`. // -- `name` can't be updated if the function has ever had any dependencies // -- `function_inputs` inputs can't be updated if the function has any dependents (functions or calculated channels with a dependency on this function). // -- `expression` can't be updated if the function has dependents and the expression changes the output type. + // -- `metadata` updates metadata associated with the function google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -242,7 +265,7 @@ message ListUserDefinedFunctionsRequest { string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // There are currently no available fields. + // Available fields to filter by are `user_defined_function_id`, `name`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). string filter = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -277,7 +300,7 @@ message ListUserDefinedFunctionVersionsRequest { string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // There are currently no available fields. + // Available fields to filter by are `user_defined_function_id`, `name`, `version`, `archived_date`, and `is_archived`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). string filter = 5 [(google.api.field_behavior) = OPTIONAL]; diff --git a/protos/sift/user_groups/v2/user_groups.proto b/protos/sift/user_groups/v2/user_groups.proto index ce2d5b2cb..a9367975f 100644 --- a/protos/sift/user_groups/v2/user_groups.proto +++ b/protos/sift/user_groups/v2/user_groups.proto @@ -2,13 +2,13 @@ syntax = "proto3"; package sift.user_groups.v2; +import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/roles/v2/roles.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "User Group Service"} }; @@ -100,11 +100,18 @@ message UserGroup { string role_id = 3 [(google.api.field_behavior) = OPTIONAL]; bool is_default = 4 [(google.api.field_behavior) = REQUIRED]; message Resource { - repeated string asset_ids = 1 [(google.api.field_behavior) = OPTIONAL]; + repeated string asset_ids = 1 [ + (google.api.field_behavior) = OPTIONAL, + (buf.validate.field).repeated.items.string.uuid = true + ]; bool all_assets = 2 [(google.api.field_behavior) = REQUIRED]; } Resource resources = 6 [(google.api.field_behavior) = OPTIONAL]; - repeated string user_ids = 7 [(google.api.field_behavior) = OPTIONAL]; + repeated string user_ids = 7 [ + (google.api.field_behavior) = OPTIONAL, + (buf.validate.field).repeated.items.string.uuid = true + ]; + bool is_external = 8 [(google.api.field_behavior) = REQUIRED]; } message ListUserGroupsRequest { @@ -127,9 +134,10 @@ message ListUserGroupsRequest { string filter = 3 [(google.api.field_behavior) = OPTIONAL]; // How to order the retrieved user groups. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are: - // - created_date - // - modified_date + // Available fields to order_by are `name`, `created_date`, and `modified_date`. + // If left empty, items are ordered by `name` in ascending order (A-Z). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc,modified_date" string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -142,7 +150,7 @@ message ListUserGroupsResponse { } message GetUserGroupRequest { - string user_group_id = 1; + string user_group_id = 1 [(buf.validate.field).string.uuid = true]; } message GetUserGroupResponse { @@ -150,8 +158,8 @@ message GetUserGroupResponse { } message UpdateUserUserGroupsRequest { - string user_id = 1; - repeated string user_group_ids = 2; + string user_id = 1 [(buf.validate.field).string.uuid = true]; + repeated string user_group_ids = 2 [(buf.validate.field).repeated.items.string.uuid = true]; } message UpdateUserUserGroupsResponse {} @@ -168,7 +176,14 @@ message UpdateUserGroupRequest { UserGroup user_group = 1 [(google.api.field_behavior) = REQUIRED]; // The list of fields to update. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).cel = { + id: "invalid_field_mask_path" + message: "field mask path must be in ['name', 'is_default', 'role_id', 'resources', 'users']" + expression: "this.paths.all(path, path in ['name', 'is_default', 'role_id', 'resources', 'users'])" + } + ]; } message UpdateUserGroupResponse { @@ -176,27 +191,45 @@ message UpdateUserGroupResponse { } message DeleteUserGroupRequest { - string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; + string user_group_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; } message DeleteUserGroupResponse {} message AddUserToUserGroupRequest { - string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; - string user_id = 2 [(google.api.field_behavior) = REQUIRED]; + string user_group_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + string user_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; } message AddUserToUserGroupResponse {} message RemoveUserFromUserGroupRequest { - string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; - string user_id = 2 [(google.api.field_behavior) = REQUIRED]; + string user_group_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + string user_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; } message RemoveUserFromUserGroupResponse {} message GetUserGroupsForAssetsRequest { - repeated string asset_ids = 1 [(google.api.field_behavior) = REQUIRED]; + repeated string asset_ids = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).repeated.items.string.uuid = true + ]; } message GetUserGroupsForAssetsResponse { diff --git a/protos/sift/users/v2/users.proto b/protos/sift/users/v2/users.proto index ae0677460..810ebdb1b 100644 --- a/protos/sift/users/v2/users.proto +++ b/protos/sift/users/v2/users.proto @@ -7,7 +7,6 @@ import "google/api/field_behavior.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/user.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "User Service"} }; @@ -45,6 +44,16 @@ service UserService { description: "List active users." }; } + + // List users. + rpc ListUsers(ListUsersRequest) returns (ListUsersResponse) { + option (google.api.http) = {get: "/api/v2/users:all"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListUsers" + description: "List users." + operation_id: "UserService_ListUsersV2" + }; + } } message UpdateUserOrganizationActiveRequest { @@ -88,9 +97,10 @@ message ListActiveUsersRequest { string organization_id = 4 [(google.api.field_behavior) = OPTIONAL]; // How to order the retrieved users. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - // Available fields to order_by are: - // - created_date - // - modified_date + // Available fields to order_by are `name`, `created_date`, and `modified_date`. + // If left empty, items are ordered by `name` in ascending order (A-Z). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc,modified_date" string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -99,3 +109,35 @@ message ListActiveUsersResponse { repeated sift.common.type.v1.User users = 1; string next_page_token = 2; } + +// The request for a call to `UserService_ListUsers` to retrieve users. +message ListUsersRequest { + // The maximum number of users to return. The service may return fewer than this value. + // If unspecified, at most 50 users will be returned. The maximum value is 1000; values above + // 1000 will be coerced to 1000. Optional. + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous `ListUsers` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListUsers` must match + // the call that provided the page token. Optional. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are `user_id` and `name`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + // For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/users#user). Optional. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved users. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are: + // - created_date + // - modified_date + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response of a call to `UserService_ListUsersResponse`. +message ListUsersResponse { + repeated sift.common.type.v1.User users = 1; + string next_page_token = 2; +} diff --git a/protos/sift/views/v1/views.proto b/protos/sift/views/v1/views.proto index 4d9bdb70e..f90fc631d 100644 --- a/protos/sift/views/v1/views.proto +++ b/protos/sift/views/v1/views.proto @@ -8,7 +8,6 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "View Service"} }; @@ -17,8 +16,8 @@ service ViewService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with views." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/298188809"; - description: "Read more about what views are."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/298188809" + description: "Read more about what views are." } }; @@ -88,8 +87,8 @@ service ViewService { summary: "PinView" description: "Pins a view." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"; - description: "Learn more about pinning views."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289" + description: "Learn more about pinning views." } }; } @@ -104,8 +103,8 @@ service ViewService { summary: "UnpinView" description: "Unpins a view." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"; - description: "Learn more about pinning views."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289" + description: "Learn more about pinning views." } }; } diff --git a/protos/sift/views/v2/views.proto b/protos/sift/views/v2/views.proto index 62c340d5a..8e3238602 100644 --- a/protos/sift/views/v2/views.proto +++ b/protos/sift/views/v2/views.proto @@ -8,7 +8,6 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: {title: "View Service"} }; @@ -17,8 +16,8 @@ service ViewService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with views." external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/298188809"; - description: "Read more about what views are."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/298188809" + description: "Read more about what views are." } }; @@ -99,8 +98,8 @@ service ViewService { description: "Pins a view." operation_id: "ViewService_PinViewV2" external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"; - description: "Learn more about pinning views."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289" + description: "Learn more about pinning views." } }; } @@ -116,8 +115,8 @@ service ViewService { description: "Unpins a view." operation_id: "ViewService_UnpinViewV2" external_docs: { - url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"; - description: "Learn more about pinning views."; + url: "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289" + description: "Learn more about pinning views." } }; } diff --git a/protos/sift/webhooks/v1/webhooks.proto b/protos/sift/webhooks/v1/webhooks.proto new file mode 100644 index 000000000..ec03d1f41 --- /dev/null +++ b/protos/sift/webhooks/v1/webhooks.proto @@ -0,0 +1,446 @@ +syntax = "proto3"; + +package sift.webhooks.v1; + +import "buf/validate/validate.proto"; +import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; + + +service WebhookService { + // Retrieve a webhook by ID. + rpc GetWebhook(GetWebhookRequest) returns (GetWebhookResponse) { + option (google.api.http) = {get: "/api/v1/webhooks/{webhook_id}"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetWebhook" + description: "Retrieve a webhook by ID." + }; + } + + // Create a webhook. + rpc CreateWebhook(CreateWebhookRequest) returns (CreateWebhookResponse) { + option (google.api.http) = { + post: "/api/v1/webhooks" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "CreateWebhook" + description: "Create a webhook." + }; + } + + // Update select fields of an existing webhook. + rpc UpdateWebhook(UpdateWebhookRequest) returns (UpdateWebhookResponse) { + option (google.api.http) = { + patch: "/api/v1/webhooks" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "UpdateWebhook" + description: "Update select fields of an existing webhook." + }; + } + + // Retrieve and optionally filter a list of webhooks. + rpc ListWebhooks(ListWebhooksRequest) returns (ListWebhooksResponse) { + option (google.api.http) = {get: "/api/v1/webhooks"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListWebhooks" + description: "Retrieve and optionally filter a list of webhooks." + }; + } + + // Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook + // with the provided parameters and forward back the response from the target. + rpc TestWebhook(TestWebhookRequest) returns (TestWebhookResponse) { + option (google.api.http) = { + post: "/api/v1/webhooks:test" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "TestWebhook" + description: + "Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook " + "with the provided parameters and forward back the response from the target." + }; + } + + // Create an webhook signature key. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256. + // The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then + // this will simply return it. See `WebhookService_RotateWebhookSignatureKey` to rotate the key. + rpc CreateWebhookSignatureKey(CreateWebhookSignatureKeyRequest) returns (CreateWebhookSignatureKeyResponse) { + option (google.api.http) = { + post: "/api/v1/webhooks/signature-key" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "CreateOrUpdateWebhookSignatureKey" + description: + "Create a webhook signature key and set its activation state. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256." + "The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then this will simply return it." + "See `WebhookService_RotateWebhookSignatureKey` to rotate the key." + }; + } + + // Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist. + rpc GetWebhookSignatureKey(GetWebhookSignatureKeyRequest) returns (GetWebhookSignatureKeyResponse) { + option (google.api.http) = {get: "/api/v1/webhooks/signature-key"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetWebhookSignatureKey" + description: "Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist." + }; + } + + // Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist. + rpc ToggleWebhookSignatureKeyActivation(ToggleWebhookSignatureKeyActivationRequest) returns (ToggleWebhookSignatureKeyActivationResponse) { + option (google.api.http) = { + patch: "/api/v1/webhooks/signature-key" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ToggleWebhookSignatureKeyActivation" + description: "Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist." + }; + } + + // Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous. + rpc RotateWebhookSignatureKey(RotateWebhookSignatureKeyRequest) returns (RotateWebhookSignatureKeyResponse) { + option (google.api.http) = { + put: "/api/v1/webhooks/signature-key" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ToggleWebhookSignatureKeyActivation" + description: "Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous." + }; + } + + // Create a batch of webhook logs. Users should not have to call this directly. + rpc BatchCreateWebhookLogs(BatchCreateWebhookLogsRequest) returns (BatchCreateWebhookLogsResponse) { + option (google.api.http) = { + post: "/api/v1/webhooks/logs:batch-create" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "BatchCreateWebhookLogs" + description: "Create a batch of webhook logs. Users should not have to call this directly." + }; + } + + // Retrieve and optionally filter a list of webhook logs. + rpc ListWebhookLogs(ListWebhookLogsRequest) returns (ListWebhookLogsResponse) { + option (google.api.http) = {get: "/api/v1/webhooks/logs"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListWebhookLogs" + description: "Retrieve and optionally filter a list of webhook logs." + }; + } +} + +message Webhook { + string webhook_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + string organization_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + string target_url = 3 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uri = true + ]; + string name = 4 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.min_len = 1 + ]; + WebhookEventType event_type = 5 [(google.api.field_behavior) = REQUIRED]; + optional string payload = 6 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp created_date = 7 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp modified_date = 8 [(google.api.field_behavior) = REQUIRED]; + optional google.protobuf.Timestamp archived_date = 9 [(google.api.field_behavior) = OPTIONAL]; + string created_by_user_id = 10 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + string modified_by_user_id = 11 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + repeated WebhookHttpHeader http_headers = 12 [(google.api.field_behavior) = REQUIRED]; + bool is_archived = 13 [(google.api.field_behavior) = REQUIRED]; +} + +enum WebhookEventType { + WEBHOOK_EVENT_TYPE_UNSPECIFIED = 0; + WEBHOOK_EVENT_TYPE_RULE_VIOLATION = 1; +} + +message WebhookLog { + string webhook_log_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uri = true + ]; + string webhook_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uri = true + ]; + string event_id = 3 [(google.api.field_behavior) = REQUIRED]; + string organization_id = 4 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uri = true + ]; + WebhookLogStatus status = 5 [(google.api.field_behavior) = REQUIRED]; + optional string payload = 6 [(google.api.field_behavior) = OPTIONAL]; + uint32 retry_attempt_number = 7 [(google.api.field_behavior) = REQUIRED]; + optional string error_reason = 8 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp sent_date = 9 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp created_date = 10 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp modified_date = 11 [(google.api.field_behavior) = REQUIRED]; + string created_by_user_id = 12 [(google.api.field_behavior) = REQUIRED]; + string modified_by_user_id = 13 [(google.api.field_behavior) = REQUIRED]; +} + +message WebhookSignatureKey { + string signature_key = 1 [(google.api.field_behavior) = REQUIRED]; + bool active = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp created_date = 3 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp modified_date = 4 [(google.api.field_behavior) = REQUIRED]; + string created_by_user_id = 5 [(google.api.field_behavior) = REQUIRED]; + string modified_by_user_id = 6 [(google.api.field_behavior) = REQUIRED]; +} + +message WebhookHttpHeader { + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_NAME + ]; + string value = 2 [(google.api.field_behavior) = REQUIRED]; +} + +enum WebhookLogStatus { + WEBHOOK_LOG_STATUS_UNSPECIFIED = 0; + WEBHOOK_LOG_STATUS_SENT = 1; + WEBHOOK_LOG_STATUS_FAILED = 2; + WEBHOOK_LOG_STATUS_RETRYING = 3; +} + +// The request for a call to `WebhookService_GetWebhook` to retrieve a webhook. +message GetWebhookRequest { + string webhook_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; +} + +// The response of a call to `WebhookService_GetWebhook`. +message GetWebhookResponse { + Webhook webhook = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_UpdateWebhook` to update a webhook. +message UpdateWebhookRequest { + // The webhook to update. The webhook's `webhook_id` field is used to identify + // the webhook to update and is required. + Webhook webhook = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. The fields available to be updated are + // 'target_url', 'name', 'event_type', 'payload', 'http_headers', 'archived_date', 'is_archived'. + google.protobuf.FieldMask update_mask = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).cel = { + id: "invalid_field_mask_path" + message: "field mask path must be in ['target_url', 'targetUrl', 'name', 'event_type', 'eventType', 'payload', 'http_headers', 'httpHeaders', 'archived_date', 'archivedDate', 'is_archived', 'isArchived']" + expression: "this.paths.all(path, path in ['target_url', 'targetUrl', 'name', 'event_type', 'eventType', 'payload', 'http_headers', 'httpHeaders', 'archived_date', 'archivedDate', 'is_archived', 'isArchived'])" + } + ]; +} + +// The response of a call to `WebhookService_UpdateWebhook`. To archive a webhook, specify `archived_date` +// in the `update mask` as well as a non-null value for `archived_date` in the `webhook` object. +// To unarchive a webhook, specify `archived_date` in the `update mask` and a `null` value for +// `archived_date` in the `webhook` object. +message UpdateWebhookResponse { + Webhook webhook = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_CreateWebhook` to create a webhook. +message CreateWebhookRequest { + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.min_len = 1 + ]; + string target_url = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uri = true + ]; + WebhookEventType event_type = 3 [(google.api.field_behavior) = REQUIRED]; + optional string payload = 4 [(google.api.field_behavior) = OPTIONAL]; + repeated WebhookHttpHeader http_headers = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// The response of a call to `WebhookService_CreateWebhook`. +message CreateWebhookResponse { + Webhook webhook = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_ListWebhooks` to retrieve and filter webhooks. +message ListWebhooksRequest { + // The maximum number of webhooks to return. + // The service may return fewer than this value. + // If unspecified, at most 50 runs will be returned. + // The maximum value is 1000. + uint32 page_size = 1 [ + (google.api.field_behavior) = OPTIONAL, + (buf.validate.field).uint32.lte = 1000 + ]; + + // A page token, received from a previous `ListWebhooks` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListWebhooks` must match + // the call that provided the page token. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are `webhook_id`, `name`, `event_type`, `is_archived`, and `archived_date`. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved webhooks. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available field to order_by is `created_date`. + // If left empty, items are ordered by `created_date` in ascending order (oldest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response of a call to `WebhookService_ListWebhooks`. +message ListWebhooksResponse { + repeated Webhook webhooks = 1 [(google.api.field_behavior) = REQUIRED]; + string next_page_token = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_TestWebhook` to test an existing webhook +// or a webhook create request. +message TestWebhookRequest { + oneof form { + string webhook_id = 1; + Webhook webhook = 2; + CreateWebhookRequest create_request = 3; + } +} + +// The response of a call to `WebhookService_TestWebhook`. The response code and body will come from the HTTP response +// from the target URL. +message TestWebhookResponse { + uint32 http_response_code = 1 [(google.api.field_behavior) = REQUIRED]; + bytes http_response_body = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_CreateWebhookSignatureKey` to create a webhook signature key. +message CreateWebhookSignatureKeyRequest {} + +// The response for a call to `WebhookService_CreateWebhookSignatureKey`. The `active` field indicates whether +// or not whether the key is currently active. +message CreateWebhookSignatureKeyResponse { + WebhookSignatureKey signature_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_GetWebhookSignatureKey` to retrieve the current webhook signature key. +message GetWebhookSignatureKeyRequest { + // Optional organization ID. + string organization_id = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for a call to `WebhookService_GetWebhookSignatureKey`. The `active` field indicates whether +// or not whether the key is currently active. +message GetWebhookSignatureKeyResponse { + WebhookSignatureKey signature_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_ToggleWebhookSignatureKeyActivation` to enable or disable the current +// webhook signature key. Set `enable` to `true` to activate the signature key, and `false` to deactivate. +message ToggleWebhookSignatureKeyActivationRequest { + bool enable = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response for a call to `WebhookService_ToggleWebhookSignatureKeyActivation`. +message ToggleWebhookSignatureKeyActivationResponse { + WebhookSignatureKey signature_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_RotateWebhookSignatureKey` replace the current webhook signature key +// with a new one. The activation state of the new signature key will be inherited from the previous key. If no key +// exists then this will return an error - see `WebhookService_CreateWebhookSignatureKey`. +message RotateWebhookSignatureKeyRequest {} + +// The response for a call to `WebhookService_RotateWebhookSignatureKey`. The `active` field indicates whether +// or not whether the key is currently active. +message RotateWebhookSignatureKeyResponse { + WebhookSignatureKey signature_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_ListWebhookLogs` to retrieve and filter webhook logs. +message ListWebhookLogsRequest { + // The maximum number of webhook logs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 runs will be returned. + // The maximum value is 1000. + uint32 page_size = 1 [ + (google.api.field_behavior) = OPTIONAL, + (buf.validate.field).uint32.lte = 1000 + ]; + + // A page token, received from a previous `ListWebhookLogs` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListWebhookLogs` must match + // the call that provided the page token. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // The available fields to filter by are `webhook_id`, `status`. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved webhook logs. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available field to order_by is `created_date`. + // If left empty, items are ordered by `created_date` in ascending order (oldest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response of a call to `WebhookService_ListWebhookLogsResponse`. +message ListWebhookLogsResponse { + repeated WebhookLog logs = 1 [(google.api.field_behavior) = REQUIRED]; + string next_page_token = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request to create a single webhook log entry. +message CreateWebhookLogRequest { + string webhook_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + string event_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).string.uuid = true + ]; + uint32 retry_attempt_number = 3 [(google.api.field_behavior) = REQUIRED]; + WebhookLogStatus status = 4 [(google.api.field_behavior) = REQUIRED]; + optional string payload = 5 [(google.api.field_behavior) = REQUIRED]; + optional string error_reason = 6 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp sent_date = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for a call to `WebhookService_BatchCreateWebhookLogs` to create a batch of webhook logs. +message BatchCreateWebhookLogsRequest { + repeated CreateWebhookLogRequest requests = 1 [ + (google.api.field_behavior) = REQUIRED, + (buf.validate.field).repeated.max_items = 1000 + ]; +} + +// The response of a call to `WebhookService_BatchCreateWebhookResponse`. +message BatchCreateWebhookLogsResponse {} diff --git a/python/lib/buf/__init__.py b/python/lib/buf/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/buf/validate/__init__.py b/python/lib/buf/validate/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/buf/validate/validate_pb2.py b/python/lib/buf/validate/validate_pb2.py new file mode 100644 index 000000000..1783f38c6 --- /dev/null +++ b/python/lib/buf/validate/validate_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: buf/validate/validate.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x62uf/validate/validate.proto\x12\x0c\x62uf.validate\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"P\n\x04Rule\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression\"z\n\x0cMessageRules\x12$\n\x03\x63\x65l\x18\x03 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x34\n\x05oneof\x18\x04 \x03(\x0b\x32\x1e.buf.validate.MessageOneofRuleR\x05oneofJ\x04\x08\x01\x10\x02R\x08\x64isabled\"F\n\x10MessageOneofRule\x12\x16\n\x06\x66ields\x18\x01 \x03(\tR\x06\x66ields\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\"(\n\nOneofRules\x12\x1a\n\x08required\x18\x01 \x01(\x08R\x08required\"\xfd\t\n\nFieldRules\x12$\n\x03\x63\x65l\x18\x17 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x1a\n\x08required\x18\x19 \x01(\x08R\x08required\x12,\n\x06ignore\x18\x1b \x01(\x0e\x32\x14.buf.validate.IgnoreR\x06ignore\x12\x30\n\x05\x66loat\x18\x01 \x01(\x0b\x32\x18.buf.validate.FloatRulesH\x00R\x05\x66loat\x12\x33\n\x06\x64ouble\x18\x02 \x01(\x0b\x32\x19.buf.validate.DoubleRulesH\x00R\x06\x64ouble\x12\x30\n\x05int32\x18\x03 \x01(\x0b\x32\x18.buf.validate.Int32RulesH\x00R\x05int32\x12\x30\n\x05int64\x18\x04 \x01(\x0b\x32\x18.buf.validate.Int64RulesH\x00R\x05int64\x12\x33\n\x06uint32\x18\x05 \x01(\x0b\x32\x19.buf.validate.UInt32RulesH\x00R\x06uint32\x12\x33\n\x06uint64\x18\x06 \x01(\x0b\x32\x19.buf.validate.UInt64RulesH\x00R\x06uint64\x12\x33\n\x06sint32\x18\x07 \x01(\x0b\x32\x19.buf.validate.SInt32RulesH\x00R\x06sint32\x12\x33\n\x06sint64\x18\x08 \x01(\x0b\x32\x19.buf.validate.SInt64RulesH\x00R\x06sint64\x12\x36\n\x07\x66ixed32\x18\t \x01(\x0b\x32\x1a.buf.validate.Fixed32RulesH\x00R\x07\x66ixed32\x12\x36\n\x07\x66ixed64\x18\n \x01(\x0b\x32\x1a.buf.validate.Fixed64RulesH\x00R\x07\x66ixed64\x12\x39\n\x08sfixed32\x18\x0b \x01(\x0b\x32\x1b.buf.validate.SFixed32RulesH\x00R\x08sfixed32\x12\x39\n\x08sfixed64\x18\x0c \x01(\x0b\x32\x1b.buf.validate.SFixed64RulesH\x00R\x08sfixed64\x12-\n\x04\x62ool\x18\r \x01(\x0b\x32\x17.buf.validate.BoolRulesH\x00R\x04\x62ool\x12\x33\n\x06string\x18\x0e \x01(\x0b\x32\x19.buf.validate.StringRulesH\x00R\x06string\x12\x30\n\x05\x62ytes\x18\x0f \x01(\x0b\x32\x18.buf.validate.BytesRulesH\x00R\x05\x62ytes\x12-\n\x04\x65num\x18\x10 \x01(\x0b\x32\x17.buf.validate.EnumRulesH\x00R\x04\x65num\x12\x39\n\x08repeated\x18\x12 \x01(\x0b\x32\x1b.buf.validate.RepeatedRulesH\x00R\x08repeated\x12*\n\x03map\x18\x13 \x01(\x0b\x32\x16.buf.validate.MapRulesH\x00R\x03map\x12*\n\x03\x61ny\x18\x14 \x01(\x0b\x32\x16.buf.validate.AnyRulesH\x00R\x03\x61ny\x12\x39\n\x08\x64uration\x18\x15 \x01(\x0b\x32\x1b.buf.validate.DurationRulesH\x00R\x08\x64uration\x12<\n\ttimestamp\x18\x16 \x01(\x0b\x32\x1c.buf.validate.TimestampRulesH\x00R\ttimestampB\x06\n\x04typeJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"Z\n\x0fPredefinedRules\x12$\n\x03\x63\x65l\x18\x01 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65lJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"\x90\x18\n\nFloatRules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x02\x42t\xc2Hq\no\n\x0b\x66loat.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa3\x01\n\x02lt\x18\x02 \x01(\x02\x42\x90\x01\xc2H\x8c\x01\n\x89\x01\n\x08\x66loat.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb4\x01\n\x03lte\x18\x03 \x01(\x02\x42\x9f\x01\xc2H\x9b\x01\n\x98\x01\n\tfloat.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf3\x07\n\x02gt\x18\x04 \x01(\x02\x42\xe0\x07\xc2H\xdc\x07\n\x8d\x01\n\x08\x66loat.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc3\x01\n\x0b\x66loat.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd3\x01\n\x0c\x66loat.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xdd\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xbf\x08\n\x03gte\x18\x05 \x01(\x02\x42\xaa\x08\xc2H\xa6\x08\n\x9b\x01\n\tfloat.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd2\x01\n\x0c\x66loat.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe2\x01\n\rfloat.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xec\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x02\x42s\xc2Hp\nn\n\x08\x66loat.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x02\x42\x66\xc2Hc\na\n\x0c\x66loat.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12}\n\x06\x66inite\x18\x08 \x01(\x08\x42\x65\xc2Hb\n`\n\x0c\x66loat.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x34\n\x07\x65xample\x18\t \x03(\x02\x42\x1a\xc2H\x17\n\x15\n\rfloat.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xa2\x18\n\x0b\x44oubleRules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x01\x42u\xc2Hr\np\n\x0c\x64ouble.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa4\x01\n\x02lt\x18\x02 \x01(\x01\x42\x91\x01\xc2H\x8d\x01\n\x8a\x01\n\tdouble.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb5\x01\n\x03lte\x18\x03 \x01(\x01\x42\xa0\x01\xc2H\x9c\x01\n\x99\x01\n\ndouble.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf8\x07\n\x02gt\x18\x04 \x01(\x01\x42\xe5\x07\xc2H\xe1\x07\n\x8e\x01\n\tdouble.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc4\x01\n\x0c\x64ouble.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd4\x01\n\rdouble.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xde\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xc4\x08\n\x03gte\x18\x05 \x01(\x01\x42\xaf\x08\xc2H\xab\x08\n\x9c\x01\n\ndouble.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd3\x01\n\rdouble.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe3\x01\n\x0e\x64ouble.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xed\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x01\x42t\xc2Hq\no\n\tdouble.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x01\x42g\xc2Hd\nb\n\rdouble.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12~\n\x06\x66inite\x18\x08 \x01(\x08\x42\x66\xc2Hc\na\n\rdouble.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x35\n\x07\x65xample\x18\t \x03(\x01\x42\x1b\xc2H\x18\n\x16\n\x0e\x64ouble.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xba\x15\n\nInt32Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42t\xc2Hq\no\n\x0bint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x05\x42|\xc2Hy\nw\n\x08int32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x05\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x05\x42\x88\x07\xc2H\x84\x07\nz\n\x08int32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x05\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x05\x42s\xc2Hp\nn\n\x08int32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x05\x42\x66\xc2Hc\na\n\x0cint32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\x08 \x03(\x05\x42\x1a\xc2H\x17\n\x15\n\rint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xba\x15\n\nInt64Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x03\x42t\xc2Hq\no\n\x0bint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x03\x42|\xc2Hy\nw\n\x08int64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x03\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x03\x42\x88\x07\xc2H\x84\x07\nz\n\x08int64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x03\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x03\x42s\xc2Hp\nn\n\x08int64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x03\x42\x66\xc2Hc\na\n\x0cint64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\t \x03(\x03\x42\x1a\xc2H\x17\n\x15\n\rint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xcb\x15\n\x0bUInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\rBu\xc2Hr\np\n\x0cuint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\rB}\xc2Hz\nx\n\tuint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\rB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\rB\x8d\x07\xc2H\x89\x07\n{\n\tuint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\rB\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\rBt\xc2Hq\no\n\tuint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\rBg\xc2Hd\nb\n\ruint32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\rB\x1b\xc2H\x18\n\x16\n\x0euint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xcb\x15\n\x0bUInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x04\x42u\xc2Hr\np\n\x0cuint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x04\x42}\xc2Hz\nx\n\tuint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x04\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x04\x42\x8d\x07\xc2H\x89\x07\n{\n\tuint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x04\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x04\x42t\xc2Hq\no\n\tuint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x04\x42g\xc2Hd\nb\n\ruint64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x04\x42\x1b\xc2H\x18\n\x16\n\x0euint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xcb\x15\n\x0bSInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x11\x42u\xc2Hr\np\n\x0csint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x11\x42}\xc2Hz\nx\n\tsint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x11\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x11\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x11\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x11\x42t\xc2Hq\no\n\tsint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x11\x42g\xc2Hd\nb\n\rsint32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x11\x42\x1b\xc2H\x18\n\x16\n\x0esint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xcb\x15\n\x0bSInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x12\x42u\xc2Hr\np\n\x0csint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x12\x42}\xc2Hz\nx\n\tsint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x12\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x12\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x12\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x12\x42t\xc2Hq\no\n\tsint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x12\x42g\xc2Hd\nb\n\rsint64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x12\x42\x1b\xc2H\x18\n\x16\n\x0esint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xdc\x15\n\x0c\x46ixed32Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x07\x42v\xc2Hs\nq\n\rfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x07\x42~\xc2H{\ny\n\nfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x07\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x07\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x07\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x07\x42u\xc2Hr\np\n\nfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x07\x42h\xc2He\nc\n\x0e\x66ixed32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x07\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xdc\x15\n\x0c\x46ixed64Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x06\x42v\xc2Hs\nq\n\rfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x06\x42~\xc2H{\ny\n\nfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x06\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x06\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x06\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x06\x42u\xc2Hr\np\n\nfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x06\x42h\xc2He\nc\n\x0e\x66ixed64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x06\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xee\x15\n\rSFixed32Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x0f\x42w\xc2Ht\nr\n\x0esfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x0f\x42\x7f\xc2H|\nz\n\x0bsfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x0f\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x0f\x42v\xc2Hs\nq\n\x0bsfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x0f\x42i\xc2Hf\nd\n\x0fsfixed32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x0f\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xee\x15\n\rSFixed64Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x10\x42w\xc2Ht\nr\n\x0esfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x10\x42\x7f\xc2H|\nz\n\x0bsfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x10\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x10\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x10\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x10\x42v\xc2Hs\nq\n\x0bsfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x10\x42i\xc2Hf\nd\n\x0fsfixed64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x10\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xd7\x01\n\tBoolRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x08\x42s\xc2Hp\nn\n\nbool.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x33\n\x07\x65xample\x18\x02 \x03(\x08\x42\x19\xc2H\x16\n\x14\n\x0c\x62ool.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xd1\x39\n\x0bStringRules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\tBw\xc2Ht\nr\n\x0cstring.const\x1a\x62this != getField(rules, \'const\') ? \'value must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x83\x01\n\x03len\x18\x13 \x01(\x04\x42q\xc2Hn\nl\n\nstring.len\x1a^uint(this.size()) != rules.len ? \'value length must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\xa1\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x0estring.min_len\x1anuint(this.size()) < rules.min_len ? \'value length must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x9f\x01\n\x07max_len\x18\x03 \x01(\x04\x42\x85\x01\xc2H\x81\x01\n\x7f\n\x0estring.max_len\x1amuint(this.size()) > rules.max_len ? \'value length must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\xa5\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x10string.len_bytes\x1aluint(bytes(this).size()) != rules.len_bytes ? \'value length must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\xad\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x10string.min_bytes\x1atuint(bytes(this).size()) < rules.min_bytes ? \'value length must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\xac\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x10string.max_bytes\x1asuint(bytes(this).size()) > rules.max_bytes ? \'value length must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x96\x01\n\x07pattern\x18\x06 \x01(\tB|\xc2Hy\nw\n\x0estring.pattern\x1a\x65!this.matches(rules.pattern) ? \'value does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x8c\x01\n\x06prefix\x18\x07 \x01(\tBt\xc2Hq\no\n\rstring.prefix\x1a^!this.startsWith(rules.prefix) ? \'value does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x8a\x01\n\x06suffix\x18\x08 \x01(\tBr\xc2Ho\nm\n\rstring.suffix\x1a\\!this.endsWith(rules.suffix) ? \'value does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x9a\x01\n\x08\x63ontains\x18\t \x01(\tB~\xc2H{\ny\n\x0fstring.contains\x1a\x66!this.contains(rules.contains) ? \'value does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xa5\x01\n\x0cnot_contains\x18\x17 \x01(\tB\x81\x01\xc2H~\n|\n\x13string.not_contains\x1a\x65this.contains(rules.not_contains) ? \'value contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12\x84\x01\n\x02in\x18\n \x03(\tBt\xc2Hq\no\n\tstring.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x0b \x03(\tBg\xc2Hd\nb\n\rstring.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe6\x01\n\x05\x65mail\x18\x0c \x01(\x08\x42\xcd\x01\xc2H\xc9\x01\na\n\x0cstring.email\x12#value must be a valid email address\x1a,!rules.email || this == \'\' || this.isEmail()\nd\n\x12string.email_empty\x12\x32value is empty, which is not a valid email address\x1a\x1a!rules.email || this != \'\'H\x00R\x05\x65mail\x12\xf1\x01\n\x08hostname\x18\r \x01(\x08\x42\xd2\x01\xc2H\xce\x01\ne\n\x0fstring.hostname\x12\x1evalue must be a valid hostname\x1a\x32!rules.hostname || this == \'\' || this.isHostname()\ne\n\x15string.hostname_empty\x12-value is empty, which is not a valid hostname\x1a\x1d!rules.hostname || this != \'\'H\x00R\x08hostname\x12\xcb\x01\n\x02ip\x18\x0e \x01(\x08\x42\xb8\x01\xc2H\xb4\x01\nU\n\tstring.ip\x12 value must be a valid IP address\x1a&!rules.ip || this == \'\' || this.isIp()\n[\n\x0fstring.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x17!rules.ip || this != \'\'H\x00R\x02ip\x12\xdc\x01\n\x04ipv4\x18\x0f \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv4\x12\"value must be a valid IPv4 address\x1a)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\x11string.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x19!rules.ipv4 || this != \'\'H\x00R\x04ipv4\x12\xdc\x01\n\x04ipv6\x18\x10 \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv6\x12\"value must be a valid IPv6 address\x1a)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\x11string.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x19!rules.ipv6 || this != \'\'H\x00R\x04ipv6\x12\xc4\x01\n\x03uri\x18\x11 \x01(\x08\x42\xaf\x01\xc2H\xab\x01\nQ\n\nstring.uri\x12\x19value must be a valid URI\x1a(!rules.uri || this == \'\' || this.isUri()\nV\n\x10string.uri_empty\x12(value is empty, which is not a valid URI\x1a\x18!rules.uri || this != \'\'H\x00R\x03uri\x12x\n\x07uri_ref\x18\x12 \x01(\x08\x42]\xc2HZ\nX\n\x0estring.uri_ref\x12#value must be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x99\x02\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\xfc\x01\xc2H\xf8\x01\n\x81\x01\n\x0estring.address\x12-value must be a valid hostname, or ip address\x1a@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\x14string.address_empty\x12!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\x92\x01\n string.ipv4_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv4 address with prefix length\x1a(!rules.ipv4_with_prefixlen || this != \'\'H\x00R\x11ipv4WithPrefixlen\x12\xe2\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42\xaf\x02\xc2H\xab\x02\n\x93\x01\n\x1astring.ipv6_with_prefixlen\x12\x35value must be a valid IPv6 address with prefix length\x1a>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\x92\x01\n string.ipv6_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv6 address with prefix length\x1a(!rules.ipv6_with_prefixlen || this != \'\'H\x00R\x11ipv6WithPrefixlen\x12\xfc\x01\n\tip_prefix\x18\x1d \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nl\n\x10string.ip_prefix\x12\x1fvalue must be a valid IP prefix\x1a\x37!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\x16string.ip_prefix_empty\x12.value is empty, which is not a valid IP prefix\x1a\x1e!rules.ip_prefix || this != \'\'H\x00R\x08ipPrefix\x12\x8f\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42\xeb\x01\xc2H\xe7\x01\nu\n\x12string.ipv4_prefix\x12!value must be a valid IPv4 prefix\x1a!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\x1astring.host_and_port_empty\x12\x37value is empty, which is not a valid host and port pair\x1a\"!rules.host_and_port || this != \'\'H\x00R\x0bhostAndPort\x12\xb8\x05\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xf1\x04\xc2H\xed\x04\n\xf0\x01\n#string.well_known_regex.header_name\x12&value must be a valid HTTP header name\x1a\xa0\x01rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\x8d\x01\n)string.well_known_regex.header_name_empty\x12\x35value is empty, which is not a valid HTTP header name\x1a)rules.well_known_regex != 1 || this != \'\'\n\xe7\x01\n$string.well_known_regex.header_value\x12\'value must be a valid HTTP header value\x1a\x95\x01rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')H\x00R\x0ewellKnownRegex\x12\x16\n\x06strict\x18\x19 \x01(\x08R\x06strict\x12\x35\n\x07\x65xample\x18\" \x03(\tB\x1b\xc2H\x18\n\x16\n\x0estring.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xce\x11\n\nBytesRules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x0c\x42q\xc2Hn\nl\n\x0b\x62ytes.const\x1a]this != getField(rules, \'const\') ? \'value must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12}\n\x03len\x18\r \x01(\x04\x42k\xc2Hh\nf\n\tbytes.len\x1aYuint(this.size()) != rules.len ? \'value length must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x98\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x7f\xc2H|\nz\n\rbytes.min_len\x1aiuint(this.size()) < rules.min_len ? \'value length must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\rbytes.max_len\x1a\x61uint(this.size()) > rules.max_len ? \'value must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x99\x01\n\x07pattern\x18\x04 \x01(\tB\x7f\xc2H|\nz\n\rbytes.pattern\x1ai!string(this).matches(rules.pattern) ? \'value must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x89\x01\n\x06prefix\x18\x05 \x01(\x0c\x42q\xc2Hn\nl\n\x0c\x62ytes.prefix\x1a\\!this.startsWith(rules.prefix) ? \'value does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x87\x01\n\x06suffix\x18\x06 \x01(\x0c\x42o\xc2Hl\nj\n\x0c\x62ytes.suffix\x1aZ!this.endsWith(rules.suffix) ? \'value does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x8d\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42q\xc2Hn\nl\n\x0e\x62ytes.contains\x1aZ!this.contains(rules.contains) ? \'value does not contain %x\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xab\x01\n\x02in\x18\x08 \x03(\x0c\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\x08\x62ytes.in\x1a\x86\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\t \x03(\x0c\x42\x66\xc2Hc\na\n\x0c\x62ytes.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xef\x01\n\x02ip\x18\n \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nt\n\x08\x62ytes.ip\x12 value must be a valid IP address\x1a\x46!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\x0e\x62ytes.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x1d!rules.ip || this.size() != 0H\x00R\x02ip\x12\xea\x01\n\x04ipv4\x18\x0b \x01(\x08\x42\xd3\x01\xc2H\xcf\x01\ne\n\nbytes.ipv4\x12\"value must be a valid IPv4 address\x1a\x33!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\x10\x62ytes.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x1f!rules.ipv4 || this.size() != 0H\x00R\x04ipv4\x12\xeb\x01\n\x04ipv6\x18\x0c \x01(\x08\x42\xd4\x01\xc2H\xd0\x01\nf\n\nbytes.ipv6\x12\"value must be a valid IPv6 address\x1a\x34!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\x10\x62ytes.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x1f!rules.ipv6 || this.size() != 0H\x00R\x04ipv6\x12\x34\n\x07\x65xample\x18\x0e \x03(\x0c\x42\x1a\xc2H\x17\n\x15\n\rbytes.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xfd\x03\n\tEnumRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42s\xc2Hp\nn\n\nenum.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12!\n\x0c\x64\x65\x66ined_only\x18\x02 \x01(\x08R\x0b\x64\x65\x66inedOnly\x12\x82\x01\n\x02in\x18\x03 \x03(\x05\x42r\xc2Ho\nm\n\x07\x65num.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12|\n\x06not_in\x18\x04 \x03(\x05\x42\x65\xc2Hb\n`\n\x0b\x65num.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x33\n\x07\x65xample\x18\x05 \x03(\x05\x42\x19\xc2H\x16\n\x14\n\x0c\x65num.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9e\x04\n\rRepeatedRules\x12\xa8\x01\n\tmin_items\x18\x01 \x01(\x04\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x12repeated.min_items\x1amuint(this.size()) < rules.min_items ? \'value must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xac\x01\n\tmax_items\x18\x02 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x12repeated.max_items\x1aquint(this.size()) > rules.max_items ? \'value must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'R\x08maxItems\x12x\n\x06unique\x18\x03 \x01(\x08\x42`\xc2H]\n[\n\x0frepeated.unique\x12(repeated value must contain unique items\x1a\x1e!rules.unique || this.unique()R\x06unique\x12.\n\x05items\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05items*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xac\x03\n\x08MapRules\x12\x99\x01\n\tmin_pairs\x18\x01 \x01(\x04\x42|\xc2Hy\nw\n\rmap.min_pairs\x1a\x66uint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'R\x08minPairs\x12\x98\x01\n\tmax_pairs\x18\x02 \x01(\x04\x42{\xc2Hx\nv\n\rmap.max_pairs\x1a\x65uint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'R\x08maxPairs\x12,\n\x04keys\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x04keys\x12\x30\n\x06values\x18\x05 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x06values*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"1\n\x08\x41nyRules\x12\x0e\n\x02in\x18\x02 \x03(\tR\x02in\x12\x15\n\x06not_in\x18\x03 \x03(\tR\x05notIn\"\xc6\x17\n\rDurationRules\x12\xa8\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationBw\xc2Ht\nr\n\x0e\x64uration.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xac\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x7f\xc2H|\nz\n\x0b\x64uration.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbf\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0c\x64uration.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xc5\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x97\x07\xc2H\x93\x07\n}\n\x0b\x64uration.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0e\x64uration.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18\x64uration.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0f\x64uration.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x92\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0c\x64uration.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0f\x64uration.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10\x64uration.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\xa1\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBv\xc2Hs\nq\n\x0b\x64uration.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x9b\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBi\xc2Hf\nd\n\x0f\x64uration.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12R\n\x07\x65xample\x18\t \x03(\x0b\x32\x19.google.protobuf.DurationB\x1d\xc2H\x1a\n\x18\n\x10\x64uration.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xca\x18\n\x0eTimestampRules\x12\xaa\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBx\xc2Hu\ns\n\x0ftimestamp.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xaf\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x80\x01\xc2H}\n{\n\x0ctimestamp.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xc1\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x90\x01\xc2H\x8c\x01\n\x89\x01\n\rtimestamp.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12s\n\x06lt_now\x18\x07 \x01(\x08\x42Z\xc2HW\nU\n\x10timestamp.lt_now\x1a\x41(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'H\x00R\x05ltNow\x12\xcb\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x9c\x07\xc2H\x98\x07\n~\n\x0ctimestamp.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb7\x01\n\x0ftimestamp.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x19timestamp.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x10timestamp.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcf\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x98\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xe7\x07\xc2H\xe3\x07\n\x8c\x01\n\rtimestamp.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc6\x01\n\x10timestamp.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x11timestamp.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xde\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12v\n\x06gt_now\x18\x08 \x01(\x08\x42]\xc2HZ\nX\n\x10timestamp.gt_now\x1a\x44(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xc0\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x8c\x01\xc2H\x88\x01\n\x85\x01\n\x10timestamp.within\x1aqthis < now-rules.within || this > now+rules.within ? \'value must be within %s of now\'.format([rules.within]) : \'\'R\x06within\x12T\n\x07\x65xample\x18\n \x03(\x0b\x32\x1a.google.protobuf.TimestampB\x1e\xc2H\x1b\n\x19\n\x11timestamp.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"E\n\nViolations\x12\x37\n\nviolations\x18\x01 \x03(\x0b\x32\x17.buf.validate.ViolationR\nviolations\"\xc5\x01\n\tViolation\x12-\n\x05\x66ield\x18\x05 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x05\x66ield\x12+\n\x04rule\x18\x06 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x04rule\x12\x17\n\x07rule_id\x18\x02 \x01(\tR\x06ruleId\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\x12\x17\n\x07\x66or_key\x18\x04 \x01(\x08R\x06\x66orKeyJ\x04\x08\x01\x10\x02R\nfield_path\"G\n\tFieldPath\x12:\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x1e.buf.validate.FieldPathElementR\x08\x65lements\"\xcc\x03\n\x10\x46ieldPathElement\x12!\n\x0c\x66ield_number\x18\x01 \x01(\x05R\x0b\x66ieldNumber\x12\x1d\n\nfield_name\x18\x02 \x01(\tR\tfieldName\x12I\n\nfield_type\x18\x03 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tfieldType\x12\x45\n\x08key_type\x18\x04 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\x07keyType\x12I\n\nvalue_type\x18\x05 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tvalueType\x12\x16\n\x05index\x18\x06 \x01(\x04H\x00R\x05index\x12\x1b\n\x08\x62ool_key\x18\x07 \x01(\x08H\x00R\x07\x62oolKey\x12\x19\n\x07int_key\x18\x08 \x01(\x03H\x00R\x06intKey\x12\x1b\n\x08uint_key\x18\t \x01(\x04H\x00R\x07uintKey\x12\x1f\n\nstring_key\x18\n \x01(\tH\x00R\tstringKeyB\x0b\n\tsubscript*\xa1\x01\n\x06Ignore\x12\x16\n\x12IGNORE_UNSPECIFIED\x10\x00\x12\x18\n\x14IGNORE_IF_ZERO_VALUE\x10\x01\x12\x11\n\rIGNORE_ALWAYS\x10\x03\"\x04\x08\x02\x10\x02*\x0cIGNORE_EMPTY*\x0eIGNORE_DEFAULT*\x17IGNORE_IF_DEFAULT_VALUE*\x15IGNORE_IF_UNPOPULATED*n\n\nKnownRegex\x12\x1b\n\x17KNOWN_REGEX_UNSPECIFIED\x10\x00\x12 \n\x1cKNOWN_REGEX_HTTP_HEADER_NAME\x10\x01\x12!\n\x1dKNOWN_REGEX_HTTP_HEADER_VALUE\x10\x02:V\n\x07message\x12\x1f.google.protobuf.MessageOptions\x18\x87\t \x01(\x0b\x32\x1a.buf.validate.MessageRulesR\x07message:N\n\x05oneof\x12\x1d.google.protobuf.OneofOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.OneofRulesR\x05oneof:N\n\x05\x66ield\x12\x1d.google.protobuf.FieldOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05\x66ield:]\n\npredefined\x12\x1d.google.protobuf.FieldOptions\x18\x88\t \x01(\x0b\x32\x1d.buf.validate.PredefinedRulesR\npredefinedB\xbb\x01\n\x10\x63om.buf.validateB\rValidateProtoP\x01ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\xa2\x02\x03\x42VX\xaa\x02\x0c\x42uf.Validate\xca\x02\x0c\x42uf\\Validate\xe2\x02\x18\x42uf\\Validate\\GPBMetadata\xea\x02\rBuf::Validate') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'buf.validate.validate_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\020com.buf.validateB\rValidateProtoP\001ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\242\002\003BVX\252\002\014Buf.Validate\312\002\014Buf\\Validate\342\002\030Buf\\Validate\\GPBMetadata\352\002\rBuf::Validate' + _globals['_FLOATRULES'].fields_by_name['const']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['const']._serialized_options = b'\302Hq\no\n\013float.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['lt']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['lt']._serialized_options = b'\302H\214\001\n\211\001\n\010float.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['lte']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['lte']._serialized_options = b'\302H\233\001\n\230\001\n\tfloat.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['gt']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['gt']._serialized_options = b'\302H\334\007\n\215\001\n\010float.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\303\001\n\013float.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\025float.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\323\001\n\014float.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\335\001\n\026float.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['gte']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['gte']._serialized_options = b'\302H\246\010\n\233\001\n\tfloat.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\322\001\n\014float.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\026float.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\342\001\n\rfloat.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\354\001\n\027float.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['in']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['in']._serialized_options = b'\302Hp\nn\n\010float.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014float.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['finite']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['finite']._serialized_options = b'\302Hb\n`\n\014float.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value must be finite\' : \'\') : \'\'' + _globals['_FLOATRULES'].fields_by_name['example']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rfloat.example\032\004true' + _globals['_DOUBLERULES'].fields_by_name['const']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['const']._serialized_options = b'\302Hr\np\n\014double.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['lt']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['lt']._serialized_options = b'\302H\215\001\n\212\001\n\tdouble.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['lte']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['lte']._serialized_options = b'\302H\234\001\n\231\001\n\ndouble.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['gt']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['gt']._serialized_options = b'\302H\341\007\n\216\001\n\tdouble.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\304\001\n\014double.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\026double.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\324\001\n\rdouble.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\336\001\n\027double.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['gte']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['gte']._serialized_options = b'\302H\253\010\n\234\001\n\ndouble.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\323\001\n\rdouble.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\027double.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\343\001\n\016double.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\355\001\n\030double.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['in']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['in']._serialized_options = b'\302Hq\no\n\tdouble.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['not_in']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rdouble.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['finite']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['finite']._serialized_options = b'\302Hc\na\n\rdouble.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value must be finite\' : \'\') : \'\'' + _globals['_DOUBLERULES'].fields_by_name['example']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016double.example\032\004true' + _globals['_INT32RULES'].fields_by_name['const']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['const']._serialized_options = b'\302Hq\no\n\013int32.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_INT32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hy\nw\n\010int32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_INT32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\210\001\n\205\001\n\tint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\204\007\nz\n\010int32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\317\007\n\210\001\n\tint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['in']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['in']._serialized_options = b'\302Hp\nn\n\010int32.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_INT32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014int32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_INT32RULES'].fields_by_name['example']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint32.example\032\004true' + _globals['_INT64RULES'].fields_by_name['const']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['const']._serialized_options = b'\302Hq\no\n\013int64.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_INT64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hy\nw\n\010int64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_INT64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\210\001\n\205\001\n\tint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\204\007\nz\n\010int64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\317\007\n\210\001\n\tint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['in']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['in']._serialized_options = b'\302Hp\nn\n\010int64.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_INT64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014int64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_INT64RULES'].fields_by_name['example']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint64.example\032\004true' + _globals['_UINT32RULES'].fields_by_name['const']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hr\np\n\014uint32.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tuint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nuint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tuint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nuint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['in']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hq\no\n\tuint32.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\ruint32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['example']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint32.example\032\004true' + _globals['_UINT64RULES'].fields_by_name['const']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hr\np\n\014uint64.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tuint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nuint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tuint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nuint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['in']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hq\no\n\tuint64.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\ruint64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['example']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint64.example\032\004true' + _globals['_SINT32RULES'].fields_by_name['const']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hr\np\n\014sint32.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tsint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nsint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tsint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nsint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['in']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hq\no\n\tsint32.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rsint32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['example']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint32.example\032\004true' + _globals['_SINT64RULES'].fields_by_name['const']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hr\np\n\014sint64.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tsint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nsint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tsint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nsint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['in']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hq\no\n\tsint64.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rsint64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['example']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint64.example\032\004true' + _globals['_FIXED32RULES'].fields_by_name['const']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Hs\nq\n\rfixed32.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302H{\ny\n\nfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\212\001\n\207\001\n\013fixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\216\007\n|\n\nfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\331\007\n\212\001\n\013fixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['in']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hr\np\n\nfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302He\nc\n\016fixed32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['example']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed32.example\032\004true' + _globals['_FIXED64RULES'].fields_by_name['const']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Hs\nq\n\rfixed64.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302H{\ny\n\nfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\212\001\n\207\001\n\013fixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\216\007\n|\n\nfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\331\007\n\212\001\n\013fixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['in']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hr\np\n\nfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302He\nc\n\016fixed64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['example']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed64.example\032\004true' + _globals['_SFIXED32RULES'].fields_by_name['const']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Ht\nr\n\016sfixed32.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302H|\nz\n\013sfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\213\001\n\210\001\n\014sfixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\223\007\n}\n\013sfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\336\007\n\213\001\n\014sfixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['in']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hs\nq\n\013sfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hf\nd\n\017sfixed32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['example']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed32.example\032\004true' + _globals['_SFIXED64RULES'].fields_by_name['const']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Ht\nr\n\016sfixed64.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302H|\nz\n\013sfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\213\001\n\210\001\n\014sfixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\223\007\n}\n\013sfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\336\007\n\213\001\n\014sfixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['in']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hs\nq\n\013sfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hf\nd\n\017sfixed64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['example']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed64.example\032\004true' + _globals['_BOOLRULES'].fields_by_name['const']._loaded_options = None + _globals['_BOOLRULES'].fields_by_name['const']._serialized_options = b'\302Hp\nn\n\nbool.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_BOOLRULES'].fields_by_name['example']._loaded_options = None + _globals['_BOOLRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014bool.example\032\004true' + _globals['_STRINGRULES'].fields_by_name['const']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['const']._serialized_options = b'\302Ht\nr\n\014string.const\032bthis != getField(rules, \'const\') ? \'value must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['len']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['len']._serialized_options = b'\302Hn\nl\n\nstring.len\032^uint(this.size()) != rules.len ? \'value length must be %s characters\'.format([rules.len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['min_len']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['min_len']._serialized_options = b'\302H\203\001\n\200\001\n\016string.min_len\032nuint(this.size()) < rules.min_len ? \'value length must be at least %s characters\'.format([rules.min_len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['max_len']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['max_len']._serialized_options = b'\302H\201\001\n\177\n\016string.max_len\032muint(this.size()) > rules.max_len ? \'value length must be at most %s characters\'.format([rules.max_len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['len_bytes']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['len_bytes']._serialized_options = b'\302H\203\001\n\200\001\n\020string.len_bytes\032luint(bytes(this).size()) != rules.len_bytes ? \'value length must be %s bytes\'.format([rules.len_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['min_bytes']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['min_bytes']._serialized_options = b'\302H\213\001\n\210\001\n\020string.min_bytes\032tuint(bytes(this).size()) < rules.min_bytes ? \'value length must be at least %s bytes\'.format([rules.min_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['max_bytes']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['max_bytes']._serialized_options = b'\302H\212\001\n\207\001\n\020string.max_bytes\032suint(bytes(this).size()) > rules.max_bytes ? \'value length must be at most %s bytes\'.format([rules.max_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['pattern']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['pattern']._serialized_options = b'\302Hy\nw\n\016string.pattern\032e!this.matches(rules.pattern) ? \'value does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['prefix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['prefix']._serialized_options = b'\302Hq\no\n\rstring.prefix\032^!this.startsWith(rules.prefix) ? \'value does not have prefix `%s`\'.format([rules.prefix]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['suffix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['suffix']._serialized_options = b'\302Ho\nm\n\rstring.suffix\032\\!this.endsWith(rules.suffix) ? \'value does not have suffix `%s`\'.format([rules.suffix]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['contains']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['contains']._serialized_options = b'\302H{\ny\n\017string.contains\032f!this.contains(rules.contains) ? \'value does not contain substring `%s`\'.format([rules.contains]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['not_contains']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['not_contains']._serialized_options = b'\302H~\n|\n\023string.not_contains\032ethis.contains(rules.not_contains) ? \'value contains substring `%s`\'.format([rules.not_contains]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['in']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['in']._serialized_options = b'\302Hq\no\n\tstring.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rstring.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['email']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['email']._serialized_options = b'\302H\311\001\na\n\014string.email\022#value must be a valid email address\032,!rules.email || this == \'\' || this.isEmail()\nd\n\022string.email_empty\0222value is empty, which is not a valid email address\032\032!rules.email || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['hostname']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['hostname']._serialized_options = b'\302H\316\001\ne\n\017string.hostname\022\036value must be a valid hostname\0322!rules.hostname || this == \'\' || this.isHostname()\ne\n\025string.hostname_empty\022-value is empty, which is not a valid hostname\032\035!rules.hostname || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ip']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ip']._serialized_options = b'\302H\264\001\nU\n\tstring.ip\022 value must be a valid IP address\032&!rules.ip || this == \'\' || this.isIp()\n[\n\017string.ip_empty\022/value is empty, which is not a valid IP address\032\027!rules.ip || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv4']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\301\001\n\\\n\013string.ipv4\022\"value must be a valid IPv4 address\032)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\021string.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\031!rules.ipv4 || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv6']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\301\001\n\\\n\013string.ipv6\022\"value must be a valid IPv6 address\032)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\021string.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\031!rules.ipv6 || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['uri']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['uri']._serialized_options = b'\302H\253\001\nQ\n\nstring.uri\022\031value must be a valid URI\032(!rules.uri || this == \'\' || this.isUri()\nV\n\020string.uri_empty\022(value is empty, which is not a valid URI\032\030!rules.uri || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['uri_ref']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['uri_ref']._serialized_options = b'\302HZ\nX\n\016string.uri_ref\022#value must be a valid URI Reference\032!!rules.uri_ref || this.isUriRef()' + _globals['_STRINGRULES'].fields_by_name['address']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['address']._serialized_options = b'\302H\370\001\n\201\001\n\016string.address\022-value must be a valid hostname, or ip address\032@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\024string.address_empty\022!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\222\001\n string.ipv4_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv4 address with prefix length\032(!rules.ipv4_with_prefixlen || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._serialized_options = b'\302H\253\002\n\223\001\n\032string.ipv6_with_prefixlen\0225value must be a valid IPv6 address with prefix length\032>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\222\001\n string.ipv6_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv6 address with prefix length\032(!rules.ipv6_with_prefixlen || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ip_prefix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ip_prefix']._serialized_options = b'\302H\330\001\nl\n\020string.ip_prefix\022\037value must be a valid IP prefix\0327!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\026string.ip_prefix_empty\022.value is empty, which is not a valid IP prefix\032\036!rules.ip_prefix || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._serialized_options = b'\302H\347\001\nu\n\022string.ipv4_prefix\022!value must be a valid IPv4 prefix\032!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\032string.host_and_port_empty\0227value is empty, which is not a valid host and port pair\032\"!rules.host_and_port || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\355\004\n\360\001\n#string.well_known_regex.header_name\022&value must be a valid HTTP header name\032\240\001rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\215\001\n)string.well_known_regex.header_name_empty\0225value is empty, which is not a valid HTTP header name\032)rules.well_known_regex != 1 || this != \'\'\n\347\001\n$string.well_known_regex.header_value\022\'value must be a valid HTTP header value\032\225\001rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')' + _globals['_STRINGRULES'].fields_by_name['example']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016string.example\032\004true' + _globals['_BYTESRULES'].fields_by_name['const']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\013bytes.const\032]this != getField(rules, \'const\') ? \'value must be %x\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['len']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['len']._serialized_options = b'\302Hh\nf\n\tbytes.len\032Yuint(this.size()) != rules.len ? \'value length must be %s bytes\'.format([rules.len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['min_len']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['min_len']._serialized_options = b'\302H|\nz\n\rbytes.min_len\032iuint(this.size()) < rules.min_len ? \'value length must be at least %s bytes\'.format([rules.min_len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['max_len']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['max_len']._serialized_options = b'\302Ht\nr\n\rbytes.max_len\032auint(this.size()) > rules.max_len ? \'value must be at most %s bytes\'.format([rules.max_len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['pattern']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['pattern']._serialized_options = b'\302H|\nz\n\rbytes.pattern\032i!string(this).matches(rules.pattern) ? \'value must match regex pattern `%s`\'.format([rules.pattern]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['prefix']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['prefix']._serialized_options = b'\302Hn\nl\n\014bytes.prefix\032\\!this.startsWith(rules.prefix) ? \'value does not have prefix %x\'.format([rules.prefix]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['suffix']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['suffix']._serialized_options = b'\302Hl\nj\n\014bytes.suffix\032Z!this.endsWith(rules.suffix) ? \'value does not have suffix %x\'.format([rules.suffix]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['contains']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['contains']._serialized_options = b'\302Hn\nl\n\016bytes.contains\032Z!this.contains(rules.contains) ? \'value does not contain %x\'.format([rules.contains]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['in']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['in']._serialized_options = b'\302H\226\001\n\223\001\n\010bytes.in\032\206\001getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014bytes.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['ip']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['ip']._serialized_options = b'\302H\330\001\nt\n\010bytes.ip\022 value must be a valid IP address\032F!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\016bytes.ip_empty\022/value is empty, which is not a valid IP address\032\035!rules.ip || this.size() != 0' + _globals['_BYTESRULES'].fields_by_name['ipv4']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\317\001\ne\n\nbytes.ipv4\022\"value must be a valid IPv4 address\0323!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\020bytes.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\037!rules.ipv4 || this.size() != 0' + _globals['_BYTESRULES'].fields_by_name['ipv6']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\320\001\nf\n\nbytes.ipv6\022\"value must be a valid IPv6 address\0324!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\020bytes.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\037!rules.ipv6 || this.size() != 0' + _globals['_BYTESRULES'].fields_by_name['example']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rbytes.example\032\004true' + _globals['_ENUMRULES'].fields_by_name['const']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['const']._serialized_options = b'\302Hp\nn\n\nenum.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_ENUMRULES'].fields_by_name['in']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['in']._serialized_options = b'\302Ho\nm\n\007enum.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_ENUMRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['not_in']._serialized_options = b'\302Hb\n`\n\013enum.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_ENUMRULES'].fields_by_name['example']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014enum.example\032\004true' + _globals['_REPEATEDRULES'].fields_by_name['min_items']._loaded_options = None + _globals['_REPEATEDRULES'].fields_by_name['min_items']._serialized_options = b'\302H\206\001\n\203\001\n\022repeated.min_items\032muint(this.size()) < rules.min_items ? \'value must contain at least %d item(s)\'.format([rules.min_items]) : \'\'' + _globals['_REPEATEDRULES'].fields_by_name['max_items']._loaded_options = None + _globals['_REPEATEDRULES'].fields_by_name['max_items']._serialized_options = b'\302H\212\001\n\207\001\n\022repeated.max_items\032quint(this.size()) > rules.max_items ? \'value must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'' + _globals['_REPEATEDRULES'].fields_by_name['unique']._loaded_options = None + _globals['_REPEATEDRULES'].fields_by_name['unique']._serialized_options = b'\302H]\n[\n\017repeated.unique\022(repeated value must contain unique items\032\036!rules.unique || this.unique()' + _globals['_MAPRULES'].fields_by_name['min_pairs']._loaded_options = None + _globals['_MAPRULES'].fields_by_name['min_pairs']._serialized_options = b'\302Hy\nw\n\rmap.min_pairs\032fuint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'' + _globals['_MAPRULES'].fields_by_name['max_pairs']._loaded_options = None + _globals['_MAPRULES'].fields_by_name['max_pairs']._serialized_options = b'\302Hx\nv\n\rmap.max_pairs\032euint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['const']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['const']._serialized_options = b'\302Ht\nr\n\016duration.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['lt']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['lt']._serialized_options = b'\302H|\nz\n\013duration.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['lte']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['lte']._serialized_options = b'\302H\213\001\n\210\001\n\014duration.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['gt']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['gt']._serialized_options = b'\302H\223\007\n}\n\013duration.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016duration.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030duration.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017duration.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031duration.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['gte']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['gte']._serialized_options = b'\302H\336\007\n\213\001\n\014duration.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017duration.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031duration.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020duration.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032duration.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['in']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['in']._serialized_options = b'\302Hs\nq\n\013duration.in\032b!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['not_in']._serialized_options = b'\302Hf\nd\n\017duration.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['example']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020duration.example\032\004true' + _globals['_TIMESTAMPRULES'].fields_by_name['const']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['const']._serialized_options = b'\302Hu\ns\n\017timestamp.const\032`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lt']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lt']._serialized_options = b'\302H}\n{\n\014timestamp.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lte']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lte']._serialized_options = b'\302H\214\001\n\211\001\n\rtimestamp.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._serialized_options = b'\302HW\nU\n\020timestamp.lt_now\032A(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\230\007\n~\n\014timestamp.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\267\001\n\017timestamp.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\031timestamp.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\020timestamp.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\317\001\n\032timestamp.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gte']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gte']._serialized_options = b'\302H\343\007\n\214\001\n\rtimestamp.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\306\001\n\020timestamp.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\032timestamp.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\021timestamp.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\336\001\n\033timestamp.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._serialized_options = b'\302HZ\nX\n\020timestamp.gt_now\032D(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['within']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\210\001\n\205\001\n\020timestamp.within\032qthis < now-rules.within || this > now+rules.within ? \'value must be within %s of now\'.format([rules.within]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['example']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['example']._serialized_options = b'\302H\033\n\031\n\021timestamp.example\032\004true' + _globals['_IGNORE']._serialized_start=54134 + _globals['_IGNORE']._serialized_end=54295 + _globals['_KNOWNREGEX']._serialized_start=54297 + _globals['_KNOWNREGEX']._serialized_end=54407 + _globals['_RULE']._serialized_start=144 + _globals['_RULE']._serialized_end=224 + _globals['_MESSAGERULES']._serialized_start=226 + _globals['_MESSAGERULES']._serialized_end=348 + _globals['_MESSAGEONEOFRULE']._serialized_start=350 + _globals['_MESSAGEONEOFRULE']._serialized_end=420 + _globals['_ONEOFRULES']._serialized_start=422 + _globals['_ONEOFRULES']._serialized_end=462 + _globals['_FIELDRULES']._serialized_start=465 + _globals['_FIELDRULES']._serialized_end=1742 + _globals['_PREDEFINEDRULES']._serialized_start=1744 + _globals['_PREDEFINEDRULES']._serialized_end=1834 + _globals['_FLOATRULES']._serialized_start=1837 + _globals['_FLOATRULES']._serialized_end=4925 + _globals['_DOUBLERULES']._serialized_start=4928 + _globals['_DOUBLERULES']._serialized_end=8034 + _globals['_INT32RULES']._serialized_start=8037 + _globals['_INT32RULES']._serialized_end=10783 + _globals['_INT64RULES']._serialized_start=10786 + _globals['_INT64RULES']._serialized_end=13532 + _globals['_UINT32RULES']._serialized_start=13535 + _globals['_UINT32RULES']._serialized_end=16298 + _globals['_UINT64RULES']._serialized_start=16301 + _globals['_UINT64RULES']._serialized_end=19064 + _globals['_SINT32RULES']._serialized_start=19067 + _globals['_SINT32RULES']._serialized_end=21830 + _globals['_SINT64RULES']._serialized_start=21833 + _globals['_SINT64RULES']._serialized_end=24596 + _globals['_FIXED32RULES']._serialized_start=24599 + _globals['_FIXED32RULES']._serialized_end=27379 + _globals['_FIXED64RULES']._serialized_start=27382 + _globals['_FIXED64RULES']._serialized_end=30162 + _globals['_SFIXED32RULES']._serialized_start=30165 + _globals['_SFIXED32RULES']._serialized_end=32963 + _globals['_SFIXED64RULES']._serialized_start=32966 + _globals['_SFIXED64RULES']._serialized_end=35764 + _globals['_BOOLRULES']._serialized_start=35767 + _globals['_BOOLRULES']._serialized_end=35982 + _globals['_STRINGRULES']._serialized_start=35985 + _globals['_STRINGRULES']._serialized_end=43362 + _globals['_BYTESRULES']._serialized_start=43365 + _globals['_BYTESRULES']._serialized_end=45619 + _globals['_ENUMRULES']._serialized_start=45622 + _globals['_ENUMRULES']._serialized_end=46131 + _globals['_REPEATEDRULES']._serialized_start=46134 + _globals['_REPEATEDRULES']._serialized_end=46676 + _globals['_MAPRULES']._serialized_start=46679 + _globals['_MAPRULES']._serialized_end=47107 + _globals['_ANYRULES']._serialized_start=47109 + _globals['_ANYRULES']._serialized_end=47158 + _globals['_DURATIONRULES']._serialized_start=47161 + _globals['_DURATIONRULES']._serialized_end=50175 + _globals['_TIMESTAMPRULES']._serialized_start=50178 + _globals['_TIMESTAMPRULES']._serialized_end=53324 + _globals['_VIOLATIONS']._serialized_start=53326 + _globals['_VIOLATIONS']._serialized_end=53395 + _globals['_VIOLATION']._serialized_start=53398 + _globals['_VIOLATION']._serialized_end=53595 + _globals['_FIELDPATH']._serialized_start=53597 + _globals['_FIELDPATH']._serialized_end=53668 + _globals['_FIELDPATHELEMENT']._serialized_start=53671 + _globals['_FIELDPATHELEMENT']._serialized_end=54131 +# @@protoc_insertion_point(module_scope) diff --git a/python/lib/buf/validate/validate_pb2.pyi b/python/lib/buf/validate/validate_pb2.pyi new file mode 100644 index 000000000..be1fa0fed --- /dev/null +++ b/python/lib/buf/validate/validate_pb2.pyi @@ -0,0 +1,4085 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Copyright 2023-2025 Buf Technologies, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.descriptor_pb2 +import google.protobuf.duration_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.internal.extension_dict +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _Ignore: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _IgnoreEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Ignore.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + IGNORE_UNSPECIFIED: _Ignore.ValueType # 0 + """Ignore rules if the field tracks presence and is unset. This is the default + behavior. + + In proto3, only message fields, members of a Protobuf `oneof`, and fields + with the `optional` label track presence. Consequently, the following fields + are always validated, whether a value is set or not: + + ```proto + syntax="proto3"; + + message RulesApply { + string email = 1 [ + (buf.validate.field).string.email = true + ]; + int32 age = 2 [ + (buf.validate.field).int32.gt = 0 + ]; + repeated string labels = 3 [ + (buf.validate.field).repeated.min_items = 1 + ]; + } + ``` + + In contrast, the following fields track presence, and are only validated if + a value is set: + + ```proto + syntax="proto3"; + + message RulesApplyIfSet { + optional string email = 1 [ + (buf.validate.field).string.email = true + ]; + oneof ref { + string reference = 2 [ + (buf.validate.field).string.uuid = true + ]; + string name = 3 [ + (buf.validate.field).string.min_len = 4 + ]; + } + SomeMessage msg = 4 [ + (buf.validate.field).cel = {/* ... */} + ]; + } + ``` + + To ensure that such a field is set, add the `required` rule. + + To learn which fields track presence, see the + [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). + """ + IGNORE_IF_ZERO_VALUE: _Ignore.ValueType # 1 + """Ignore rules if the field is unset, or set to the zero value. + + The zero value depends on the field type: + - For strings, the zero value is the empty string. + - For bytes, the zero value is empty bytes. + - For bool, the zero value is false. + - For numeric types, the zero value is zero. + - For enums, the zero value is the first defined enum value. + - For repeated fields, the zero is an empty list. + - For map fields, the zero is an empty map. + - For message fields, absence of the message (typically a null-value) is considered zero value. + + For fields that track presence (e.g. adding the `optional` label in proto3), + this a no-op and behavior is the same as the default `IGNORE_UNSPECIFIED`. + """ + IGNORE_ALWAYS: _Ignore.ValueType # 3 + """Always ignore rules, including the `required` rule. + + This is useful for ignoring the rules of a referenced message, or to + temporarily ignore rules during development. + + ```proto + message MyMessage { + // The field's rules will always be ignored, including any validations + // on value's fields. + MyOtherMessage value = 1 [ + (buf.validate.field).ignore = IGNORE_ALWAYS + ]; + } + ``` + """ + +class Ignore(_Ignore, metaclass=_IgnoreEnumTypeWrapper): + """Specifies how `FieldRules.ignore` behaves, depending on the field's value, and + whether the field tracks presence. + """ + +IGNORE_UNSPECIFIED: Ignore.ValueType # 0 +"""Ignore rules if the field tracks presence and is unset. This is the default +behavior. + +In proto3, only message fields, members of a Protobuf `oneof`, and fields +with the `optional` label track presence. Consequently, the following fields +are always validated, whether a value is set or not: + +```proto +syntax="proto3"; + +message RulesApply { + string email = 1 [ + (buf.validate.field).string.email = true + ]; + int32 age = 2 [ + (buf.validate.field).int32.gt = 0 + ]; + repeated string labels = 3 [ + (buf.validate.field).repeated.min_items = 1 + ]; +} +``` + +In contrast, the following fields track presence, and are only validated if +a value is set: + +```proto +syntax="proto3"; + +message RulesApplyIfSet { + optional string email = 1 [ + (buf.validate.field).string.email = true + ]; + oneof ref { + string reference = 2 [ + (buf.validate.field).string.uuid = true + ]; + string name = 3 [ + (buf.validate.field).string.min_len = 4 + ]; + } + SomeMessage msg = 4 [ + (buf.validate.field).cel = {/* ... */} + ]; +} +``` + +To ensure that such a field is set, add the `required` rule. + +To learn which fields track presence, see the +[Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). +""" +IGNORE_IF_ZERO_VALUE: Ignore.ValueType # 1 +"""Ignore rules if the field is unset, or set to the zero value. + +The zero value depends on the field type: +- For strings, the zero value is the empty string. +- For bytes, the zero value is empty bytes. +- For bool, the zero value is false. +- For numeric types, the zero value is zero. +- For enums, the zero value is the first defined enum value. +- For repeated fields, the zero is an empty list. +- For map fields, the zero is an empty map. +- For message fields, absence of the message (typically a null-value) is considered zero value. + +For fields that track presence (e.g. adding the `optional` label in proto3), +this a no-op and behavior is the same as the default `IGNORE_UNSPECIFIED`. +""" +IGNORE_ALWAYS: Ignore.ValueType # 3 +"""Always ignore rules, including the `required` rule. + +This is useful for ignoring the rules of a referenced message, or to +temporarily ignore rules during development. + +```proto +message MyMessage { + // The field's rules will always be ignored, including any validations + // on value's fields. + MyOtherMessage value = 1 [ + (buf.validate.field).ignore = IGNORE_ALWAYS + ]; +} +``` +""" +global___Ignore = Ignore + +class _KnownRegex: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _KnownRegexEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KnownRegex.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + KNOWN_REGEX_UNSPECIFIED: _KnownRegex.ValueType # 0 + KNOWN_REGEX_HTTP_HEADER_NAME: _KnownRegex.ValueType # 1 + """HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2).""" + KNOWN_REGEX_HTTP_HEADER_VALUE: _KnownRegex.ValueType # 2 + """HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4).""" + +class KnownRegex(_KnownRegex, metaclass=_KnownRegexEnumTypeWrapper): + """KnownRegex contains some well-known patterns.""" + +KNOWN_REGEX_UNSPECIFIED: KnownRegex.ValueType # 0 +KNOWN_REGEX_HTTP_HEADER_NAME: KnownRegex.ValueType # 1 +"""HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2).""" +KNOWN_REGEX_HTTP_HEADER_VALUE: KnownRegex.ValueType # 2 +"""HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4).""" +global___KnownRegex = KnownRegex + +@typing.final +class Rule(google.protobuf.message.Message): + """`Rule` represents a validation rule written in the Common Expression + Language (CEL) syntax. Each Rule includes a unique identifier, an + optional error message, and the CEL expression to evaluate. For more + information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). + + ```proto + message Foo { + option (buf.validate.message).cel = { + id: "foo.bar" + message: "bar must be greater than 0" + expression: "this.bar > 0" + }; + int32 bar = 1; + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + EXPRESSION_FIELD_NUMBER: builtins.int + id: builtins.str + """`id` is a string that serves as a machine-readable name for this Rule. + It should be unique within its scope, which could be either a message or a field. + """ + message: builtins.str + """`message` is an optional field that provides a human-readable error message + for this Rule when the CEL expression evaluates to false. If a + non-empty message is provided, any strings resulting from the CEL + expression evaluation are ignored. + """ + expression: builtins.str + """`expression` is the actual CEL expression that will be evaluated for + validation. This string must resolve to either a boolean or a string + value. If the expression evaluates to false or a non-empty string, the + validation is considered failed, and the message is rejected. + """ + def __init__( + self, + *, + id: builtins.str | None = ..., + message: builtins.str | None = ..., + expression: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["expression", b"expression", "id", b"id", "message", b"message"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["expression", b"expression", "id", b"id", "message", b"message"]) -> None: ... + +global___Rule = Rule + +@typing.final +class MessageRules(google.protobuf.message.Message): + """MessageRules represents validation rules that are applied to the entire message. + It includes disabling options and a list of Rule messages representing Common Expression Language (CEL) validation rules. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CEL_FIELD_NUMBER: builtins.int + ONEOF_FIELD_NUMBER: builtins.int + @property + def cel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rule]: + """`cel` is a repeated field of type Rule. Each Rule specifies a validation rule to be applied to this message. + These rules are written in Common Expression Language (CEL) syntax. For more information, + [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). + + + ```proto + message MyMessage { + // The field `foo` must be greater than 42. + option (buf.validate.message).cel = { + id: "my_message.value", + message: "value must be greater than 42", + expression: "this.foo > 42", + }; + optional int32 foo = 1; + } + ``` + """ + + @property + def oneof(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageOneofRule]: + """`oneof` is a repeated field of type MessageOneofRule that specifies a list of fields + of which at most one can be present. If `required` is also specified, then exactly one + of the specified fields _must_ be present. + + This will enforce oneof-like constraints with a few features not provided by + actual Protobuf oneof declarations: + 1. Repeated and map fields are allowed in this validation. In a Protobuf oneof, + only scalar fields are allowed. + 2. Fields with implicit presence are allowed. In a Protobuf oneof, all member + fields have explicit presence. This means that, for the purpose of determining + how many fields are set, explicitly setting such a field to its zero value is + effectively the same as not setting it at all. + 3. This will always generate validation errors for a message unmarshalled from + serialized data that sets more than one field. With a Protobuf oneof, when + multiple fields are present in the serialized form, earlier values are usually + silently ignored when unmarshalling, with only the last field being set when + unmarshalling completes. + + Note that adding a field to a `oneof` will also set the IGNORE_IF_ZERO_VALUE on the fields. This means + only the field that is set will be validated and the unset fields are not validated according to the field rules. + This behavior can be overridden by setting `ignore` against a field. + + ```proto + message MyMessage { + // Only one of `field1` or `field2` _can_ be present in this message. + option (buf.validate.message).oneof = { fields: ["field1", "field2"] }; + // Exactly one of `field3` or `field4` _must_ be present in this message. + option (buf.validate.message).oneof = { fields: ["field3", "field4"], required: true }; + string field1 = 1; + bytes field2 = 2; + bool field3 = 3; + int32 field4 = 4; + } + ``` + """ + + def __init__( + self, + *, + cel: collections.abc.Iterable[global___Rule] | None = ..., + oneof: collections.abc.Iterable[global___MessageOneofRule] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["cel", b"cel", "oneof", b"oneof"]) -> None: ... + +global___MessageRules = MessageRules + +@typing.final +class MessageOneofRule(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FIELDS_FIELD_NUMBER: builtins.int + REQUIRED_FIELD_NUMBER: builtins.int + required: builtins.bool + """If true, one of the fields specified _must_ be set.""" + @property + def fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """A list of field names to include in the oneof. All field names must be + defined in the message. At least one field must be specified, and + duplicates are not permitted. + """ + + def __init__( + self, + *, + fields: collections.abc.Iterable[builtins.str] | None = ..., + required: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["required", b"required"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["fields", b"fields", "required", b"required"]) -> None: ... + +global___MessageOneofRule = MessageOneofRule + +@typing.final +class OneofRules(google.protobuf.message.Message): + """The `OneofRules` message type enables you to manage rules for + oneof fields in your protobuf messages. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REQUIRED_FIELD_NUMBER: builtins.int + required: builtins.bool + """If `required` is true, exactly one field of the oneof must be set. A + validation error is returned if no fields in the oneof are set. Further rules + should be placed on the fields themselves to ensure they are valid values, + such as `min_len` or `gt`. + + ```proto + message MyMessage { + oneof value { + // Either `a` or `b` must be set. If `a` is set, it must also be + // non-empty; whereas if `b` is set, it can still be an empty string. + option (buf.validate.oneof).required = true; + string a = 1 [(buf.validate.field).string.min_len = 1]; + string b = 2; + } + } + ``` + """ + def __init__( + self, + *, + required: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["required", b"required"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["required", b"required"]) -> None: ... + +global___OneofRules = OneofRules + +@typing.final +class FieldRules(google.protobuf.message.Message): + """FieldRules encapsulates the rules for each type of field. Depending on + the field, the correct set should be used to ensure proper validations. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CEL_FIELD_NUMBER: builtins.int + REQUIRED_FIELD_NUMBER: builtins.int + IGNORE_FIELD_NUMBER: builtins.int + FLOAT_FIELD_NUMBER: builtins.int + DOUBLE_FIELD_NUMBER: builtins.int + INT32_FIELD_NUMBER: builtins.int + INT64_FIELD_NUMBER: builtins.int + UINT32_FIELD_NUMBER: builtins.int + UINT64_FIELD_NUMBER: builtins.int + SINT32_FIELD_NUMBER: builtins.int + SINT64_FIELD_NUMBER: builtins.int + FIXED32_FIELD_NUMBER: builtins.int + FIXED64_FIELD_NUMBER: builtins.int + SFIXED32_FIELD_NUMBER: builtins.int + SFIXED64_FIELD_NUMBER: builtins.int + BOOL_FIELD_NUMBER: builtins.int + STRING_FIELD_NUMBER: builtins.int + BYTES_FIELD_NUMBER: builtins.int + ENUM_FIELD_NUMBER: builtins.int + REPEATED_FIELD_NUMBER: builtins.int + MAP_FIELD_NUMBER: builtins.int + ANY_FIELD_NUMBER: builtins.int + DURATION_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + required: builtins.bool + """If `required` is true, the field must be set. A validation error is returned + if the field is not set. + + ```proto + syntax="proto3"; + + message FieldsWithPresence { + // Requires any string to be set, including the empty string. + optional string link = 1 [ + (buf.validate.field).required = true + ]; + // Requires true or false to be set. + optional bool disabled = 2 [ + (buf.validate.field).required = true + ]; + // Requires a message to be set, including the empty message. + SomeMessage msg = 4 [ + (buf.validate.field).required = true + ]; + } + ``` + + All fields in the example above track presence. By default, Protovalidate + ignores rules on those fields if no value is set. `required` ensures that + the fields are set and valid. + + Fields that don't track presence are always validated by Protovalidate, + whether they are set or not. It is not necessary to add `required`. It + can be added to indicate that the field cannot be the zero value. + + ```proto + syntax="proto3"; + + message FieldsWithoutPresence { + // `string.email` always applies, even to an empty string. + string link = 1 [ + (buf.validate.field).string.email = true + ]; + // `repeated.min_items` always applies, even to an empty list. + repeated string labels = 2 [ + (buf.validate.field).repeated.min_items = 1 + ]; + // `required`, for fields that don't track presence, indicates + // the value of the field can't be the zero value. + int32 zero_value_not_allowed = 3 [ + (buf.validate.field).required = true + ]; + } + ``` + + To learn which fields track presence, see the + [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). + + Note: While field rules can be applied to repeated items, map keys, and map + values, the elements are always considered to be set. Consequently, + specifying `repeated.items.required` is redundant. + """ + ignore: global___Ignore.ValueType + """Ignore validation rules on the field if its value matches the specified + criteria. See the `Ignore` enum for details. + + ```proto + message UpdateRequest { + // The uri rule only applies if the field is not an empty string. + string url = 1 [ + (buf.validate.field).ignore = IGNORE_IF_ZERO_VALUE, + (buf.validate.field).string.uri = true + ]; + } + ``` + """ + @property + def cel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rule]: + """`cel` is a repeated field used to represent a textual expression + in the Common Expression Language (CEL) syntax. For more information, + [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). + + ```proto + message MyMessage { + // The field `value` must be greater than 42. + optional int32 value = 1 [(buf.validate.field).cel = { + id: "my_message.value", + message: "value must be greater than 42", + expression: "this > 42", + }]; + } + ``` + """ + + @property + def float(self) -> global___FloatRules: + """Scalar Field Types""" + + @property + def double(self) -> global___DoubleRules: ... + @property + def int32(self) -> global___Int32Rules: ... + @property + def int64(self) -> global___Int64Rules: ... + @property + def uint32(self) -> global___UInt32Rules: ... + @property + def uint64(self) -> global___UInt64Rules: ... + @property + def sint32(self) -> global___SInt32Rules: ... + @property + def sint64(self) -> global___SInt64Rules: ... + @property + def fixed32(self) -> global___Fixed32Rules: ... + @property + def fixed64(self) -> global___Fixed64Rules: ... + @property + def sfixed32(self) -> global___SFixed32Rules: ... + @property + def sfixed64(self) -> global___SFixed64Rules: ... + @property + def bool(self) -> global___BoolRules: ... + @property + def string(self) -> global___StringRules: ... + @property + def bytes(self) -> global___BytesRules: ... + @property + def enum(self) -> global___EnumRules: + """Complex Field Types""" + + @property + def repeated(self) -> global___RepeatedRules: ... + @property + def map(self) -> global___MapRules: ... + @property + def any(self) -> global___AnyRules: + """Well-Known Field Types""" + + @property + def duration(self) -> global___DurationRules: ... + @property + def timestamp(self) -> global___TimestampRules: ... + def __init__( + self, + *, + cel: collections.abc.Iterable[global___Rule] | None = ..., + required: builtins.bool | None = ..., + ignore: global___Ignore.ValueType | None = ..., + float: global___FloatRules | None = ..., + double: global___DoubleRules | None = ..., + int32: global___Int32Rules | None = ..., + int64: global___Int64Rules | None = ..., + uint32: global___UInt32Rules | None = ..., + uint64: global___UInt64Rules | None = ..., + sint32: global___SInt32Rules | None = ..., + sint64: global___SInt64Rules | None = ..., + fixed32: global___Fixed32Rules | None = ..., + fixed64: global___Fixed64Rules | None = ..., + sfixed32: global___SFixed32Rules | None = ..., + sfixed64: global___SFixed64Rules | None = ..., + bool: global___BoolRules | None = ..., + string: global___StringRules | None = ..., + bytes: global___BytesRules | None = ..., + enum: global___EnumRules | None = ..., + repeated: global___RepeatedRules | None = ..., + map: global___MapRules | None = ..., + any: global___AnyRules | None = ..., + duration: global___DurationRules | None = ..., + timestamp: global___TimestampRules | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["any", b"any", "bool", b"bool", "bytes", b"bytes", "double", b"double", "duration", b"duration", "enum", b"enum", "fixed32", b"fixed32", "fixed64", b"fixed64", "float", b"float", "ignore", b"ignore", "int32", b"int32", "int64", b"int64", "map", b"map", "repeated", b"repeated", "required", b"required", "sfixed32", b"sfixed32", "sfixed64", b"sfixed64", "sint32", b"sint32", "sint64", b"sint64", "string", b"string", "timestamp", b"timestamp", "type", b"type", "uint32", b"uint32", "uint64", b"uint64"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["any", b"any", "bool", b"bool", "bytes", b"bytes", "cel", b"cel", "double", b"double", "duration", b"duration", "enum", b"enum", "fixed32", b"fixed32", "fixed64", b"fixed64", "float", b"float", "ignore", b"ignore", "int32", b"int32", "int64", b"int64", "map", b"map", "repeated", b"repeated", "required", b"required", "sfixed32", b"sfixed32", "sfixed64", b"sfixed64", "sint32", b"sint32", "sint64", b"sint64", "string", b"string", "timestamp", b"timestamp", "type", b"type", "uint32", b"uint32", "uint64", b"uint64"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["float", "double", "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "bool", "string", "bytes", "enum", "repeated", "map", "any", "duration", "timestamp"] | None: ... + +global___FieldRules = FieldRules + +@typing.final +class PredefinedRules(google.protobuf.message.Message): + """PredefinedRules are custom rules that can be re-used with + multiple fields. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CEL_FIELD_NUMBER: builtins.int + @property + def cel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rule]: + """`cel` is a repeated field used to represent a textual expression + in the Common Expression Language (CEL) syntax. For more information, + [see our documentation](https://buf.build/docs/protovalidate/schemas/predefined-rules/). + + ```proto + message MyMessage { + // The field `value` must be greater than 42. + optional int32 value = 1 [(buf.validate.predefined).cel = { + id: "my_message.value", + message: "value must be greater than 42", + expression: "this > 42", + }]; + } + ``` + """ + + def __init__( + self, + *, + cel: collections.abc.Iterable[global___Rule] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["cel", b"cel"]) -> None: ... + +global___PredefinedRules = PredefinedRules + +@typing.final +class FloatRules(google.protobuf.message.Message): + """FloatRules describes the rules applied to `float` values. These + rules may also be applied to the `google.protobuf.FloatValue` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + FINITE_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.float + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyFloat { + // value must equal 42.0 + float value = 1 [(buf.validate.field).float.const = 42.0]; + } + ``` + """ + lt: builtins.float + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MyFloat { + // value must be less than 10.0 + float value = 1 [(buf.validate.field).float.lt = 10.0]; + } + ``` + """ + lte: builtins.float + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MyFloat { + // value must be less than or equal to 10.0 + float value = 1 [(buf.validate.field).float.lte = 10.0]; + } + ``` + """ + gt: builtins.float + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyFloat { + // value must be greater than 5.0 [float.gt] + float value = 1 [(buf.validate.field).float.gt = 5.0]; + + // value must be greater than 5 and less than 10.0 [float.gt_lt] + float other_value = 2 [(buf.validate.field).float = { gt: 5.0, lt: 10.0 }]; + + // value must be greater than 10 or less than 5.0 [float.gt_lt_exclusive] + float another_value = 3 [(buf.validate.field).float = { gt: 10.0, lt: 5.0 }]; + } + ``` + """ + gte: builtins.float + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyFloat { + // value must be greater than or equal to 5.0 [float.gte] + float value = 1 [(buf.validate.field).float.gte = 5.0]; + + // value must be greater than or equal to 5.0 and less than 10.0 [float.gte_lt] + float other_value = 2 [(buf.validate.field).float = { gte: 5.0, lt: 10.0 }]; + + // value must be greater than or equal to 10.0 or less than 5.0 [float.gte_lt_exclusive] + float another_value = 3 [(buf.validate.field).float = { gte: 10.0, lt: 5.0 }]; + } + ``` + """ + finite: builtins.bool + """`finite` requires the field value to be finite. If the field value is + infinite or NaN, an error message is generated. + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + """`in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MyFloat { + // value must not be in list [1.0, 2.0, 3.0] + float value = 1 [(buf.validate.field).float = { not_in: [1.0, 2.0, 3.0] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyFloat { + float value = 1 [ + (buf.validate.field).float.example = 1.0, + (buf.validate.field).float.example = inf + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.float | None = ..., + lt: builtins.float | None = ..., + lte: builtins.float | None = ..., + gt: builtins.float | None = ..., + gte: builtins.float | None = ..., + not_in: collections.abc.Iterable[builtins.float] | None = ..., + finite: builtins.bool | None = ..., + example: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___FloatRules = FloatRules + +@typing.final +class DoubleRules(google.protobuf.message.Message): + """DoubleRules describes the rules applied to `double` values. These + rules may also be applied to the `google.protobuf.DoubleValue` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + FINITE_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.float + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyDouble { + // value must equal 42.0 + double value = 1 [(buf.validate.field).double.const = 42.0]; + } + ``` + """ + lt: builtins.float + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified + value, an error message is generated. + + ```proto + message MyDouble { + // value must be less than 10.0 + double value = 1 [(buf.validate.field).double.lt = 10.0]; + } + ``` + """ + lte: builtins.float + """`lte` requires the field value to be less than or equal to the specified value + (field <= value). If the field value is greater than the specified value, + an error message is generated. + + ```proto + message MyDouble { + // value must be less than or equal to 10.0 + double value = 1 [(buf.validate.field).double.lte = 10.0]; + } + ``` + """ + gt: builtins.float + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or `lte`, + the range is reversed, and the field value must be outside the specified + range. If the field value doesn't meet the required conditions, an error + message is generated. + + ```proto + message MyDouble { + // value must be greater than 5.0 [double.gt] + double value = 1 [(buf.validate.field).double.gt = 5.0]; + + // value must be greater than 5 and less than 10.0 [double.gt_lt] + double other_value = 2 [(buf.validate.field).double = { gt: 5.0, lt: 10.0 }]; + + // value must be greater than 10 or less than 5.0 [double.gt_lt_exclusive] + double another_value = 3 [(buf.validate.field).double = { gt: 10.0, lt: 5.0 }]; + } + ``` + """ + gte: builtins.float + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyDouble { + // value must be greater than or equal to 5.0 [double.gte] + double value = 1 [(buf.validate.field).double.gte = 5.0]; + + // value must be greater than or equal to 5.0 and less than 10.0 [double.gte_lt] + double other_value = 2 [(buf.validate.field).double = { gte: 5.0, lt: 10.0 }]; + + // value must be greater than or equal to 10.0 or less than 5.0 [double.gte_lt_exclusive] + double another_value = 3 [(buf.validate.field).double = { gte: 10.0, lt: 5.0 }]; + } + ``` + """ + finite: builtins.bool + """`finite` requires the field value to be finite. If the field value is + infinite or NaN, an error message is generated. + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MyDouble { + // value must not be in list [1.0, 2.0, 3.0] + double value = 1 [(buf.validate.field).double = { not_in: [1.0, 2.0, 3.0] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyDouble { + double value = 1 [ + (buf.validate.field).double.example = 1.0, + (buf.validate.field).double.example = inf + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.float | None = ..., + lt: builtins.float | None = ..., + lte: builtins.float | None = ..., + gt: builtins.float | None = ..., + gte: builtins.float | None = ..., + not_in: collections.abc.Iterable[builtins.float] | None = ..., + finite: builtins.bool | None = ..., + example: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___DoubleRules = DoubleRules + +@typing.final +class Int32Rules(google.protobuf.message.Message): + """Int32Rules describes the rules applied to `int32` values. These + rules may also be applied to the `google.protobuf.Int32Value` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyInt32 { + // value must equal 42 + int32 value = 1 [(buf.validate.field).int32.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field + < value). If the field value is equal to or greater than the specified + value, an error message is generated. + + ```proto + message MyInt32 { + // value must be less than 10 + int32 value = 1 [(buf.validate.field).int32.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MyInt32 { + // value must be less than or equal to 10 + int32 value = 1 [(buf.validate.field).int32.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyInt32 { + // value must be greater than 5 [int32.gt] + int32 value = 1 [(buf.validate.field).int32.gt = 5]; + + // value must be greater than 5 and less than 10 [int32.gt_lt] + int32 other_value = 2 [(buf.validate.field).int32 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [int32.gt_lt_exclusive] + int32 another_value = 3 [(buf.validate.field).int32 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified value + (exclusive). If the value of `gte` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyInt32 { + // value must be greater than or equal to 5 [int32.gte] + int32 value = 1 [(buf.validate.field).int32.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [int32.gte_lt] + int32 other_value = 2 [(buf.validate.field).int32 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [int32.gte_lt_exclusive] + int32 another_value = 3 [(buf.validate.field).int32 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error message + is generated. + + ```proto + message MyInt32 { + // value must not be in list [1, 2, 3] + int32 value = 1 [(buf.validate.field).int32 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyInt32 { + int32 value = 1 [ + (buf.validate.field).int32.example = 1, + (buf.validate.field).int32.example = -10 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___Int32Rules = Int32Rules + +@typing.final +class Int64Rules(google.protobuf.message.Message): + """Int64Rules describes the rules applied to `int64` values. These + rules may also be applied to the `google.protobuf.Int64Value` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyInt64 { + // value must equal 42 + int64 value = 1 [(buf.validate.field).int64.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MyInt64 { + // value must be less than 10 + int64 value = 1 [(buf.validate.field).int64.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MyInt64 { + // value must be less than or equal to 10 + int64 value = 1 [(buf.validate.field).int64.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyInt64 { + // value must be greater than 5 [int64.gt] + int64 value = 1 [(buf.validate.field).int64.gt = 5]; + + // value must be greater than 5 and less than 10 [int64.gt_lt] + int64 other_value = 2 [(buf.validate.field).int64 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [int64.gt_lt_exclusive] + int64 another_value = 3 [(buf.validate.field).int64 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyInt64 { + // value must be greater than or equal to 5 [int64.gte] + int64 value = 1 [(buf.validate.field).int64.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [int64.gte_lt] + int64 other_value = 2 [(buf.validate.field).int64 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [int64.gte_lt_exclusive] + int64 another_value = 3 [(buf.validate.field).int64 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MyInt64 { + // value must not be in list [1, 2, 3] + int64 value = 1 [(buf.validate.field).int64 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyInt64 { + int64 value = 1 [ + (buf.validate.field).int64.example = 1, + (buf.validate.field).int64.example = -10 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___Int64Rules = Int64Rules + +@typing.final +class UInt32Rules(google.protobuf.message.Message): + """UInt32Rules describes the rules applied to `uint32` values. These + rules may also be applied to the `google.protobuf.UInt32Value` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyUInt32 { + // value must equal 42 + uint32 value = 1 [(buf.validate.field).uint32.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MyUInt32 { + // value must be less than 10 + uint32 value = 1 [(buf.validate.field).uint32.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MyUInt32 { + // value must be less than or equal to 10 + uint32 value = 1 [(buf.validate.field).uint32.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyUInt32 { + // value must be greater than 5 [uint32.gt] + uint32 value = 1 [(buf.validate.field).uint32.gt = 5]; + + // value must be greater than 5 and less than 10 [uint32.gt_lt] + uint32 other_value = 2 [(buf.validate.field).uint32 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [uint32.gt_lt_exclusive] + uint32 another_value = 3 [(buf.validate.field).uint32 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyUInt32 { + // value must be greater than or equal to 5 [uint32.gte] + uint32 value = 1 [(buf.validate.field).uint32.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [uint32.gte_lt] + uint32 other_value = 2 [(buf.validate.field).uint32 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [uint32.gte_lt_exclusive] + uint32 another_value = 3 [(buf.validate.field).uint32 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MyUInt32 { + // value must not be in list [1, 2, 3] + uint32 value = 1 [(buf.validate.field).uint32 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyUInt32 { + uint32 value = 1 [ + (buf.validate.field).uint32.example = 1, + (buf.validate.field).uint32.example = 10 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___UInt32Rules = UInt32Rules + +@typing.final +class UInt64Rules(google.protobuf.message.Message): + """UInt64Rules describes the rules applied to `uint64` values. These + rules may also be applied to the `google.protobuf.UInt64Value` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyUInt64 { + // value must equal 42 + uint64 value = 1 [(buf.validate.field).uint64.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MyUInt64 { + // value must be less than 10 + uint64 value = 1 [(buf.validate.field).uint64.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MyUInt64 { + // value must be less than or equal to 10 + uint64 value = 1 [(buf.validate.field).uint64.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyUInt64 { + // value must be greater than 5 [uint64.gt] + uint64 value = 1 [(buf.validate.field).uint64.gt = 5]; + + // value must be greater than 5 and less than 10 [uint64.gt_lt] + uint64 other_value = 2 [(buf.validate.field).uint64 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [uint64.gt_lt_exclusive] + uint64 another_value = 3 [(buf.validate.field).uint64 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyUInt64 { + // value must be greater than or equal to 5 [uint64.gte] + uint64 value = 1 [(buf.validate.field).uint64.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [uint64.gte_lt] + uint64 other_value = 2 [(buf.validate.field).uint64 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [uint64.gte_lt_exclusive] + uint64 another_value = 3 [(buf.validate.field).uint64 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MyUInt64 { + // value must not be in list [1, 2, 3] + uint64 value = 1 [(buf.validate.field).uint64 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyUInt64 { + uint64 value = 1 [ + (buf.validate.field).uint64.example = 1, + (buf.validate.field).uint64.example = -10 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___UInt64Rules = UInt64Rules + +@typing.final +class SInt32Rules(google.protobuf.message.Message): + """SInt32Rules describes the rules applied to `sint32` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MySInt32 { + // value must equal 42 + sint32 value = 1 [(buf.validate.field).sint32.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field + < value). If the field value is equal to or greater than the specified + value, an error message is generated. + + ```proto + message MySInt32 { + // value must be less than 10 + sint32 value = 1 [(buf.validate.field).sint32.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MySInt32 { + // value must be less than or equal to 10 + sint32 value = 1 [(buf.validate.field).sint32.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySInt32 { + // value must be greater than 5 [sint32.gt] + sint32 value = 1 [(buf.validate.field).sint32.gt = 5]; + + // value must be greater than 5 and less than 10 [sint32.gt_lt] + sint32 other_value = 2 [(buf.validate.field).sint32 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [sint32.gt_lt_exclusive] + sint32 another_value = 3 [(buf.validate.field).sint32 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySInt32 { + // value must be greater than or equal to 5 [sint32.gte] + sint32 value = 1 [(buf.validate.field).sint32.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [sint32.gte_lt] + sint32 other_value = 2 [(buf.validate.field).sint32 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [sint32.gte_lt_exclusive] + sint32 another_value = 3 [(buf.validate.field).sint32 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MySInt32 { + // value must not be in list [1, 2, 3] + sint32 value = 1 [(buf.validate.field).sint32 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MySInt32 { + sint32 value = 1 [ + (buf.validate.field).sint32.example = 1, + (buf.validate.field).sint32.example = -10 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___SInt32Rules = SInt32Rules + +@typing.final +class SInt64Rules(google.protobuf.message.Message): + """SInt64Rules describes the rules applied to `sint64` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MySInt64 { + // value must equal 42 + sint64 value = 1 [(buf.validate.field).sint64.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field + < value). If the field value is equal to or greater than the specified + value, an error message is generated. + + ```proto + message MySInt64 { + // value must be less than 10 + sint64 value = 1 [(buf.validate.field).sint64.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MySInt64 { + // value must be less than or equal to 10 + sint64 value = 1 [(buf.validate.field).sint64.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySInt64 { + // value must be greater than 5 [sint64.gt] + sint64 value = 1 [(buf.validate.field).sint64.gt = 5]; + + // value must be greater than 5 and less than 10 [sint64.gt_lt] + sint64 other_value = 2 [(buf.validate.field).sint64 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [sint64.gt_lt_exclusive] + sint64 another_value = 3 [(buf.validate.field).sint64 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySInt64 { + // value must be greater than or equal to 5 [sint64.gte] + sint64 value = 1 [(buf.validate.field).sint64.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [sint64.gte_lt] + sint64 other_value = 2 [(buf.validate.field).sint64 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [sint64.gte_lt_exclusive] + sint64 another_value = 3 [(buf.validate.field).sint64 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MySInt64 { + // value must not be in list [1, 2, 3] + sint64 value = 1 [(buf.validate.field).sint64 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MySInt64 { + sint64 value = 1 [ + (buf.validate.field).sint64.example = 1, + (buf.validate.field).sint64.example = -10 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___SInt64Rules = SInt64Rules + +@typing.final +class Fixed32Rules(google.protobuf.message.Message): + """Fixed32Rules describes the rules applied to `fixed32` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. + If the field value doesn't match, an error message is generated. + + ```proto + message MyFixed32 { + // value must equal 42 + fixed32 value = 1 [(buf.validate.field).fixed32.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MyFixed32 { + // value must be less than 10 + fixed32 value = 1 [(buf.validate.field).fixed32.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MyFixed32 { + // value must be less than or equal to 10 + fixed32 value = 1 [(buf.validate.field).fixed32.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyFixed32 { + // value must be greater than 5 [fixed32.gt] + fixed32 value = 1 [(buf.validate.field).fixed32.gt = 5]; + + // value must be greater than 5 and less than 10 [fixed32.gt_lt] + fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [fixed32.gt_lt_exclusive] + fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyFixed32 { + // value must be greater than or equal to 5 [fixed32.gte] + fixed32 value = 1 [(buf.validate.field).fixed32.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [fixed32.gte_lt] + fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [fixed32.gte_lt_exclusive] + fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MyFixed32 { + // value must not be in list [1, 2, 3] + fixed32 value = 1 [(buf.validate.field).fixed32 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyFixed32 { + fixed32 value = 1 [ + (buf.validate.field).fixed32.example = 1, + (buf.validate.field).fixed32.example = 2 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___Fixed32Rules = Fixed32Rules + +@typing.final +class Fixed64Rules(google.protobuf.message.Message): + """Fixed64Rules describes the rules applied to `fixed64` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyFixed64 { + // value must equal 42 + fixed64 value = 1 [(buf.validate.field).fixed64.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MyFixed64 { + // value must be less than 10 + fixed64 value = 1 [(buf.validate.field).fixed64.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MyFixed64 { + // value must be less than or equal to 10 + fixed64 value = 1 [(buf.validate.field).fixed64.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyFixed64 { + // value must be greater than 5 [fixed64.gt] + fixed64 value = 1 [(buf.validate.field).fixed64.gt = 5]; + + // value must be greater than 5 and less than 10 [fixed64.gt_lt] + fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [fixed64.gt_lt_exclusive] + fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyFixed64 { + // value must be greater than or equal to 5 [fixed64.gte] + fixed64 value = 1 [(buf.validate.field).fixed64.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [fixed64.gte_lt] + fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [fixed64.gte_lt_exclusive] + fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MyFixed64 { + // value must not be in list [1, 2, 3] + fixed64 value = 1 [(buf.validate.field).fixed64 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyFixed64 { + fixed64 value = 1 [ + (buf.validate.field).fixed64.example = 1, + (buf.validate.field).fixed64.example = 2 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___Fixed64Rules = Fixed64Rules + +@typing.final +class SFixed32Rules(google.protobuf.message.Message): + """SFixed32Rules describes the rules applied to `fixed32` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MySFixed32 { + // value must equal 42 + sfixed32 value = 1 [(buf.validate.field).sfixed32.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MySFixed32 { + // value must be less than 10 + sfixed32 value = 1 [(buf.validate.field).sfixed32.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MySFixed32 { + // value must be less than or equal to 10 + sfixed32 value = 1 [(buf.validate.field).sfixed32.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySFixed32 { + // value must be greater than 5 [sfixed32.gt] + sfixed32 value = 1 [(buf.validate.field).sfixed32.gt = 5]; + + // value must be greater than 5 and less than 10 [sfixed32.gt_lt] + sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [sfixed32.gt_lt_exclusive] + sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySFixed32 { + // value must be greater than or equal to 5 [sfixed32.gte] + sfixed32 value = 1 [(buf.validate.field).sfixed32.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [sfixed32.gte_lt] + sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [sfixed32.gte_lt_exclusive] + sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MySFixed32 { + // value must not be in list [1, 2, 3] + sfixed32 value = 1 [(buf.validate.field).sfixed32 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MySFixed32 { + sfixed32 value = 1 [ + (buf.validate.field).sfixed32.example = 1, + (buf.validate.field).sfixed32.example = 2 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___SFixed32Rules = SFixed32Rules + +@typing.final +class SFixed64Rules(google.protobuf.message.Message): + """SFixed64Rules describes the rules applied to `fixed64` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MySFixed64 { + // value must equal 42 + sfixed64 value = 1 [(buf.validate.field).sfixed64.const = 42]; + } + ``` + """ + lt: builtins.int + """`lt` requires the field value to be less than the specified value (field < + value). If the field value is equal to or greater than the specified value, + an error message is generated. + + ```proto + message MySFixed64 { + // value must be less than 10 + sfixed64 value = 1 [(buf.validate.field).sfixed64.lt = 10]; + } + ``` + """ + lte: builtins.int + """`lte` requires the field value to be less than or equal to the specified + value (field <= value). If the field value is greater than the specified + value, an error message is generated. + + ```proto + message MySFixed64 { + // value must be less than or equal to 10 + sfixed64 value = 1 [(buf.validate.field).sfixed64.lte = 10]; + } + ``` + """ + gt: builtins.int + """`gt` requires the field value to be greater than the specified value + (exclusive). If the value of `gt` is larger than a specified `lt` or + `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySFixed64 { + // value must be greater than 5 [sfixed64.gt] + sfixed64 value = 1 [(buf.validate.field).sfixed64.gt = 5]; + + // value must be greater than 5 and less than 10 [sfixed64.gt_lt] + sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gt: 5, lt: 10 }]; + + // value must be greater than 10 or less than 5 [sfixed64.gt_lt_exclusive] + sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gt: 10, lt: 5 }]; + } + ``` + """ + gte: builtins.int + """`gte` requires the field value to be greater than or equal to the specified + value (exclusive). If the value of `gte` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MySFixed64 { + // value must be greater than or equal to 5 [sfixed64.gte] + sfixed64 value = 1 [(buf.validate.field).sfixed64.gte = 5]; + + // value must be greater than or equal to 5 and less than 10 [sfixed64.gte_lt] + sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gte: 5, lt: 10 }]; + + // value must be greater than or equal to 10 or less than 5 [sfixed64.gte_lt_exclusive] + sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gte: 10, lt: 5 }]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to not be equal to any of the specified + values. If the field value is one of the specified values, an error + message is generated. + + ```proto + message MySFixed64 { + // value must not be in list [1, 2, 3] + sfixed64 value = 1 [(buf.validate.field).sfixed64 = { not_in: [1, 2, 3] }]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MySFixed64 { + sfixed64 value = 1 [ + (buf.validate.field).sfixed64.example = 1, + (buf.validate.field).sfixed64.example = 2 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + lt: builtins.int | None = ..., + lte: builtins.int | None = ..., + gt: builtins.int | None = ..., + gte: builtins.int | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___SFixed64Rules = SFixed64Rules + +@typing.final +class BoolRules(google.protobuf.message.Message): + """BoolRules describes the rules applied to `bool` values. These rules + may also be applied to the `google.protobuf.BoolValue` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.bool + """`const` requires the field value to exactly match the specified boolean value. + If the field value doesn't match, an error message is generated. + + ```proto + message MyBool { + // value must equal true + bool value = 1 [(buf.validate.field).bool.const = true]; + } + ``` + """ + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyBool { + bool value = 1 [ + (buf.validate.field).bool.example = 1, + (buf.validate.field).bool.example = 2 + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.bool | None = ..., + example: collections.abc.Iterable[builtins.bool] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example"]) -> None: ... + +global___BoolRules = BoolRules + +@typing.final +class StringRules(google.protobuf.message.Message): + """StringRules describes the rules applied to `string` values These + rules may also be applied to the `google.protobuf.StringValue` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LEN_FIELD_NUMBER: builtins.int + MIN_LEN_FIELD_NUMBER: builtins.int + MAX_LEN_FIELD_NUMBER: builtins.int + LEN_BYTES_FIELD_NUMBER: builtins.int + MIN_BYTES_FIELD_NUMBER: builtins.int + MAX_BYTES_FIELD_NUMBER: builtins.int + PATTERN_FIELD_NUMBER: builtins.int + PREFIX_FIELD_NUMBER: builtins.int + SUFFIX_FIELD_NUMBER: builtins.int + CONTAINS_FIELD_NUMBER: builtins.int + NOT_CONTAINS_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + HOSTNAME_FIELD_NUMBER: builtins.int + IP_FIELD_NUMBER: builtins.int + IPV4_FIELD_NUMBER: builtins.int + IPV6_FIELD_NUMBER: builtins.int + URI_FIELD_NUMBER: builtins.int + URI_REF_FIELD_NUMBER: builtins.int + ADDRESS_FIELD_NUMBER: builtins.int + UUID_FIELD_NUMBER: builtins.int + TUUID_FIELD_NUMBER: builtins.int + IP_WITH_PREFIXLEN_FIELD_NUMBER: builtins.int + IPV4_WITH_PREFIXLEN_FIELD_NUMBER: builtins.int + IPV6_WITH_PREFIXLEN_FIELD_NUMBER: builtins.int + IP_PREFIX_FIELD_NUMBER: builtins.int + IPV4_PREFIX_FIELD_NUMBER: builtins.int + IPV6_PREFIX_FIELD_NUMBER: builtins.int + HOST_AND_PORT_FIELD_NUMBER: builtins.int + WELL_KNOWN_REGEX_FIELD_NUMBER: builtins.int + STRICT_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.str + """`const` requires the field value to exactly match the specified value. If + the field value doesn't match, an error message is generated. + + ```proto + message MyString { + // value must equal `hello` + string value = 1 [(buf.validate.field).string.const = "hello"]; + } + ``` + """ + len: builtins.int + """`len` dictates that the field value must have the specified + number of characters (Unicode code points), which may differ from the number + of bytes in the string. If the field value does not meet the specified + length, an error message will be generated. + + ```proto + message MyString { + // value length must be 5 characters + string value = 1 [(buf.validate.field).string.len = 5]; + } + ``` + """ + min_len: builtins.int + """`min_len` specifies that the field value must have at least the specified + number of characters (Unicode code points), which may differ from the number + of bytes in the string. If the field value contains fewer characters, an error + message will be generated. + + ```proto + message MyString { + // value length must be at least 3 characters + string value = 1 [(buf.validate.field).string.min_len = 3]; + } + ``` + """ + max_len: builtins.int + """`max_len` specifies that the field value must have no more than the specified + number of characters (Unicode code points), which may differ from the + number of bytes in the string. If the field value contains more characters, + an error message will be generated. + + ```proto + message MyString { + // value length must be at most 10 characters + string value = 1 [(buf.validate.field).string.max_len = 10]; + } + ``` + """ + len_bytes: builtins.int + """`len_bytes` dictates that the field value must have the specified number of + bytes. If the field value does not match the specified length in bytes, + an error message will be generated. + + ```proto + message MyString { + // value length must be 6 bytes + string value = 1 [(buf.validate.field).string.len_bytes = 6]; + } + ``` + """ + min_bytes: builtins.int + """`min_bytes` specifies that the field value must have at least the specified + number of bytes. If the field value contains fewer bytes, an error message + will be generated. + + ```proto + message MyString { + // value length must be at least 4 bytes + string value = 1 [(buf.validate.field).string.min_bytes = 4]; + } + + ``` + """ + max_bytes: builtins.int + """`max_bytes` specifies that the field value must have no more than the + specified number of bytes. If the field value contains more bytes, an + error message will be generated. + + ```proto + message MyString { + // value length must be at most 8 bytes + string value = 1 [(buf.validate.field).string.max_bytes = 8]; + } + ``` + """ + pattern: builtins.str + """`pattern` specifies that the field value must match the specified + regular expression (RE2 syntax), with the expression provided without any + delimiters. If the field value doesn't match the regular expression, an + error message will be generated. + + ```proto + message MyString { + // value does not match regex pattern `^[a-zA-Z]//$` + string value = 1 [(buf.validate.field).string.pattern = "^[a-zA-Z]//$"]; + } + ``` + """ + prefix: builtins.str + """`prefix` specifies that the field value must have the + specified substring at the beginning of the string. If the field value + doesn't start with the specified prefix, an error message will be + generated. + + ```proto + message MyString { + // value does not have prefix `pre` + string value = 1 [(buf.validate.field).string.prefix = "pre"]; + } + ``` + """ + suffix: builtins.str + """`suffix` specifies that the field value must have the + specified substring at the end of the string. If the field value doesn't + end with the specified suffix, an error message will be generated. + + ```proto + message MyString { + // value does not have suffix `post` + string value = 1 [(buf.validate.field).string.suffix = "post"]; + } + ``` + """ + contains: builtins.str + """`contains` specifies that the field value must have the + specified substring anywhere in the string. If the field value doesn't + contain the specified substring, an error message will be generated. + + ```proto + message MyString { + // value does not contain substring `inside`. + string value = 1 [(buf.validate.field).string.contains = "inside"]; + } + ``` + """ + not_contains: builtins.str + """`not_contains` specifies that the field value must not have the + specified substring anywhere in the string. If the field value contains + the specified substring, an error message will be generated. + + ```proto + message MyString { + // value contains substring `inside`. + string value = 1 [(buf.validate.field).string.not_contains = "inside"]; + } + ``` + """ + email: builtins.bool + """`email` specifies that the field value must be a valid email address, for + example "foo@example.com". + + Conforms to the definition for a valid email address from the [HTML standard](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address). + Note that this standard willfully deviates from [RFC 5322](https://datatracker.ietf.org/doc/html/rfc5322), + which allows many unexpected forms of email addresses and will easily match + a typographical error. + + If the field value isn't a valid email address, an error message will be generated. + + ```proto + message MyString { + // value must be a valid email address + string value = 1 [(buf.validate.field).string.email = true]; + } + ``` + """ + hostname: builtins.bool + """`hostname` specifies that the field value must be a valid hostname, for + example "foo.example.com". + + A valid hostname follows the rules below: + - The name consists of one or more labels, separated by a dot ("."). + - Each label can be 1 to 63 alphanumeric characters. + - A label can contain hyphens ("-"), but must not start or end with a hyphen. + - The right-most label must not be digits only. + - The name can have a trailing dot—for example, "foo.example.com.". + - The name can be 253 characters at most, excluding the optional trailing dot. + + If the field value isn't a valid hostname, an error message will be generated. + + ```proto + message MyString { + // value must be a valid hostname + string value = 1 [(buf.validate.field).string.hostname = true]; + } + ``` + """ + ip: builtins.bool + """`ip` specifies that the field value must be a valid IP (v4 or v6) address. + + IPv4 addresses are expected in the dotted decimal format—for example, "192.168.5.21". + IPv6 addresses are expected in their text representation—for example, "::1", + or "2001:0DB8:ABCD:0012::0". + + Both formats are well-defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). + Zone identifiers for IPv6 addresses (for example, "fe80::a%en1") are supported. + + If the field value isn't a valid IP address, an error message will be + generated. + + ```proto + message MyString { + // value must be a valid IP address + string value = 1 [(buf.validate.field).string.ip = true]; + } + ``` + """ + ipv4: builtins.bool + """`ipv4` specifies that the field value must be a valid IPv4 address—for + example "192.168.5.21". If the field value isn't a valid IPv4 address, an + error message will be generated. + + ```proto + message MyString { + // value must be a valid IPv4 address + string value = 1 [(buf.validate.field).string.ipv4 = true]; + } + ``` + """ + ipv6: builtins.bool + """`ipv6` specifies that the field value must be a valid IPv6 address—for + example "::1", or "d7a:115c:a1e0:ab12:4843:cd96:626b:430b". If the field + value is not a valid IPv6 address, an error message will be generated. + + ```proto + message MyString { + // value must be a valid IPv6 address + string value = 1 [(buf.validate.field).string.ipv6 = true]; + } + ``` + """ + uri: builtins.bool + """`uri` specifies that the field value must be a valid URI, for example + "https://example.com/foo/bar?baz=quux#frag". + + URI is defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). + Zone Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)). + + If the field value isn't a valid URI, an error message will be generated. + + ```proto + message MyString { + // value must be a valid URI + string value = 1 [(buf.validate.field).string.uri = true]; + } + ``` + """ + uri_ref: builtins.bool + """`uri_ref` specifies that the field value must be a valid URI Reference—either + a URI such as "https://example.com/foo/bar?baz=quux#frag", or a Relative + Reference such as "./foo/bar?query". + + URI, URI Reference, and Relative Reference are defined in the internet + standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). Zone + Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)). + + If the field value isn't a valid URI Reference, an error message will be + generated. + + ```proto + message MyString { + // value must be a valid URI Reference + string value = 1 [(buf.validate.field).string.uri_ref = true]; + } + ``` + """ + address: builtins.bool + """`address` specifies that the field value must be either a valid hostname + (for example, "example.com"), or a valid IP (v4 or v6) address (for example, + "192.168.0.1", or "::1"). If the field value isn't a valid hostname or IP, + an error message will be generated. + + ```proto + message MyString { + // value must be a valid hostname, or ip address + string value = 1 [(buf.validate.field).string.address = true]; + } + ``` + """ + uuid: builtins.bool + """`uuid` specifies that the field value must be a valid UUID as defined by + [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2). If the + field value isn't a valid UUID, an error message will be generated. + + ```proto + message MyString { + // value must be a valid UUID + string value = 1 [(buf.validate.field).string.uuid = true]; + } + ``` + """ + tuuid: builtins.bool + """`tuuid` (trimmed UUID) specifies that the field value must be a valid UUID as + defined by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2) with all dashes + omitted. If the field value isn't a valid UUID without dashes, an error message + will be generated. + + ```proto + message MyString { + // value must be a valid trimmed UUID + string value = 1 [(buf.validate.field).string.tuuid = true]; + } + ``` + """ + ip_with_prefixlen: builtins.bool + """`ip_with_prefixlen` specifies that the field value must be a valid IP + (v4 or v6) address with prefix length—for example, "192.168.5.21/16" or + "2001:0DB8:ABCD:0012::F1/64". If the field value isn't a valid IP with + prefix length, an error message will be generated. + + ```proto + message MyString { + // value must be a valid IP with prefix length + string value = 1 [(buf.validate.field).string.ip_with_prefixlen = true]; + } + ``` + """ + ipv4_with_prefixlen: builtins.bool + """`ipv4_with_prefixlen` specifies that the field value must be a valid + IPv4 address with prefix length—for example, "192.168.5.21/16". If the + field value isn't a valid IPv4 address with prefix length, an error + message will be generated. + + ```proto + message MyString { + // value must be a valid IPv4 address with prefix length + string value = 1 [(buf.validate.field).string.ipv4_with_prefixlen = true]; + } + ``` + """ + ipv6_with_prefixlen: builtins.bool + """`ipv6_with_prefixlen` specifies that the field value must be a valid + IPv6 address with prefix length—for example, "2001:0DB8:ABCD:0012::F1/64". + If the field value is not a valid IPv6 address with prefix length, + an error message will be generated. + + ```proto + message MyString { + // value must be a valid IPv6 address prefix length + string value = 1 [(buf.validate.field).string.ipv6_with_prefixlen = true]; + } + ``` + """ + ip_prefix: builtins.bool + """`ip_prefix` specifies that the field value must be a valid IP (v4 or v6) + prefix—for example, "192.168.0.0/16" or "2001:0DB8:ABCD:0012::0/64". + + The prefix must have all zeros for the unmasked bits. For example, + "2001:0DB8:ABCD:0012::0/64" designates the left-most 64 bits for the + prefix, and the remaining 64 bits must be zero. + + If the field value isn't a valid IP prefix, an error message will be + generated. + + ```proto + message MyString { + // value must be a valid IP prefix + string value = 1 [(buf.validate.field).string.ip_prefix = true]; + } + ``` + """ + ipv4_prefix: builtins.bool + """`ipv4_prefix` specifies that the field value must be a valid IPv4 + prefix, for example "192.168.0.0/16". + + The prefix must have all zeros for the unmasked bits. For example, + "192.168.0.0/16" designates the left-most 16 bits for the prefix, + and the remaining 16 bits must be zero. + + If the field value isn't a valid IPv4 prefix, an error message + will be generated. + + ```proto + message MyString { + // value must be a valid IPv4 prefix + string value = 1 [(buf.validate.field).string.ipv4_prefix = true]; + } + ``` + """ + ipv6_prefix: builtins.bool + """`ipv6_prefix` specifies that the field value must be a valid IPv6 prefix—for + example, "2001:0DB8:ABCD:0012::0/64". + + The prefix must have all zeros for the unmasked bits. For example, + "2001:0DB8:ABCD:0012::0/64" designates the left-most 64 bits for the + prefix, and the remaining 64 bits must be zero. + + If the field value is not a valid IPv6 prefix, an error message will be + generated. + + ```proto + message MyString { + // value must be a valid IPv6 prefix + string value = 1 [(buf.validate.field).string.ipv6_prefix = true]; + } + ``` + """ + host_and_port: builtins.bool + """`host_and_port` specifies that the field value must be valid host/port + pair—for example, "example.com:8080". + + The host can be one of: + - An IPv4 address in dotted decimal format—for example, "192.168.5.21". + - An IPv6 address enclosed in square brackets—for example, "[2001:0DB8:ABCD:0012::F1]". + - A hostname—for example, "example.com". + + The port is separated by a colon. It must be non-empty, with a decimal number + in the range of 0-65535, inclusive. + """ + well_known_regex: global___KnownRegex.ValueType + """`well_known_regex` specifies a common well-known pattern + defined as a regex. If the field value doesn't match the well-known + regex, an error message will be generated. + + ```proto + message MyString { + // value must be a valid HTTP header value + string value = 1 [(buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_VALUE]; + } + ``` + + #### KnownRegex + + `well_known_regex` contains some well-known patterns. + + | Name | Number | Description | + |-------------------------------|--------|-------------------------------------------| + | KNOWN_REGEX_UNSPECIFIED | 0 | | + | KNOWN_REGEX_HTTP_HEADER_NAME | 1 | HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2) | + | KNOWN_REGEX_HTTP_HEADER_VALUE | 2 | HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4) | + """ + strict: builtins.bool + """This applies to regexes `HTTP_HEADER_NAME` and `HTTP_HEADER_VALUE` to + enable strict header validation. By default, this is true, and HTTP header + validations are [RFC-compliant](https://datatracker.ietf.org/doc/html/rfc7230#section-3). Setting to false will enable looser + validations that only disallow `\\r\\n\\0` characters, which can be used to + bypass header matching rules. + + ```proto + message MyString { + // The field `value` must have be a valid HTTP headers, but not enforced with strict rules. + string value = 1 [(buf.validate.field).string.strict = false]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """`not_in` specifies that the field value cannot be equal to any + of the specified values. If the field value is one of the specified values, + an error message will be generated. + ```proto + message MyString { + // value must not be in list ["orange", "grape"] + string value = 1 [(buf.validate.field).string.not_in = "orange", (buf.validate.field).string.not_in = "grape"]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyString { + string value = 1 [ + (buf.validate.field).string.example = "hello", + (buf.validate.field).string.example = "world" + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.str | None = ..., + len: builtins.int | None = ..., + min_len: builtins.int | None = ..., + max_len: builtins.int | None = ..., + len_bytes: builtins.int | None = ..., + min_bytes: builtins.int | None = ..., + max_bytes: builtins.int | None = ..., + pattern: builtins.str | None = ..., + prefix: builtins.str | None = ..., + suffix: builtins.str | None = ..., + contains: builtins.str | None = ..., + not_contains: builtins.str | None = ..., + not_in: collections.abc.Iterable[builtins.str] | None = ..., + email: builtins.bool | None = ..., + hostname: builtins.bool | None = ..., + ip: builtins.bool | None = ..., + ipv4: builtins.bool | None = ..., + ipv6: builtins.bool | None = ..., + uri: builtins.bool | None = ..., + uri_ref: builtins.bool | None = ..., + address: builtins.bool | None = ..., + uuid: builtins.bool | None = ..., + tuuid: builtins.bool | None = ..., + ip_with_prefixlen: builtins.bool | None = ..., + ipv4_with_prefixlen: builtins.bool | None = ..., + ipv6_with_prefixlen: builtins.bool | None = ..., + ip_prefix: builtins.bool | None = ..., + ipv4_prefix: builtins.bool | None = ..., + ipv6_prefix: builtins.bool | None = ..., + host_and_port: builtins.bool | None = ..., + well_known_regex: global___KnownRegex.ValueType | None = ..., + strict: builtins.bool | None = ..., + example: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["address", b"address", "const", b"const", "contains", b"contains", "email", b"email", "host_and_port", b"host_and_port", "hostname", b"hostname", "ip", b"ip", "ip_prefix", b"ip_prefix", "ip_with_prefixlen", b"ip_with_prefixlen", "ipv4", b"ipv4", "ipv4_prefix", b"ipv4_prefix", "ipv4_with_prefixlen", b"ipv4_with_prefixlen", "ipv6", b"ipv6", "ipv6_prefix", b"ipv6_prefix", "ipv6_with_prefixlen", b"ipv6_with_prefixlen", "len", b"len", "len_bytes", b"len_bytes", "max_bytes", b"max_bytes", "max_len", b"max_len", "min_bytes", b"min_bytes", "min_len", b"min_len", "not_contains", b"not_contains", "pattern", b"pattern", "prefix", b"prefix", "strict", b"strict", "suffix", b"suffix", "tuuid", b"tuuid", "uri", b"uri", "uri_ref", b"uri_ref", "uuid", b"uuid", "well_known", b"well_known", "well_known_regex", b"well_known_regex"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["address", b"address", "const", b"const", "contains", b"contains", "email", b"email", "example", b"example", "host_and_port", b"host_and_port", "hostname", b"hostname", "in", b"in", "ip", b"ip", "ip_prefix", b"ip_prefix", "ip_with_prefixlen", b"ip_with_prefixlen", "ipv4", b"ipv4", "ipv4_prefix", b"ipv4_prefix", "ipv4_with_prefixlen", b"ipv4_with_prefixlen", "ipv6", b"ipv6", "ipv6_prefix", b"ipv6_prefix", "ipv6_with_prefixlen", b"ipv6_with_prefixlen", "len", b"len", "len_bytes", b"len_bytes", "max_bytes", b"max_bytes", "max_len", b"max_len", "min_bytes", b"min_bytes", "min_len", b"min_len", "not_contains", b"not_contains", "not_in", b"not_in", "pattern", b"pattern", "prefix", b"prefix", "strict", b"strict", "suffix", b"suffix", "tuuid", b"tuuid", "uri", b"uri", "uri_ref", b"uri_ref", "uuid", b"uuid", "well_known", b"well_known", "well_known_regex", b"well_known_regex"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["well_known", b"well_known"]) -> typing.Literal["email", "hostname", "ip", "ipv4", "ipv6", "uri", "uri_ref", "address", "uuid", "tuuid", "ip_with_prefixlen", "ipv4_with_prefixlen", "ipv6_with_prefixlen", "ip_prefix", "ipv4_prefix", "ipv6_prefix", "host_and_port", "well_known_regex"] | None: ... + +global___StringRules = StringRules + +@typing.final +class BytesRules(google.protobuf.message.Message): + """BytesRules describe the rules applied to `bytes` values. These rules + may also be applied to the `google.protobuf.BytesValue` Well-Known-Type. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LEN_FIELD_NUMBER: builtins.int + MIN_LEN_FIELD_NUMBER: builtins.int + MAX_LEN_FIELD_NUMBER: builtins.int + PATTERN_FIELD_NUMBER: builtins.int + PREFIX_FIELD_NUMBER: builtins.int + SUFFIX_FIELD_NUMBER: builtins.int + CONTAINS_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + IP_FIELD_NUMBER: builtins.int + IPV4_FIELD_NUMBER: builtins.int + IPV6_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.bytes + """`const` requires the field value to exactly match the specified bytes + value. If the field value doesn't match, an error message is generated. + + ```proto + message MyBytes { + // value must be "\\x01\\x02\\x03\\x04" + bytes value = 1 [(buf.validate.field).bytes.const = "\\x01\\x02\\x03\\x04"]; + } + ``` + """ + len: builtins.int + """`len` requires the field value to have the specified length in bytes. + If the field value doesn't match, an error message is generated. + + ```proto + message MyBytes { + // value length must be 4 bytes. + optional bytes value = 1 [(buf.validate.field).bytes.len = 4]; + } + ``` + """ + min_len: builtins.int + """`min_len` requires the field value to have at least the specified minimum + length in bytes. + If the field value doesn't meet the requirement, an error message is generated. + + ```proto + message MyBytes { + // value length must be at least 2 bytes. + optional bytes value = 1 [(buf.validate.field).bytes.min_len = 2]; + } + ``` + """ + max_len: builtins.int + """`max_len` requires the field value to have at most the specified maximum + length in bytes. + If the field value exceeds the requirement, an error message is generated. + + ```proto + message MyBytes { + // value must be at most 6 bytes. + optional bytes value = 1 [(buf.validate.field).bytes.max_len = 6]; + } + ``` + """ + pattern: builtins.str + """`pattern` requires the field value to match the specified regular + expression ([RE2 syntax](https://github.com/google/re2/wiki/Syntax)). + The value of the field must be valid UTF-8 or validation will fail with a + runtime error. + If the field value doesn't match the pattern, an error message is generated. + + ```proto + message MyBytes { + // value must match regex pattern "^[a-zA-Z0-9]+$". + optional bytes value = 1 [(buf.validate.field).bytes.pattern = "^[a-zA-Z0-9]+$"]; + } + ``` + """ + prefix: builtins.bytes + """`prefix` requires the field value to have the specified bytes at the + beginning of the string. + If the field value doesn't meet the requirement, an error message is generated. + + ```proto + message MyBytes { + // value does not have prefix \\x01\\x02 + optional bytes value = 1 [(buf.validate.field).bytes.prefix = "\\x01\\x02"]; + } + ``` + """ + suffix: builtins.bytes + """`suffix` requires the field value to have the specified bytes at the end + of the string. + If the field value doesn't meet the requirement, an error message is generated. + + ```proto + message MyBytes { + // value does not have suffix \\x03\\x04 + optional bytes value = 1 [(buf.validate.field).bytes.suffix = "\\x03\\x04"]; + } + ``` + """ + contains: builtins.bytes + """`contains` requires the field value to have the specified bytes anywhere in + the string. + If the field value doesn't meet the requirement, an error message is generated. + + ```protobuf + message MyBytes { + // value does not contain \\x02\\x03 + optional bytes value = 1 [(buf.validate.field).bytes.contains = "\\x02\\x03"]; + } + ``` + """ + ip: builtins.bool + """`ip` ensures that the field `value` is a valid IP address (v4 or v6) in byte format. + If the field value doesn't meet this rule, an error message is generated. + + ```proto + message MyBytes { + // value must be a valid IP address + optional bytes value = 1 [(buf.validate.field).bytes.ip = true]; + } + ``` + """ + ipv4: builtins.bool + """`ipv4` ensures that the field `value` is a valid IPv4 address in byte format. + If the field value doesn't meet this rule, an error message is generated. + + ```proto + message MyBytes { + // value must be a valid IPv4 address + optional bytes value = 1 [(buf.validate.field).bytes.ipv4 = true]; + } + ``` + """ + ipv6: builtins.bool + """`ipv6` ensures that the field `value` is a valid IPv6 address in byte format. + If the field value doesn't meet this rule, an error message is generated. + ```proto + message MyBytes { + // value must be a valid IPv6 address + optional bytes value = 1 [(buf.validate.field).bytes.ipv6 = true]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + """`not_in` requires the field value to be not equal to any of the specified + values. + If the field value matches any of the specified values, an error message is + generated. + + ```proto + message MyBytes { + // value must not in ["\\x01\\x02", "\\x02\\x03", "\\x03\\x04"] + optional bytes value = 1 [(buf.validate.field).bytes.not_in = {"\\x01\\x02", "\\x02\\x03", "\\x03\\x04"}]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyBytes { + bytes value = 1 [ + (buf.validate.field).bytes.example = "\\x01\\x02", + (buf.validate.field).bytes.example = "\\x02\\x03" + ]; + } + ``` + """ + + def __init__( + self, + *, + const: builtins.bytes | None = ..., + len: builtins.int | None = ..., + min_len: builtins.int | None = ..., + max_len: builtins.int | None = ..., + pattern: builtins.str | None = ..., + prefix: builtins.bytes | None = ..., + suffix: builtins.bytes | None = ..., + contains: builtins.bytes | None = ..., + not_in: collections.abc.Iterable[builtins.bytes] | None = ..., + ip: builtins.bool | None = ..., + ipv4: builtins.bool | None = ..., + ipv6: builtins.bool | None = ..., + example: collections.abc.Iterable[builtins.bytes] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "contains", b"contains", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "max_len", b"max_len", "min_len", b"min_len", "pattern", b"pattern", "prefix", b"prefix", "suffix", b"suffix", "well_known", b"well_known"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "contains", b"contains", "example", b"example", "in", b"in", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "max_len", b"max_len", "min_len", b"min_len", "not_in", b"not_in", "pattern", b"pattern", "prefix", b"prefix", "suffix", b"suffix", "well_known", b"well_known"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["well_known", b"well_known"]) -> typing.Literal["ip", "ipv4", "ipv6"] | None: ... + +global___BytesRules = BytesRules + +@typing.final +class EnumRules(google.protobuf.message.Message): + """EnumRules describe the rules applied to `enum` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + DEFINED_ONLY_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + const: builtins.int + """`const` requires the field value to exactly match the specified enum value. + If the field value doesn't match, an error message is generated. + + ```proto + enum MyEnum { + MY_ENUM_UNSPECIFIED = 0; + MY_ENUM_VALUE1 = 1; + MY_ENUM_VALUE2 = 2; + } + + message MyMessage { + // The field `value` must be exactly MY_ENUM_VALUE1. + MyEnum value = 1 [(buf.validate.field).enum.const = 1]; + } + ``` + """ + defined_only: builtins.bool + """`defined_only` requires the field value to be one of the defined values for + this enum, failing on any undefined value. + + ```proto + enum MyEnum { + MY_ENUM_UNSPECIFIED = 0; + MY_ENUM_VALUE1 = 1; + MY_ENUM_VALUE2 = 2; + } + + message MyMessage { + // The field `value` must be a defined value of MyEnum. + MyEnum value = 1 [(buf.validate.field).enum.defined_only = true]; + } + ``` + """ + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`not_in` requires the field value to be not equal to any of the + specified enum values. If the field value matches one of the specified + values, an error message is generated. + + ```proto + enum MyEnum { + MY_ENUM_UNSPECIFIED = 0; + MY_ENUM_VALUE1 = 1; + MY_ENUM_VALUE2 = 2; + } + + message MyMessage { + // The field `value` must not be equal to any of the specified values. + MyEnum value = 1 [(buf.validate.field).enum = { not_in: [1, 2]}]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + enum MyEnum { + MY_ENUM_UNSPECIFIED = 0; + MY_ENUM_VALUE1 = 1; + MY_ENUM_VALUE2 = 2; + } + + message MyMessage { + (buf.validate.field).enum.example = 1, + (buf.validate.field).enum.example = 2 + } + ``` + """ + + def __init__( + self, + *, + const: builtins.int | None = ..., + defined_only: builtins.bool | None = ..., + not_in: collections.abc.Iterable[builtins.int] | None = ..., + example: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "defined_only", b"defined_only"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "defined_only", b"defined_only", "example", b"example", "in", b"in", "not_in", b"not_in"]) -> None: ... + +global___EnumRules = EnumRules + +@typing.final +class RepeatedRules(google.protobuf.message.Message): + """RepeatedRules describe the rules applied to `repeated` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + MIN_ITEMS_FIELD_NUMBER: builtins.int + MAX_ITEMS_FIELD_NUMBER: builtins.int + UNIQUE_FIELD_NUMBER: builtins.int + ITEMS_FIELD_NUMBER: builtins.int + min_items: builtins.int + """`min_items` requires that this field must contain at least the specified + minimum number of items. + + Note that `min_items = 1` is equivalent to setting a field as `required`. + + ```proto + message MyRepeated { + // value must contain at least 2 items + repeated string value = 1 [(buf.validate.field).repeated.min_items = 2]; + } + ``` + """ + max_items: builtins.int + """`max_items` denotes that this field must not exceed a + certain number of items as the upper limit. If the field contains more + items than specified, an error message will be generated, requiring the + field to maintain no more than the specified number of items. + + ```proto + message MyRepeated { + // value must contain no more than 3 item(s) + repeated string value = 1 [(buf.validate.field).repeated.max_items = 3]; + } + ``` + """ + unique: builtins.bool + """`unique` indicates that all elements in this field must + be unique. This rule is strictly applicable to scalar and enum + types, with message types not being supported. + + ```proto + message MyRepeated { + // repeated value must contain unique items + repeated string value = 1 [(buf.validate.field).repeated.unique = true]; + } + ``` + """ + @property + def items(self) -> global___FieldRules: + """`items` details the rules to be applied to each item + in the field. Even for repeated message fields, validation is executed + against each item unless `ignore` is specified. + + ```proto + message MyRepeated { + // The items in the field `value` must follow the specified rules. + repeated string value = 1 [(buf.validate.field).repeated.items = { + string: { + min_len: 3 + max_len: 10 + } + }]; + } + ``` + + Note that the `required` rule does not apply. Repeated items + cannot be unset. + """ + + def __init__( + self, + *, + min_items: builtins.int | None = ..., + max_items: builtins.int | None = ..., + unique: builtins.bool | None = ..., + items: global___FieldRules | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["items", b"items", "max_items", b"max_items", "min_items", b"min_items", "unique", b"unique"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["items", b"items", "max_items", b"max_items", "min_items", b"min_items", "unique", b"unique"]) -> None: ... + +global___RepeatedRules = RepeatedRules + +@typing.final +class MapRules(google.protobuf.message.Message): + """MapRules describe the rules applied to `map` values.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + MIN_PAIRS_FIELD_NUMBER: builtins.int + MAX_PAIRS_FIELD_NUMBER: builtins.int + KEYS_FIELD_NUMBER: builtins.int + VALUES_FIELD_NUMBER: builtins.int + min_pairs: builtins.int + """Specifies the minimum number of key-value pairs allowed. If the field has + fewer key-value pairs than specified, an error message is generated. + + ```proto + message MyMap { + // The field `value` must have at least 2 key-value pairs. + map value = 1 [(buf.validate.field).map.min_pairs = 2]; + } + ``` + """ + max_pairs: builtins.int + """Specifies the maximum number of key-value pairs allowed. If the field has + more key-value pairs than specified, an error message is generated. + + ```proto + message MyMap { + // The field `value` must have at most 3 key-value pairs. + map value = 1 [(buf.validate.field).map.max_pairs = 3]; + } + ``` + """ + @property + def keys(self) -> global___FieldRules: + """Specifies the rules to be applied to each key in the field. + + ```proto + message MyMap { + // The keys in the field `value` must follow the specified rules. + map value = 1 [(buf.validate.field).map.keys = { + string: { + min_len: 3 + max_len: 10 + } + }]; + } + ``` + + Note that the `required` rule does not apply. Map keys cannot be unset. + """ + + @property + def values(self) -> global___FieldRules: + """Specifies the rules to be applied to the value of each key in the + field. Message values will still have their validations evaluated unless + `ignore` is specified. + + ```proto + message MyMap { + // The values in the field `value` must follow the specified rules. + map value = 1 [(buf.validate.field).map.values = { + string: { + min_len: 5 + max_len: 20 + } + }]; + } + ``` + Note that the `required` rule does not apply. Map values cannot be unset. + """ + + def __init__( + self, + *, + min_pairs: builtins.int | None = ..., + max_pairs: builtins.int | None = ..., + keys: global___FieldRules | None = ..., + values: global___FieldRules | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["keys", b"keys", "max_pairs", b"max_pairs", "min_pairs", b"min_pairs", "values", b"values"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["keys", b"keys", "max_pairs", b"max_pairs", "min_pairs", b"min_pairs", "values", b"values"]) -> None: ... + +global___MapRules = MapRules + +@typing.final +class AnyRules(google.protobuf.message.Message): + """AnyRules describe rules applied exclusively to the `google.protobuf.Any` well-known type.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """requires the field's type_url to be not equal to any of the specified values. If it matches any of the specified values, an error message is generated. + + ```proto + message MyAny { + // The `value` field must not have a `type_url` equal to any of the specified values. + google.protobuf.Any value = 1 [(buf.validate.field).any = { + not_in: ["type.googleapis.com/ForbiddenType1", "type.googleapis.com/ForbiddenType2"] + }]; + } + ``` + """ + + def __init__( + self, + *, + not_in: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["in", b"in", "not_in", b"not_in"]) -> None: ... + +global___AnyRules = AnyRules + +@typing.final +class DurationRules(google.protobuf.message.Message): + """DurationRules describe the rules applied exclusively to the `google.protobuf.Duration` well-known type.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + NOT_IN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + @property + def const(self) -> google.protobuf.duration_pb2.Duration: + """`const` dictates that the field must match the specified value of the `google.protobuf.Duration` type exactly. + If the field's value deviates from the specified value, an error message + will be generated. + + ```proto + message MyDuration { + // value must equal 5s + google.protobuf.Duration value = 1 [(buf.validate.field).duration.const = "5s"]; + } + ``` + """ + + @property + def lt(self) -> google.protobuf.duration_pb2.Duration: + """`lt` stipulates that the field must be less than the specified value of the `google.protobuf.Duration` type, + exclusive. If the field's value is greater than or equal to the specified + value, an error message will be generated. + + ```proto + message MyDuration { + // value must be less than 5s + google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = "5s"]; + } + ``` + """ + + @property + def lte(self) -> google.protobuf.duration_pb2.Duration: + """`lte` indicates that the field must be less than or equal to the specified + value of the `google.protobuf.Duration` type, inclusive. If the field's value is greater than the specified value, + an error message will be generated. + + ```proto + message MyDuration { + // value must be less than or equal to 10s + google.protobuf.Duration value = 1 [(buf.validate.field).duration.lte = "10s"]; + } + ``` + """ + + @property + def gt(self) -> google.protobuf.duration_pb2.Duration: + """`gt` requires the duration field value to be greater than the specified + value (exclusive). If the value of `gt` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyDuration { + // duration must be greater than 5s [duration.gt] + google.protobuf.Duration value = 1 [(buf.validate.field).duration.gt = { seconds: 5 }]; + + // duration must be greater than 5s and less than 10s [duration.gt_lt] + google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gt: { seconds: 5 }, lt: { seconds: 10 } }]; + + // duration must be greater than 10s or less than 5s [duration.gt_lt_exclusive] + google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gt: { seconds: 10 }, lt: { seconds: 5 } }]; + } + ``` + """ + + @property + def gte(self) -> google.protobuf.duration_pb2.Duration: + """`gte` requires the duration field value to be greater than or equal to the + specified value (exclusive). If the value of `gte` is larger than a + specified `lt` or `lte`, the range is reversed, and the field value must + be outside the specified range. If the field value doesn't meet the + required conditions, an error message is generated. + + ```proto + message MyDuration { + // duration must be greater than or equal to 5s [duration.gte] + google.protobuf.Duration value = 1 [(buf.validate.field).duration.gte = { seconds: 5 }]; + + // duration must be greater than or equal to 5s and less than 10s [duration.gte_lt] + google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gte: { seconds: 5 }, lt: { seconds: 10 } }]; + + // duration must be greater than or equal to 10s or less than 5s [duration.gte_lt_exclusive] + google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gte: { seconds: 10 }, lt: { seconds: 5 } }]; + } + ``` + """ + + @property + def not_in(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.duration_pb2.Duration]: + """`not_in` denotes that the field must not be equal to + any of the specified values of the `google.protobuf.Duration` type. + If the field's value matches any of these values, an error message will be + generated. + + ```proto + message MyDuration { + // value must not be in list [1s, 2s, 3s] + google.protobuf.Duration value = 1 [(buf.validate.field).duration.not_in = ["1s", "2s", "3s"]]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.duration_pb2.Duration]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyDuration { + google.protobuf.Duration value = 1 [ + (buf.validate.field).duration.example = { seconds: 1 }, + (buf.validate.field).duration.example = { seconds: 2 }, + ]; + } + ``` + """ + + def __init__( + self, + *, + const: google.protobuf.duration_pb2.Duration | None = ..., + lt: google.protobuf.duration_pb2.Duration | None = ..., + lte: google.protobuf.duration_pb2.Duration | None = ..., + gt: google.protobuf.duration_pb2.Duration | None = ..., + gte: google.protobuf.duration_pb2.Duration | None = ..., + not_in: collections.abc.Iterable[google.protobuf.duration_pb2.Duration] | None = ..., + example: collections.abc.Iterable[google.protobuf.duration_pb2.Duration] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... + +global___DurationRules = DurationRules + +@typing.final +class TimestampRules(google.protobuf.message.Message): + """TimestampRules describe the rules applied exclusively to the `google.protobuf.Timestamp` well-known type.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONST_FIELD_NUMBER: builtins.int + LT_FIELD_NUMBER: builtins.int + LTE_FIELD_NUMBER: builtins.int + LT_NOW_FIELD_NUMBER: builtins.int + GT_FIELD_NUMBER: builtins.int + GTE_FIELD_NUMBER: builtins.int + GT_NOW_FIELD_NUMBER: builtins.int + WITHIN_FIELD_NUMBER: builtins.int + EXAMPLE_FIELD_NUMBER: builtins.int + lt_now: builtins.bool + """`lt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be less than the current time. `lt_now` can only be used with the `within` rule. + + ```proto + message MyTimestamp { + // value must be less than now + google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.lt_now = true]; + } + ``` + """ + gt_now: builtins.bool + """`gt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be greater than the current time. `gt_now` can only be used with the `within` rule. + + ```proto + message MyTimestamp { + // value must be greater than now + google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.gt_now = true]; + } + ``` + """ + @property + def const(self) -> google.protobuf.timestamp_pb2.Timestamp: + """`const` dictates that this field, of the `google.protobuf.Timestamp` type, must exactly match the specified value. If the field value doesn't correspond to the specified timestamp, an error message will be generated. + + ```proto + message MyTimestamp { + // value must equal 2023-05-03T10:00:00Z + google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.const = {seconds: 1727998800}]; + } + ``` + """ + + @property + def lt(self) -> google.protobuf.timestamp_pb2.Timestamp: + """requires the duration field value to be less than the specified value (field < value). If the field value doesn't meet the required conditions, an error message is generated. + + ```proto + message MyDuration { + // duration must be less than 'P3D' [duration.lt] + google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = { seconds: 259200 }]; + } + ``` + """ + + @property + def lte(self) -> google.protobuf.timestamp_pb2.Timestamp: + """requires the timestamp field value to be less than or equal to the specified value (field <= value). If the field value doesn't meet the required conditions, an error message is generated. + + ```proto + message MyTimestamp { + // timestamp must be less than or equal to '2023-05-14T00:00:00Z' [timestamp.lte] + google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.lte = { seconds: 1678867200 }]; + } + ``` + """ + + @property + def gt(self) -> google.protobuf.timestamp_pb2.Timestamp: + """`gt` requires the timestamp field value to be greater than the specified + value (exclusive). If the value of `gt` is larger than a specified `lt` + or `lte`, the range is reversed, and the field value must be outside the + specified range. If the field value doesn't meet the required conditions, + an error message is generated. + + ```proto + message MyTimestamp { + // timestamp must be greater than '2023-01-01T00:00:00Z' [timestamp.gt] + google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gt = { seconds: 1672444800 }]; + + // timestamp must be greater than '2023-01-01T00:00:00Z' and less than '2023-01-02T00:00:00Z' [timestamp.gt_lt] + google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gt: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }]; + + // timestamp must be greater than '2023-01-02T00:00:00Z' or less than '2023-01-01T00:00:00Z' [timestamp.gt_lt_exclusive] + google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gt: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }]; + } + ``` + """ + + @property + def gte(self) -> google.protobuf.timestamp_pb2.Timestamp: + """`gte` requires the timestamp field value to be greater than or equal to the + specified value (exclusive). If the value of `gte` is larger than a + specified `lt` or `lte`, the range is reversed, and the field value + must be outside the specified range. If the field value doesn't meet + the required conditions, an error message is generated. + + ```proto + message MyTimestamp { + // timestamp must be greater than or equal to '2023-01-01T00:00:00Z' [timestamp.gte] + google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gte = { seconds: 1672444800 }]; + + // timestamp must be greater than or equal to '2023-01-01T00:00:00Z' and less than '2023-01-02T00:00:00Z' [timestamp.gte_lt] + google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gte: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }]; + + // timestamp must be greater than or equal to '2023-01-02T00:00:00Z' or less than '2023-01-01T00:00:00Z' [timestamp.gte_lt_exclusive] + google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gte: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }]; + } + ``` + """ + + @property + def within(self) -> google.protobuf.duration_pb2.Duration: + """`within` specifies that this field, of the `google.protobuf.Timestamp` type, must be within the specified duration of the current time. If the field value isn't within the duration, an error message is generated. + + ```proto + message MyTimestamp { + // value must be within 1 hour of now + google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.within = {seconds: 3600}]; + } + ``` + """ + + @property + def example(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]: + """`example` specifies values that the field may have. These values SHOULD + conform to other rules. `example` values will not impact validation + but may be used as helpful guidance on how to populate the given field. + + ```proto + message MyTimestamp { + google.protobuf.Timestamp value = 1 [ + (buf.validate.field).timestamp.example = { seconds: 1672444800 }, + (buf.validate.field).timestamp.example = { seconds: 1672531200 }, + ]; + } + ``` + """ + + def __init__( + self, + *, + const: google.protobuf.timestamp_pb2.Timestamp | None = ..., + lt: google.protobuf.timestamp_pb2.Timestamp | None = ..., + lte: google.protobuf.timestamp_pb2.Timestamp | None = ..., + lt_now: builtins.bool | None = ..., + gt: google.protobuf.timestamp_pb2.Timestamp | None = ..., + gte: google.protobuf.timestamp_pb2.Timestamp | None = ..., + gt_now: builtins.bool | None = ..., + within: google.protobuf.duration_pb2.Duration | None = ..., + example: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gt_now", b"gt_now", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lt_now", b"lt_now", "lte", b"lte", "within", b"within"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gt_now", b"gt_now", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lt_now", b"lt_now", "lte", b"lte", "within", b"within"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte", "gt_now"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte", "lt_now"] | None: ... + +global___TimestampRules = TimestampRules + +@typing.final +class Violations(google.protobuf.message.Message): + """`Violations` is a collection of `Violation` messages. This message type is returned by + Protovalidate when a proto message fails to meet the requirements set by the `Rule` validation rules. + Each individual violation is represented by a `Violation` message. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VIOLATIONS_FIELD_NUMBER: builtins.int + @property + def violations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Violation]: + """`violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected.""" + + def __init__( + self, + *, + violations: collections.abc.Iterable[global___Violation] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["violations", b"violations"]) -> None: ... + +global___Violations = Violations + +@typing.final +class Violation(google.protobuf.message.Message): + """`Violation` represents a single instance where a validation rule, expressed + as a `Rule`, was not met. It provides information about the field that + caused the violation, the specific rule that wasn't fulfilled, and a + human-readable error message. + + For example, consider the following message: + + ```proto + message User { + int32 age = 1 [(buf.validate.field).cel = { + id: "user.age", + expression: "this < 18 ? 'User must be at least 18 years old' : ''", + }]; + } + ``` + + It could produce the following violation: + + ```json + { + "ruleId": "user.age", + "message": "User must be at least 18 years old", + "field": { + "elements": [ + { + "fieldNumber": 1, + "fieldName": "age", + "fieldType": "TYPE_INT32" + } + ] + }, + "rule": { + "elements": [ + { + "fieldNumber": 23, + "fieldName": "cel", + "fieldType": "TYPE_MESSAGE", + "index": "0" + } + ] + } + } + ``` + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FIELD_FIELD_NUMBER: builtins.int + RULE_FIELD_NUMBER: builtins.int + RULE_ID_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + FOR_KEY_FIELD_NUMBER: builtins.int + rule_id: builtins.str + """`rule_id` is the unique identifier of the `Rule` that was not fulfilled. + This is the same `id` that was specified in the `Rule` message, allowing easy tracing of which rule was violated. + """ + message: builtins.str + """`message` is a human-readable error message that describes the nature of the violation. + This can be the default error message from the violated `Rule`, or it can be a custom message that gives more context about the violation. + """ + for_key: builtins.bool + """`for_key` indicates whether the violation was caused by a map key, rather than a value.""" + @property + def field(self) -> global___FieldPath: + """`field` is a machine-readable path to the field that failed validation. + This could be a nested field, in which case the path will include all the parent fields leading to the actual field that caused the violation. + + For example, consider the following message: + + ```proto + message Message { + bool a = 1 [(buf.validate.field).required = true]; + } + ``` + + It could produce the following violation: + + ```textproto + violation { + field { element { field_number: 1, field_name: "a", field_type: 8 } } + ... + } + ``` + """ + + @property + def rule(self) -> global___FieldPath: + """`rule` is a machine-readable path that points to the specific rule that failed validation. + This will be a nested field starting from the FieldRules of the field that failed validation. + For custom rules, this will provide the path of the rule, e.g. `cel[0]`. + + For example, consider the following message: + + ```proto + message Message { + bool a = 1 [(buf.validate.field).required = true]; + bool b = 2 [(buf.validate.field).cel = { + id: "custom_rule", + expression: "!this ? 'b must be true': ''" + }] + } + ``` + + It could produce the following violations: + + ```textproto + violation { + rule { element { field_number: 25, field_name: "required", field_type: 8 } } + ... + } + violation { + rule { element { field_number: 23, field_name: "cel", field_type: 11, index: 0 } } + ... + } + ``` + """ + + def __init__( + self, + *, + field: global___FieldPath | None = ..., + rule: global___FieldPath | None = ..., + rule_id: builtins.str | None = ..., + message: builtins.str | None = ..., + for_key: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["field", b"field", "for_key", b"for_key", "message", b"message", "rule", b"rule", "rule_id", b"rule_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["field", b"field", "for_key", b"for_key", "message", b"message", "rule", b"rule", "rule_id", b"rule_id"]) -> None: ... + +global___Violation = Violation + +@typing.final +class FieldPath(google.protobuf.message.Message): + """`FieldPath` provides a path to a nested protobuf field. + + This message provides enough information to render a dotted field path even without protobuf descriptors. + It also provides enough information to resolve a nested field through unknown wire data. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ELEMENTS_FIELD_NUMBER: builtins.int + @property + def elements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FieldPathElement]: + """`elements` contains each element of the path, starting from the root and recursing downward.""" + + def __init__( + self, + *, + elements: collections.abc.Iterable[global___FieldPathElement] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["elements", b"elements"]) -> None: ... + +global___FieldPath = FieldPath + +@typing.final +class FieldPathElement(google.protobuf.message.Message): + """`FieldPathElement` provides enough information to nest through a single protobuf field. + + If the selected field is a map or repeated field, the `subscript` value selects a specific element from it. + A path that refers to a value nested under a map key or repeated field index will have a `subscript` value. + The `field_type` field allows unambiguous resolution of a field even if descriptors are not available. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FIELD_NUMBER_FIELD_NUMBER: builtins.int + FIELD_NAME_FIELD_NUMBER: builtins.int + FIELD_TYPE_FIELD_NUMBER: builtins.int + KEY_TYPE_FIELD_NUMBER: builtins.int + VALUE_TYPE_FIELD_NUMBER: builtins.int + INDEX_FIELD_NUMBER: builtins.int + BOOL_KEY_FIELD_NUMBER: builtins.int + INT_KEY_FIELD_NUMBER: builtins.int + UINT_KEY_FIELD_NUMBER: builtins.int + STRING_KEY_FIELD_NUMBER: builtins.int + field_number: builtins.int + """`field_number` is the field number this path element refers to.""" + field_name: builtins.str + """`field_name` contains the field name this path element refers to. + This can be used to display a human-readable path even if the field number is unknown. + """ + field_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType + """`field_type` specifies the type of this field. When using reflection, this value is not needed. + + This value is provided to make it possible to traverse unknown fields through wire data. + When traversing wire data, be mindful of both packed[1] and delimited[2] encoding schemes. + + [1]: https://protobuf.dev/programming-guides/encoding/#packed + [2]: https://protobuf.dev/programming-guides/encoding/#groups + + N.B.: Although groups are deprecated, the corresponding delimited encoding scheme is not, and + can be explicitly used in Protocol Buffers 2023 Edition. + """ + key_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType + """`key_type` specifies the map key type of this field. This value is useful when traversing + unknown fields through wire data: specifically, it allows handling the differences between + different integer encodings. + """ + value_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType + """`value_type` specifies map value type of this field. This is useful if you want to display a + value inside unknown fields through wire data. + """ + index: builtins.int + """`index` specifies a 0-based index into a repeated field.""" + bool_key: builtins.bool + """`bool_key` specifies a map key of type bool.""" + int_key: builtins.int + """`int_key` specifies a map key of type int32, int64, sint32, sint64, sfixed32 or sfixed64.""" + uint_key: builtins.int + """`uint_key` specifies a map key of type uint32, uint64, fixed32 or fixed64.""" + string_key: builtins.str + """`string_key` specifies a map key of type string.""" + def __init__( + self, + *, + field_number: builtins.int | None = ..., + field_name: builtins.str | None = ..., + field_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType | None = ..., + key_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType | None = ..., + value_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType | None = ..., + index: builtins.int | None = ..., + bool_key: builtins.bool | None = ..., + int_key: builtins.int | None = ..., + uint_key: builtins.int | None = ..., + string_key: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["bool_key", b"bool_key", "field_name", b"field_name", "field_number", b"field_number", "field_type", b"field_type", "index", b"index", "int_key", b"int_key", "key_type", b"key_type", "string_key", b"string_key", "subscript", b"subscript", "uint_key", b"uint_key", "value_type", b"value_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["bool_key", b"bool_key", "field_name", b"field_name", "field_number", b"field_number", "field_type", b"field_type", "index", b"index", "int_key", b"int_key", "key_type", b"key_type", "string_key", b"string_key", "subscript", b"subscript", "uint_key", b"uint_key", "value_type", b"value_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["subscript", b"subscript"]) -> typing.Literal["index", "bool_key", "int_key", "uint_key", "string_key"] | None: ... + +global___FieldPathElement = FieldPathElement + +MESSAGE_FIELD_NUMBER: builtins.int +ONEOF_FIELD_NUMBER: builtins.int +FIELD_FIELD_NUMBER: builtins.int +PREDEFINED_FIELD_NUMBER: builtins.int +message: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, global___MessageRules] +"""Rules specify the validations to be performed on this message. By default, +no validation is performed against a message. +""" +oneof: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.OneofOptions, global___OneofRules] +"""Rules specify the validations to be performed on this oneof. By default, +no validation is performed against a oneof. +""" +field: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___FieldRules] +"""Rules specify the validations to be performed on this field. By default, +no validation is performed against a field. +""" +predefined: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___PredefinedRules] +"""Specifies predefined rules. When extending a standard rule message, +this adds additional CEL expressions that apply when the extension is used. + +```proto +extend buf.validate.Int32Rules { + bool is_zero [(buf.validate.predefined).cel = { + id: "int32.is_zero", + message: "value must be zero", + expression: "!rule || this == 0", + }]; +} + +message Foo { + int32 reserved = 1 [(buf.validate.field).int32.(is_zero) = true]; +} +``` +""" diff --git a/python/lib/buf/validate/validate_pb2_grpc.py b/python/lib/buf/validate/validate_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/python/lib/buf/validate/validate_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/python/lib/buf/validate/validate_pb2_grpc.pyi b/python/lib/buf/validate/validate_pb2_grpc.pyi new file mode 100644 index 000000000..8fde55c3a --- /dev/null +++ b/python/lib/buf/validate/validate_pb2_grpc.pyi @@ -0,0 +1,30 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Copyright 2023-2025 Buf Technologies, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/python/lib/sift/annotation_logs/v1/annotation_logs_pb2.py b/python/lib/sift/annotation_logs/v1/annotation_logs_pb2.py index 861fd7b69..5109b3c4a 100644 --- a/python/lib/sift/annotation_logs/v1/annotation_logs_pb2.py +++ b/python/lib/sift/annotation_logs/v1/annotation_logs_pb2.py @@ -18,7 +18,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-sift/annotation_logs/v1/annotation_logs.proto\x12\x17sift.annotation_logs.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xa8\x03\n\x1a\x43reateAnnotationLogRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12\x43\n\x04kind\x18\x02 \x01(\x0e\x32*.sift.annotation_logs.v1.AnnotationLogKindB\x03\xe0\x41\x02R\x04kind\x12V\n\x08\x61ssigned\x18\x03 \x01(\x0b\x32\x38.sift.annotation_logs.v1.AnnotationLogAssignedPropertiesH\x00R\x08\x61ssigned\x12`\n\x0cstate_update\x18\x04 \x01(\x0b\x32;.sift.annotation_logs.v1.AnnotationLogStateUpdatePropertiesH\x00R\x0bstateUpdate\x12S\n\x07\x63omment\x18\x05 \x01(\x0b\x32\x37.sift.annotation_logs.v1.AnnotationLogCommentPropertiesH\x00R\x07\x63ommentB\x0c\n\nproperties\"x\n\x1b\x43reateAnnotationLogResponse\x12Y\n\x0e\x61nnotation_log\x18\x01 \x01(\x0b\x32\x32.sift.annotation_logs.v1.AnnotationLogSearchResultR\rannotationLog\"\xa8\x01\n\x19ListAnnotationLogsRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\"\xa1\x01\n\x1aListAnnotationLogsResponse\x12[\n\x0f\x61nnotation_logs\x18\x01 \x03(\x0b\x32\x32.sift.annotation_logs.v1.AnnotationLogSearchResultR\x0e\x61nnotationLogs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"w\n\x1a\x44\x65leteAnnotationLogRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12/\n\x11\x61nnotation_log_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0f\x61nnotationLogId\"\x1d\n\x1b\x44\x65leteAnnotationLogResponse\"\xca\x05\n\x19\x41nnotationLogSearchResult\x12/\n\x11\x61nnotation_log_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x61nnotationLogId\x12\x42\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12(\n\rannotation_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12\x43\n\x04kind\x18\x05 \x01(\x0e\x32*.sift.annotation_logs.v1.AnnotationLogKindB\x03\xe0\x41\x02R\x04kind\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x34\n\x14\x63reated_by_user_name\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x11\x63reatedByUserName\x12V\n\x08\x61ssigned\x18\x08 \x01(\x0b\x32\x38.sift.annotation_logs.v1.AnnotationLogAssignedPropertiesH\x00R\x08\x61ssigned\x12`\n\x0cstate_update\x18\t \x01(\x0b\x32;.sift.annotation_logs.v1.AnnotationLogStateUpdatePropertiesH\x00R\x0bstateUpdate\x12S\n\x07\x63omment\x18\n \x01(\x0b\x32\x37.sift.annotation_logs.v1.AnnotationLogCommentPropertiesH\x00R\x07\x63ommentB\x0c\n\nproperties\"\x8f\x01\n\x1f\x41nnotationLogAssignedProperties\x12\x32\n\x13\x61ssigned_to_user_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x61ssignedToUserId\x12\x38\n\x16\x61ssigned_to_user_email\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x13\x61ssignedToUserEmail\"l\n\"AnnotationLogStateUpdateProperties\x12\x46\n\x05state\x18\x01 \x01(\x0e\x32+.sift.annotation_logs.v1.AnnotationLogStateB\x03\xe0\x41\x02R\x05state\"k\n\x1e\x41nnotationLogCommentProperties\x12I\n\x04\x62ody\x18\x01 \x03(\x0b\x32\x35.sift.annotation_logs.v1.AnnotationCommentBodyElementR\x04\x62ody\"\xea\x01\n\x1c\x41nnotationCommentBodyElement\x12R\n\x04type\x18\x01 \x01(\x0e\x32\x39.sift.annotation_logs.v1.AnnotationCommentBodyElementTypeB\x03\xe0\x41\x02R\x04type\x12\x17\n\x04text\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04text\x12]\n\x0cuser_mention\x18\x03 \x01(\x0b\x32\x35.sift.annotation_logs.v1.AnnotationCommentUserMentionB\x03\xe0\x41\x01R\x0buserMention\"`\n\x1c\x41nnotationCommentUserMention\x12\x1c\n\x07user_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06userId\x12\"\n\nuser_email\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tuserEmail*\xa1\x01\n\x11\x41nnotationLogKind\x12#\n\x1f\x41NNOTATION_LOG_KIND_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41NNOTATION_LOG_KIND_COMMENT\x10\x01\x12$\n ANNOTATION_LOG_KIND_STATE_UPDATE\x10\x02\x12 \n\x1c\x41NNOTATION_LOG_KIND_ASSIGNED\x10\x03*\xc0\x01\n\x12\x41nnotationLogState\x12$\n ANNOTATION_LOG_STATE_UNSPECIFIED\x10\x00\x12 \n\x1c\x41NNOTATION_LOG_STATE_CREATED\x10\x01\x12\x1d\n\x19\x41NNOTATION_LOG_STATE_OPEN\x10\x02\x12 \n\x1c\x41NNOTATION_LOG_STATE_FLAGGED\x10\x03\x12!\n\x1d\x41NNOTATION_LOG_STATE_RESOLVED\x10\x04*\xbe\x01\n AnnotationCommentBodyElementType\x12\x34\n0ANNOTATION_COMMENT_BODY_ELEMENT_TYPE_UNSPECIFIED\x10\x00\x12-\n)ANNOTATION_COMMENT_BODY_ELEMENT_TYPE_TEXT\x10\x01\x12\x35\n1ANNOTATION_COMMENT_BODY_ELEMENT_TYPE_USER_MENTION\x10\x02\x32\xe1\x07\n\x14\x41nnotationLogService\x12\xfa\x01\n\x13\x43reateAnnotationLog\x12\x33.sift.annotation_logs.v1.CreateAnnotationLogRequest\x1a\x34.sift.annotation_logs.v1.CreateAnnotationLogResponse\"x\x92\x41\x42\x12\x13\x43reateAnnotationLog\x1a+Creates an annotation log on an annotation.\x82\xd3\xe4\x93\x02-\"(/api/v1/annotations/{annotation_id}/logs:\x01*\x12\xfb\x01\n\x12ListAnnotationLogs\x12\x32.sift.annotation_logs.v1.ListAnnotationLogsRequest\x1a\x33.sift.annotation_logs.v1.ListAnnotationLogsResponse\"|\x92\x41I\x12\x12ListAnnotationLogs\x1a\x33Retrieves annotation logs using an optional filter.\x82\xd3\xe4\x93\x02*\x12(/api/v1/annotations/{annotation_id}/logs\x12\xfa\x01\n\x13\x44\x65leteAnnotationLog\x12\x33.sift.annotation_logs.v1.DeleteAnnotationLogRequest\x1a\x34.sift.annotation_logs.v1.DeleteAnnotationLogResponse\"x\x92\x41\x31\x12\x13\x44\x65leteAnnotationLog\x1a\x1a\x44\x65letes an annotation log.\x82\xd3\xe4\x93\x02>***\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1f\n\x06run_id\x18\n \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x01R\x05state\x88\x01\x01\x12,\n\x0forganization_id\x18\x0c \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x32\n\x13\x61ssigned_to_user_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x10\x61ssignedToUserId\x12Q\n\x0f\x61nnotation_type\x18\x0e \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x02R\x0e\x61nnotationType\x12\x17\n\x04tags\x18\x0f \x03(\tB\x03\xe0\x41\x02R\x04tags\x12-\n\rlegend_config\x18\x10 \x01(\tB\x03\xe0\x41\x01H\x02R\x0clegendConfig\x88\x01\x01\x12?\n\x17\x63reated_by_condition_id\x18\x11 \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x12 \x01(\tB\x03\xe0\x41\x01H\x04R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x12=\n\x16report_rule_version_id\x18\x13 \x01(\tB\x03\xe0\x41\x01H\x05R\x13reportRuleVersionId\x88\x01\x01\x12\x1d\n\x07pending\x18\x14 \x01(\x08\x42\x03\xe0\x41\x03R\x07pending\x12H\n\x10\x61ssigned_to_user\x18\x15 \x01(\x0b\x32\x19.sift.common.type.v1.UserB\x03\xe0\x41\x03R\x0e\x61ssignedToUser\x12\x42\n\x0c\x64\x65leted_date\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0b\x64\x65letedDate\x12Z\n\x0flinked_channels\x18\x17 \x03(\x0b\x32,.sift.annotations.v1.AnnotationLinkedChannelB\x03\xe0\x41\x01R\x0elinkedChannels\x12 \n\tasset_ids\x18\x18 \x03(\tB\x03\xe0\x41\x01R\x08\x61ssetIds\x12@\n\x08metadata\x18\x19 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\t\n\x07_run_idB\x08\n\x06_stateB\x10\n\x0e_legend_configB\x1a\n\x18_created_by_condition_idB\'\n%_created_by_rule_condition_version_idB\x19\n\x17_report_rule_version_id\"E\n\x1f\x41nnotationLinkedChannelsChannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"x\n\'AnnotationLinkedChannelsBitFieldElement\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12)\n\x0e\x62it_field_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0c\x62itFieldName\"\xdf\x01\n\x17\x41nnotationLinkedChannel\x12P\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x34.sift.annotations.v1.AnnotationLinkedChannelsChannelH\x00R\x07\x63hannel\x12j\n\x11\x62it_field_element\x18\x02 \x01(\x0b\x32<.sift.annotations.v1.AnnotationLinkedChannelsBitFieldElementH\x00R\x0f\x62itFieldElementB\x06\n\x04type\"\x91\x08\n\x17\x43reateAnnotationRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x1b\n\x06\x61ssets\x18\x05 \x03(\tB\x03\xe0\x41\x01R\x06\x61ssets\x12Z\n\x0flinked_channels\x18\x06 \x03(\x0b\x32,.sift.annotations.v1.AnnotationLinkedChannelB\x03\xe0\x41\x01R\x0elinkedChannels\x12\x17\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12\x1f\n\x06run_id\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x33\n\x11\x61ssign_to_user_id\x18\t \x01(\tB\x03\xe0\x41\x01H\x01R\x0e\x61ssignToUserId\x88\x01\x01\x12,\n\x0forganization_id\x18\n \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x02R\x05state\x88\x01\x01\x12Q\n\x0f\x61nnotation_type\x18\x0c \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x01R\x0e\x61nnotationType\x12?\n\x17\x63reated_by_condition_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12-\n\rlegend_config\x18\r \x01(\tB\x03\xe0\x41\x01H\x04R\x0clegendConfig\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x05R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\t\n\x07_run_idB\x14\n\x12_assign_to_user_idB\x08\n\x06_stateB\x1a\n\x18_created_by_condition_idB\x10\n\x0e_legend_configB\'\n%_created_by_rule_condition_version_id\"`\n\x18\x43reateAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"C\n\x17\x44\x65leteAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"\x1a\n\x18\x44\x65leteAnnotationResponse\"K\n\x1d\x42\x61tchDeleteAnnotationsRequest\x12*\n\x0e\x61nnotation_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\rannotationIds\" \n\x1e\x42\x61tchDeleteAnnotationsResponse\"@\n\x14GetAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"]\n\x15GetAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"\xc9\x01\n\x16ListAnnotationsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x84\x01\n\x17ListAnnotationsResponse\x12\x41\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\x0b\x61nnotations\x12&\n\x0fnext_page_token\x18\x05 \x01(\tR\rnextPageToken\"\xa1\x01\n\x17UpdateAnnotationRequest\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"[\n\x18UpdateAnnotationResponse\x12?\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\nannotation*\x8b\x01\n\x0f\x41nnotationState\x12 \n\x1c\x41NNOTATION_STATE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41NNOTATION_STATE_OPEN\x10\x01\x12\x1c\n\x18\x41NNOTATION_STATE_FLAGGED\x10\x02\x12\x1d\n\x19\x41NNOTATION_STATE_RESOLVED\x10\x03*m\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41NNOTATION_TYPE_DATA_REVIEW\x10\x01\x12\x19\n\x15\x41NNOTATION_TYPE_PHASE\x10\x02\x32\xcf\x0b\n\x11\x41nnotationService\x12\xbc\x01\n\x10\x43reateAnnotation\x12,.sift.annotations.v1.CreateAnnotationRequest\x1a-.sift.annotations.v1.CreateAnnotationResponse\"K\x92\x41*\x12\x10\x43reateAnnotation\x1a\x16\x43reates an annotation.\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/annotations:\x01*\x12\xc9\x01\n\x10\x44\x65leteAnnotation\x12,.sift.annotations.v1.DeleteAnnotationRequest\x1a-.sift.annotations.v1.DeleteAnnotationResponse\"X\x92\x41*\x12\x10\x44\x65leteAnnotation\x1a\x16\x44\x65letes an annotation.\x82\xd3\xe4\x93\x02%*#/api/v1/annotations/{annotation_id}\x12\xe3\x01\n\x16\x42\x61tchDeleteAnnotations\x12\x32.sift.annotations.v1.BatchDeleteAnnotationsRequest\x1a\x33.sift.annotations.v1.BatchDeleteAnnotationsResponse\"`\x92\x41\x33\x12\x15\x42\x61tchDeleteAnnotation\x1a\x1a\x42\x61tch deletes annotations.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/annotations:batchDelete:\x01*\x12\xcd\x01\n\x0fListAnnotations\x12+.sift.annotations.v1.ListAnnotationsRequest\x1a,.sift.annotations.v1.ListAnnotationsResponse\"_\x92\x41\x41\x12\x0eListAnnotation\x1a/Retrieves annotations using an optional filter.\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/annotations\x12\xbe\x01\n\rGetAnnotation\x12).sift.annotations.v1.GetAnnotationRequest\x1a*.sift.annotations.v1.GetAnnotationResponse\"V\x92\x41(\x12\rGetAnnotation\x1a\x17Retrieves an annotation\x82\xd3\xe4\x93\x02%\x12#/api/v1/annotations/{annotation_id}\x12\x80\x02\n\x10UpdateAnnotation\x12,.sift.annotations.v1.UpdateAnnotationRequest\x1a-.sift.annotations.v1.UpdateAnnotationResponse\"\x8e\x01\x92\x41m\x12\x10UpdateAnnotation\x1aYUpdates an existing annotation using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x18\x32\x13/api/v1/annotations:\x01*\x1a\xb4\x01\x92\x41\xb0\x01\x12\x36Service to programmatically interact with annotations.\x1av\n\x1cRead more about annotations.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685B\xb2\x01\n\x17\x63om.sift.annotations.v1B\x10\x41nnotationsProtoP\x01\xa2\x02\x03SAX\xaa\x02\x13Sift.Annotations.V1\xca\x02\x13Sift\\Annotations\\V1\xe2\x02\x1fSift\\Annotations\\V1\\GPBMetadata\xea\x02\x15Sift::Annotations::V1\x92\x41\x16\x12\x14\n\x12\x41nnotation Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sift/annotations/v1/annotations.proto\x12\x13sift.annotations.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1esift/common/type/v1/user.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x81\r\n\nAnnotation\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1f\n\x06run_id\x18\n \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x01R\x05state\x88\x01\x01\x12,\n\x0forganization_id\x18\x0c \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x32\n\x13\x61ssigned_to_user_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x10\x61ssignedToUserId\x12Q\n\x0f\x61nnotation_type\x18\x0e \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x02R\x0e\x61nnotationType\x12\x17\n\x04tags\x18\x0f \x03(\tB\x03\xe0\x41\x02R\x04tags\x12-\n\rlegend_config\x18\x10 \x01(\tB\x03\xe0\x41\x01H\x02R\x0clegendConfig\x88\x01\x01\x12?\n\x17\x63reated_by_condition_id\x18\x11 \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x12 \x01(\tB\x03\xe0\x41\x01H\x04R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x12=\n\x16report_rule_version_id\x18\x13 \x01(\tB\x03\xe0\x41\x01H\x05R\x13reportRuleVersionId\x88\x01\x01\x12\x1d\n\x07pending\x18\x14 \x01(\x08\x42\x03\xe0\x41\x03R\x07pending\x12H\n\x10\x61ssigned_to_user\x18\x15 \x01(\x0b\x32\x19.sift.common.type.v1.UserB\x03\xe0\x41\x03R\x0e\x61ssignedToUser\x12\x44\n\x0c\x64\x65leted_date\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x05\x18\x01\xe0\x41\x01R\x0b\x64\x65letedDate\x12Z\n\x0flinked_channels\x18\x17 \x03(\x0b\x32,.sift.annotations.v1.AnnotationLinkedChannelB\x03\xe0\x41\x01R\x0elinkedChannels\x12 \n\tasset_ids\x18\x18 \x03(\tB\x03\xe0\x41\x01R\x08\x61ssetIds\x12@\n\x08metadata\x18\x19 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12\x44\n\rarchived_date\x18\x1a \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\x1b \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\t\n\x07_run_idB\x08\n\x06_stateB\x10\n\x0e_legend_configB\x1a\n\x18_created_by_condition_idB\'\n%_created_by_rule_condition_version_idB\x19\n\x17_report_rule_version_id\"E\n\x1f\x41nnotationLinkedChannelsChannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"x\n\'AnnotationLinkedChannelsBitFieldElement\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12)\n\x0e\x62it_field_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0c\x62itFieldName\"\xdf\x01\n\x17\x41nnotationLinkedChannel\x12P\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x34.sift.annotations.v1.AnnotationLinkedChannelsChannelH\x00R\x07\x63hannel\x12j\n\x11\x62it_field_element\x18\x02 \x01(\x0b\x32<.sift.annotations.v1.AnnotationLinkedChannelsBitFieldElementH\x00R\x0f\x62itFieldElementB\x06\n\x04type\"\x91\x08\n\x17\x43reateAnnotationRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x1b\n\x06\x61ssets\x18\x05 \x03(\tB\x03\xe0\x41\x01R\x06\x61ssets\x12Z\n\x0flinked_channels\x18\x06 \x03(\x0b\x32,.sift.annotations.v1.AnnotationLinkedChannelB\x03\xe0\x41\x01R\x0elinkedChannels\x12\x17\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12\x1f\n\x06run_id\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x33\n\x11\x61ssign_to_user_id\x18\t \x01(\tB\x03\xe0\x41\x01H\x01R\x0e\x61ssignToUserId\x88\x01\x01\x12,\n\x0forganization_id\x18\n \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x02R\x05state\x88\x01\x01\x12Q\n\x0f\x61nnotation_type\x18\x0c \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x01R\x0e\x61nnotationType\x12?\n\x17\x63reated_by_condition_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12-\n\rlegend_config\x18\r \x01(\tB\x03\xe0\x41\x01H\x04R\x0clegendConfig\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x05R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\t\n\x07_run_idB\x14\n\x12_assign_to_user_idB\x08\n\x06_stateB\x1a\n\x18_created_by_condition_idB\x10\n\x0e_legend_configB\'\n%_created_by_rule_condition_version_id\"`\n\x18\x43reateAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"C\n\x17\x44\x65leteAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"\x1a\n\x18\x44\x65leteAnnotationResponse\"K\n\x1d\x42\x61tchDeleteAnnotationsRequest\x12*\n\x0e\x61nnotation_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\rannotationIds\" \n\x1e\x42\x61tchDeleteAnnotationsResponse\"@\n\x14GetAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"]\n\x15GetAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"\xc9\x01\n\x16ListAnnotationsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x84\x01\n\x17ListAnnotationsResponse\x12\x41\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\x0b\x61nnotations\x12&\n\x0fnext_page_token\x18\x05 \x01(\tR\rnextPageToken\"\xa1\x01\n\x17UpdateAnnotationRequest\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"[\n\x18UpdateAnnotationResponse\x12?\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\nannotation\"D\n\x18\x41rchiveAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"a\n\x19\x41rchiveAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"F\n\x1aUnarchiveAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"c\n\x1bUnarchiveAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"L\n\x1e\x42\x61tchArchiveAnnotationsRequest\x12*\n\x0e\x61nnotation_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\rannotationIds\"i\n\x1f\x42\x61tchArchiveAnnotationsResponse\x12\x46\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\x0b\x61nnotations\"N\n BatchUnarchiveAnnotationsRequest\x12*\n\x0e\x61nnotation_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\rannotationIds\"k\n!BatchUnarchiveAnnotationsResponse\x12\x46\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\x0b\x61nnotations*\x8b\x01\n\x0f\x41nnotationState\x12 \n\x1c\x41NNOTATION_STATE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41NNOTATION_STATE_OPEN\x10\x01\x12\x1c\n\x18\x41NNOTATION_STATE_FLAGGED\x10\x02\x12\x1d\n\x19\x41NNOTATION_STATE_RESOLVED\x10\x03*m\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41NNOTATION_TYPE_DATA_REVIEW\x10\x01\x12\x19\n\x15\x41NNOTATION_TYPE_PHASE\x10\x02\x32\x81\x13\n\x11\x41nnotationService\x12\xbc\x01\n\x10\x43reateAnnotation\x12,.sift.annotations.v1.CreateAnnotationRequest\x1a-.sift.annotations.v1.CreateAnnotationResponse\"K\x92\x41*\x12\x10\x43reateAnnotation\x1a\x16\x43reates an annotation.\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/annotations:\x01*\x12\xcd\x01\n\x10\x44\x65leteAnnotation\x12,.sift.annotations.v1.DeleteAnnotationRequest\x1a-.sift.annotations.v1.DeleteAnnotationResponse\"\\\x88\x02\x01\x92\x41+\x12\x10\x44\x65leteAnnotation\x1a\x17\x41rchives an annotation.\x82\xd3\xe4\x93\x02%*#/api/v1/annotations/{annotation_id}\x12\xd9\x01\n\x11\x41rchiveAnnotation\x12-.sift.annotations.v1.ArchiveAnnotationRequest\x1a..sift.annotations.v1.ArchiveAnnotationResponse\"e\x92\x41,\x12\x11\x41rchiveAnnotation\x1a\x17\x41rchives an annotation.\x82\xd3\xe4\x93\x02\x30\"+/api/v1/annotations/{annotation_id}:archive:\x01*\x12\xe5\x01\n\x13UnarchiveAnnotation\x12/.sift.annotations.v1.UnarchiveAnnotationRequest\x1a\x30.sift.annotations.v1.UnarchiveAnnotationResponse\"k\x92\x41\x30\x12\x13UnarchiveAnnotation\x1a\x19Unarchives an annotation.\x82\xd3\xe4\x93\x02\x32\"-/api/v1/annotations/{annotation_id}:unarchive:\x01*\x12\xe7\x01\n\x16\x42\x61tchDeleteAnnotations\x12\x32.sift.annotations.v1.BatchDeleteAnnotationsRequest\x1a\x33.sift.annotations.v1.BatchDeleteAnnotationsResponse\"d\x88\x02\x01\x92\x41\x34\x12\x15\x42\x61tchDeleteAnnotation\x1a\x1b\x42\x61tch archives annotations.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/annotations:batchDelete:\x01*\x12\xea\x01\n\x17\x42\x61tchArchiveAnnotations\x12\x33.sift.annotations.v1.BatchArchiveAnnotationsRequest\x1a\x34.sift.annotations.v1.BatchArchiveAnnotationsResponse\"d\x92\x41\x36\x12\x17\x42\x61tchArchiveAnnotations\x1a\x1b\x42\x61tch archives annotations.\x82\xd3\xe4\x93\x02%\" /api/v1/annotations:batchArchive:\x01*\x12\xf6\x01\n\x19\x42\x61tchUnarchiveAnnotations\x12\x35.sift.annotations.v1.BatchUnarchiveAnnotationsRequest\x1a\x36.sift.annotations.v1.BatchUnarchiveAnnotationsResponse\"j\x92\x41:\x12\x19\x42\x61tchUnarchiveAnnotations\x1a\x1d\x42\x61tch unarchives annotations.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/annotations:batchUnarchive:\x01*\x12\xcd\x01\n\x0fListAnnotations\x12+.sift.annotations.v1.ListAnnotationsRequest\x1a,.sift.annotations.v1.ListAnnotationsResponse\"_\x92\x41\x41\x12\x0eListAnnotation\x1a/Retrieves annotations using an optional filter.\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/annotations\x12\xbe\x01\n\rGetAnnotation\x12).sift.annotations.v1.GetAnnotationRequest\x1a*.sift.annotations.v1.GetAnnotationResponse\"V\x92\x41(\x12\rGetAnnotation\x1a\x17Retrieves an annotation\x82\xd3\xe4\x93\x02%\x12#/api/v1/annotations/{annotation_id}\x12\x80\x02\n\x10UpdateAnnotation\x12,.sift.annotations.v1.UpdateAnnotationRequest\x1a-.sift.annotations.v1.UpdateAnnotationResponse\"\x8e\x01\x92\x41m\x12\x10UpdateAnnotation\x1aYUpdates an existing annotation using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x18\x32\x13/api/v1/annotations:\x01*\x1a\xb4\x01\x92\x41\xb0\x01\x12\x36Service to programmatically interact with annotations.\x1av\n\x1cRead more about annotations.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685B\xb2\x01\n\x17\x63om.sift.annotations.v1B\x10\x41nnotationsProtoP\x01\xa2\x02\x03SAX\xaa\x02\x13Sift.Annotations.V1\xca\x02\x13Sift\\Annotations\\V1\xe2\x02\x1fSift\\Annotations\\V1\\GPBMetadata\xea\x02\x15Sift::Annotations::V1\x92\x41\x16\x12\x14\n\x12\x41nnotation Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -72,13 +72,17 @@ _globals['_ANNOTATION'].fields_by_name['assigned_to_user']._loaded_options = None _globals['_ANNOTATION'].fields_by_name['assigned_to_user']._serialized_options = b'\340A\003' _globals['_ANNOTATION'].fields_by_name['deleted_date']._loaded_options = None - _globals['_ANNOTATION'].fields_by_name['deleted_date']._serialized_options = b'\340A\001' + _globals['_ANNOTATION'].fields_by_name['deleted_date']._serialized_options = b'\030\001\340A\001' _globals['_ANNOTATION'].fields_by_name['linked_channels']._loaded_options = None _globals['_ANNOTATION'].fields_by_name['linked_channels']._serialized_options = b'\340A\001' _globals['_ANNOTATION'].fields_by_name['asset_ids']._loaded_options = None _globals['_ANNOTATION'].fields_by_name['asset_ids']._serialized_options = b'\340A\001' _globals['_ANNOTATION'].fields_by_name['metadata']._loaded_options = None _globals['_ANNOTATION'].fields_by_name['metadata']._serialized_options = b'\340A\001' + _globals['_ANNOTATION'].fields_by_name['archived_date']._loaded_options = None + _globals['_ANNOTATION'].fields_by_name['archived_date']._serialized_options = b'\340A\001' + _globals['_ANNOTATION'].fields_by_name['is_archived']._loaded_options = None + _globals['_ANNOTATION'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL'].fields_by_name['channel_id']._loaded_options = None _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL'].fields_by_name['channel_id']._serialized_options = b'\340A\002' _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT'].fields_by_name['channel_id']._loaded_options = None @@ -141,56 +145,96 @@ _globals['_UPDATEANNOTATIONREQUEST'].fields_by_name['annotation']._serialized_options = b'\340A\002' _globals['_UPDATEANNOTATIONREQUEST'].fields_by_name['update_mask']._loaded_options = None _globals['_UPDATEANNOTATIONREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002' + _globals['_ARCHIVEANNOTATIONREQUEST'].fields_by_name['annotation_id']._loaded_options = None + _globals['_ARCHIVEANNOTATIONREQUEST'].fields_by_name['annotation_id']._serialized_options = b'\340A\002' + _globals['_ARCHIVEANNOTATIONRESPONSE'].fields_by_name['annotation']._loaded_options = None + _globals['_ARCHIVEANNOTATIONRESPONSE'].fields_by_name['annotation']._serialized_options = b'\340A\002' + _globals['_UNARCHIVEANNOTATIONREQUEST'].fields_by_name['annotation_id']._loaded_options = None + _globals['_UNARCHIVEANNOTATIONREQUEST'].fields_by_name['annotation_id']._serialized_options = b'\340A\002' + _globals['_UNARCHIVEANNOTATIONRESPONSE'].fields_by_name['annotation']._loaded_options = None + _globals['_UNARCHIVEANNOTATIONRESPONSE'].fields_by_name['annotation']._serialized_options = b'\340A\002' + _globals['_BATCHARCHIVEANNOTATIONSREQUEST'].fields_by_name['annotation_ids']._loaded_options = None + _globals['_BATCHARCHIVEANNOTATIONSREQUEST'].fields_by_name['annotation_ids']._serialized_options = b'\340A\002' + _globals['_BATCHARCHIVEANNOTATIONSRESPONSE'].fields_by_name['annotations']._loaded_options = None + _globals['_BATCHARCHIVEANNOTATIONSRESPONSE'].fields_by_name['annotations']._serialized_options = b'\340A\002' + _globals['_BATCHUNARCHIVEANNOTATIONSREQUEST'].fields_by_name['annotation_ids']._loaded_options = None + _globals['_BATCHUNARCHIVEANNOTATIONSREQUEST'].fields_by_name['annotation_ids']._serialized_options = b'\340A\002' + _globals['_BATCHUNARCHIVEANNOTATIONSRESPONSE'].fields_by_name['annotations']._loaded_options = None + _globals['_BATCHUNARCHIVEANNOTATIONSRESPONSE'].fields_by_name['annotations']._serialized_options = b'\340A\002' _globals['_ANNOTATIONSERVICE']._loaded_options = None _globals['_ANNOTATIONSERVICE']._serialized_options = b'\222A\260\001\0226Service to programmatically interact with annotations.\032v\n\034Read more about annotations.\022Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685' _globals['_ANNOTATIONSERVICE'].methods_by_name['CreateAnnotation']._loaded_options = None _globals['_ANNOTATIONSERVICE'].methods_by_name['CreateAnnotation']._serialized_options = b'\222A*\022\020CreateAnnotation\032\026Creates an annotation.\202\323\344\223\002\030\"\023/api/v1/annotations:\001*' _globals['_ANNOTATIONSERVICE'].methods_by_name['DeleteAnnotation']._loaded_options = None - _globals['_ANNOTATIONSERVICE'].methods_by_name['DeleteAnnotation']._serialized_options = b'\222A*\022\020DeleteAnnotation\032\026Deletes an annotation.\202\323\344\223\002%*#/api/v1/annotations/{annotation_id}' + _globals['_ANNOTATIONSERVICE'].methods_by_name['DeleteAnnotation']._serialized_options = b'\210\002\001\222A+\022\020DeleteAnnotation\032\027Archives an annotation.\202\323\344\223\002%*#/api/v1/annotations/{annotation_id}' + _globals['_ANNOTATIONSERVICE'].methods_by_name['ArchiveAnnotation']._loaded_options = None + _globals['_ANNOTATIONSERVICE'].methods_by_name['ArchiveAnnotation']._serialized_options = b'\222A,\022\021ArchiveAnnotation\032\027Archives an annotation.\202\323\344\223\0020\"+/api/v1/annotations/{annotation_id}:archive:\001*' + _globals['_ANNOTATIONSERVICE'].methods_by_name['UnarchiveAnnotation']._loaded_options = None + _globals['_ANNOTATIONSERVICE'].methods_by_name['UnarchiveAnnotation']._serialized_options = b'\222A0\022\023UnarchiveAnnotation\032\031Unarchives an annotation.\202\323\344\223\0022\"-/api/v1/annotations/{annotation_id}:unarchive:\001*' _globals['_ANNOTATIONSERVICE'].methods_by_name['BatchDeleteAnnotations']._loaded_options = None - _globals['_ANNOTATIONSERVICE'].methods_by_name['BatchDeleteAnnotations']._serialized_options = b'\222A3\022\025BatchDeleteAnnotation\032\032Batch deletes annotations.\202\323\344\223\002$\"\037/api/v1/annotations:batchDelete:\001*' + _globals['_ANNOTATIONSERVICE'].methods_by_name['BatchDeleteAnnotations']._serialized_options = b'\210\002\001\222A4\022\025BatchDeleteAnnotation\032\033Batch archives annotations.\202\323\344\223\002$\"\037/api/v1/annotations:batchDelete:\001*' + _globals['_ANNOTATIONSERVICE'].methods_by_name['BatchArchiveAnnotations']._loaded_options = None + _globals['_ANNOTATIONSERVICE'].methods_by_name['BatchArchiveAnnotations']._serialized_options = b'\222A6\022\027BatchArchiveAnnotations\032\033Batch archives annotations.\202\323\344\223\002%\" /api/v1/annotations:batchArchive:\001*' + _globals['_ANNOTATIONSERVICE'].methods_by_name['BatchUnarchiveAnnotations']._loaded_options = None + _globals['_ANNOTATIONSERVICE'].methods_by_name['BatchUnarchiveAnnotations']._serialized_options = b'\222A:\022\031BatchUnarchiveAnnotations\032\035Batch unarchives annotations.\202\323\344\223\002\'\"\"/api/v1/annotations:batchUnarchive:\001*' _globals['_ANNOTATIONSERVICE'].methods_by_name['ListAnnotations']._loaded_options = None _globals['_ANNOTATIONSERVICE'].methods_by_name['ListAnnotations']._serialized_options = b'\222AA\022\016ListAnnotation\032/Retrieves annotations using an optional filter.\202\323\344\223\002\025\022\023/api/v1/annotations' _globals['_ANNOTATIONSERVICE'].methods_by_name['GetAnnotation']._loaded_options = None _globals['_ANNOTATIONSERVICE'].methods_by_name['GetAnnotation']._serialized_options = b'\222A(\022\rGetAnnotation\032\027Retrieves an annotation\202\323\344\223\002%\022#/api/v1/annotations/{annotation_id}' _globals['_ANNOTATIONSERVICE'].methods_by_name['UpdateAnnotation']._loaded_options = None _globals['_ANNOTATIONSERVICE'].methods_by_name['UpdateAnnotation']._serialized_options = b'\222Am\022\020UpdateAnnotation\032YUpdates an existing annotation using using the list of fields specified in `update_mask`.\202\323\344\223\002\0302\023/api/v1/annotations:\001*' - _globals['_ANNOTATIONSTATE']._serialized_start=4390 - _globals['_ANNOTATIONSTATE']._serialized_end=4529 - _globals['_ANNOTATIONTYPE']._serialized_start=4531 - _globals['_ANNOTATIONTYPE']._serialized_end=4640 + _globals['_ANNOTATIONSTATE']._serialized_start=5216 + _globals['_ANNOTATIONSTATE']._serialized_end=5355 + _globals['_ANNOTATIONTYPE']._serialized_start=5357 + _globals['_ANNOTATIONTYPE']._serialized_end=5466 _globals['_ANNOTATION']._serialized_start=306 - _globals['_ANNOTATION']._serialized_end=1861 - _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_start=1863 - _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_end=1932 - _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_start=1934 - _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_end=2054 - _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_start=2057 - _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_end=2280 - _globals['_CREATEANNOTATIONREQUEST']._serialized_start=2283 - _globals['_CREATEANNOTATIONREQUEST']._serialized_end=3324 - _globals['_CREATEANNOTATIONRESPONSE']._serialized_start=3326 - _globals['_CREATEANNOTATIONRESPONSE']._serialized_end=3422 - _globals['_DELETEANNOTATIONREQUEST']._serialized_start=3424 - _globals['_DELETEANNOTATIONREQUEST']._serialized_end=3491 - _globals['_DELETEANNOTATIONRESPONSE']._serialized_start=3493 - _globals['_DELETEANNOTATIONRESPONSE']._serialized_end=3519 - _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_start=3521 - _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_end=3596 - _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_start=3598 - _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_end=3630 - _globals['_GETANNOTATIONREQUEST']._serialized_start=3632 - _globals['_GETANNOTATIONREQUEST']._serialized_end=3696 - _globals['_GETANNOTATIONRESPONSE']._serialized_start=3698 - _globals['_GETANNOTATIONRESPONSE']._serialized_end=3791 - _globals['_LISTANNOTATIONSREQUEST']._serialized_start=3794 - _globals['_LISTANNOTATIONSREQUEST']._serialized_end=3995 - _globals['_LISTANNOTATIONSRESPONSE']._serialized_start=3998 - _globals['_LISTANNOTATIONSRESPONSE']._serialized_end=4130 - _globals['_UPDATEANNOTATIONREQUEST']._serialized_start=4133 - _globals['_UPDATEANNOTATIONREQUEST']._serialized_end=4294 - _globals['_UPDATEANNOTATIONRESPONSE']._serialized_start=4296 - _globals['_UPDATEANNOTATIONRESPONSE']._serialized_end=4387 - _globals['_ANNOTATIONSERVICE']._serialized_start=4643 - _globals['_ANNOTATIONSERVICE']._serialized_end=6130 + _globals['_ANNOTATION']._serialized_end=1971 + _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_start=1973 + _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_end=2042 + _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_start=2044 + _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_end=2164 + _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_start=2167 + _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_end=2390 + _globals['_CREATEANNOTATIONREQUEST']._serialized_start=2393 + _globals['_CREATEANNOTATIONREQUEST']._serialized_end=3434 + _globals['_CREATEANNOTATIONRESPONSE']._serialized_start=3436 + _globals['_CREATEANNOTATIONRESPONSE']._serialized_end=3532 + _globals['_DELETEANNOTATIONREQUEST']._serialized_start=3534 + _globals['_DELETEANNOTATIONREQUEST']._serialized_end=3601 + _globals['_DELETEANNOTATIONRESPONSE']._serialized_start=3603 + _globals['_DELETEANNOTATIONRESPONSE']._serialized_end=3629 + _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_start=3631 + _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_end=3706 + _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_start=3708 + _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_end=3740 + _globals['_GETANNOTATIONREQUEST']._serialized_start=3742 + _globals['_GETANNOTATIONREQUEST']._serialized_end=3806 + _globals['_GETANNOTATIONRESPONSE']._serialized_start=3808 + _globals['_GETANNOTATIONRESPONSE']._serialized_end=3901 + _globals['_LISTANNOTATIONSREQUEST']._serialized_start=3904 + _globals['_LISTANNOTATIONSREQUEST']._serialized_end=4105 + _globals['_LISTANNOTATIONSRESPONSE']._serialized_start=4108 + _globals['_LISTANNOTATIONSRESPONSE']._serialized_end=4240 + _globals['_UPDATEANNOTATIONREQUEST']._serialized_start=4243 + _globals['_UPDATEANNOTATIONREQUEST']._serialized_end=4404 + _globals['_UPDATEANNOTATIONRESPONSE']._serialized_start=4406 + _globals['_UPDATEANNOTATIONRESPONSE']._serialized_end=4497 + _globals['_ARCHIVEANNOTATIONREQUEST']._serialized_start=4499 + _globals['_ARCHIVEANNOTATIONREQUEST']._serialized_end=4567 + _globals['_ARCHIVEANNOTATIONRESPONSE']._serialized_start=4569 + _globals['_ARCHIVEANNOTATIONRESPONSE']._serialized_end=4666 + _globals['_UNARCHIVEANNOTATIONREQUEST']._serialized_start=4668 + _globals['_UNARCHIVEANNOTATIONREQUEST']._serialized_end=4738 + _globals['_UNARCHIVEANNOTATIONRESPONSE']._serialized_start=4740 + _globals['_UNARCHIVEANNOTATIONRESPONSE']._serialized_end=4839 + _globals['_BATCHARCHIVEANNOTATIONSREQUEST']._serialized_start=4841 + _globals['_BATCHARCHIVEANNOTATIONSREQUEST']._serialized_end=4917 + _globals['_BATCHARCHIVEANNOTATIONSRESPONSE']._serialized_start=4919 + _globals['_BATCHARCHIVEANNOTATIONSRESPONSE']._serialized_end=5024 + _globals['_BATCHUNARCHIVEANNOTATIONSREQUEST']._serialized_start=5026 + _globals['_BATCHUNARCHIVEANNOTATIONSREQUEST']._serialized_end=5104 + _globals['_BATCHUNARCHIVEANNOTATIONSRESPONSE']._serialized_start=5106 + _globals['_BATCHUNARCHIVEANNOTATIONSRESPONSE']._serialized_end=5213 + _globals['_ANNOTATIONSERVICE']._serialized_start=5469 + _globals['_ANNOTATIONSERVICE']._serialized_end=7902 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/annotations/v1/annotations_pb2.pyi b/python/lib/sift/annotations/v1/annotations_pb2.pyi index 798d6ed9c..f78a78738 100644 --- a/python/lib/sift/annotations/v1/annotations_pb2.pyi +++ b/python/lib/sift/annotations/v1/annotations_pb2.pyi @@ -88,6 +88,8 @@ class Annotation(google.protobuf.message.Message): LINKED_CHANNELS_FIELD_NUMBER: builtins.int ASSET_IDS_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + ARCHIVED_DATE_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int annotation_id: builtins.str name: builtins.str description: builtins.str @@ -106,6 +108,8 @@ class Annotation(google.protobuf.message.Message): """An annotation is pending if it is part of an ongoing violation of a rule condition. The `end_time` of a pending annotation might be set, but is not yet finalized. """ + is_archived: builtins.bool + """is_archived is a inferred from when archived_date is not null""" @property def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -126,6 +130,8 @@ class Annotation(google.protobuf.message.Message): def asset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.metadata.v1.metadata_pb2.MetadataValue]: ... + @property + def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... def __init__( self, *, @@ -154,9 +160,11 @@ class Annotation(google.protobuf.message.Message): linked_channels: collections.abc.Iterable[global___AnnotationLinkedChannel] | None = ..., asset_ids: collections.abc.Iterable[builtins.str] | None = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_report_rule_version_id", b"_report_rule_version_id", "_run_id", b"_run_id", "_state", b"_state", "assigned_to_user", b"assigned_to_user", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "end_time", b"end_time", "legend_config", b"legend_config", "modified_date", b"modified_date", "report_rule_version_id", b"report_rule_version_id", "run_id", b"run_id", "start_time", b"start_time", "state", b"state"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_report_rule_version_id", b"_report_rule_version_id", "_run_id", b"_run_id", "_state", b"_state", "annotation_id", b"annotation_id", "annotation_type", b"annotation_type", "asset_ids", b"asset_ids", "assigned_to_user", b"assigned_to_user", "assigned_to_user_id", b"assigned_to_user_id", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "description", b"description", "end_time", b"end_time", "legend_config", b"legend_config", "linked_channels", b"linked_channels", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "pending", b"pending", "report_rule_version_id", b"report_rule_version_id", "run_id", b"run_id", "start_time", b"start_time", "state", b"state", "tags", b"tags"]) -> None: ... + def HasField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_report_rule_version_id", b"_report_rule_version_id", "_run_id", b"_run_id", "_state", b"_state", "archived_date", b"archived_date", "assigned_to_user", b"assigned_to_user", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "end_time", b"end_time", "legend_config", b"legend_config", "modified_date", b"modified_date", "report_rule_version_id", b"report_rule_version_id", "run_id", b"run_id", "start_time", b"start_time", "state", b"state"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_report_rule_version_id", b"_report_rule_version_id", "_run_id", b"_run_id", "_state", b"_state", "annotation_id", b"annotation_id", "annotation_type", b"annotation_type", "archived_date", b"archived_date", "asset_ids", b"asset_ids", "assigned_to_user", b"assigned_to_user", "assigned_to_user_id", b"assigned_to_user_id", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "description", b"description", "end_time", b"end_time", "is_archived", b"is_archived", "legend_config", b"legend_config", "linked_channels", b"linked_channels", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "pending", b"pending", "report_rule_version_id", b"report_rule_version_id", "run_id", b"run_id", "start_time", b"start_time", "state", b"state", "tags", b"tags"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_created_by_condition_id", b"_created_by_condition_id"]) -> typing.Literal["created_by_condition_id"] | None: ... @typing.overload @@ -474,7 +482,7 @@ class ListAnnotationsRequest(google.protobuf.message.Message): """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are `annotation_id`, `start_time`, `end_time`, `created_date`, `modified_date`, `run_id`, `name`, `description`, `state`, `created_by_user_id`, `created_by_rule_condition_version_id`, - `annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, `campaign_reports`, and `metadata`. + `annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, `campaign_reports`, `metadata`, `archived_date`, and `is_archived`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/annotations#annotation). Optional. """ @@ -571,3 +579,151 @@ class UpdateAnnotationResponse(google.protobuf.message.Message): def ClearField(self, field_name: typing.Literal["annotation", b"annotation"]) -> None: ... global___UpdateAnnotationResponse = UpdateAnnotationResponse + +@typing.final +class ArchiveAnnotationRequest(google.protobuf.message.Message): + """The request for a call to `AnnotationService_ArchiveAnnotation`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_ID_FIELD_NUMBER: builtins.int + annotation_id: builtins.str + def __init__( + self, + *, + annotation_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotation_id", b"annotation_id"]) -> None: ... + +global___ArchiveAnnotationRequest = ArchiveAnnotationRequest + +@typing.final +class ArchiveAnnotationResponse(google.protobuf.message.Message): + """The response of a call to `AnnotationService_ArchiveAnnotation`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_FIELD_NUMBER: builtins.int + @property + def annotation(self) -> global___Annotation: ... + def __init__( + self, + *, + annotation: global___Annotation | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["annotation", b"annotation"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["annotation", b"annotation"]) -> None: ... + +global___ArchiveAnnotationResponse = ArchiveAnnotationResponse + +@typing.final +class UnarchiveAnnotationRequest(google.protobuf.message.Message): + """The request for a call to `AnnotationService_UnarchiveAnnotation`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_ID_FIELD_NUMBER: builtins.int + annotation_id: builtins.str + def __init__( + self, + *, + annotation_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotation_id", b"annotation_id"]) -> None: ... + +global___UnarchiveAnnotationRequest = UnarchiveAnnotationRequest + +@typing.final +class UnarchiveAnnotationResponse(google.protobuf.message.Message): + """The response of a call to `AnnotationService_UnarchiveAnnotation`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_FIELD_NUMBER: builtins.int + @property + def annotation(self) -> global___Annotation: ... + def __init__( + self, + *, + annotation: global___Annotation | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["annotation", b"annotation"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["annotation", b"annotation"]) -> None: ... + +global___UnarchiveAnnotationResponse = UnarchiveAnnotationResponse + +@typing.final +class BatchArchiveAnnotationsRequest(google.protobuf.message.Message): + """The request for a call to `AnnotationService_BatchArchiveAnnotations`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_IDS_FIELD_NUMBER: builtins.int + @property + def annotation_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """Limit of 1000 annotations per batch""" + + def __init__( + self, + *, + annotation_ids: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotation_ids", b"annotation_ids"]) -> None: ... + +global___BatchArchiveAnnotationsRequest = BatchArchiveAnnotationsRequest + +@typing.final +class BatchArchiveAnnotationsResponse(google.protobuf.message.Message): + """The response of a call to `AnnotationService_BatchArchiveAnnotations`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATIONS_FIELD_NUMBER: builtins.int + @property + def annotations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Annotation]: ... + def __init__( + self, + *, + annotations: collections.abc.Iterable[global___Annotation] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotations", b"annotations"]) -> None: ... + +global___BatchArchiveAnnotationsResponse = BatchArchiveAnnotationsResponse + +@typing.final +class BatchUnarchiveAnnotationsRequest(google.protobuf.message.Message): + """The request for a call to `AnnotationService_BatchUnarchiveAnnotations`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_IDS_FIELD_NUMBER: builtins.int + @property + def annotation_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """Limit of 1000 annotations per batch""" + + def __init__( + self, + *, + annotation_ids: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotation_ids", b"annotation_ids"]) -> None: ... + +global___BatchUnarchiveAnnotationsRequest = BatchUnarchiveAnnotationsRequest + +@typing.final +class BatchUnarchiveAnnotationsResponse(google.protobuf.message.Message): + """The response of a call to `AnnotationService_BatchUnarchiveAnnotations`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATIONS_FIELD_NUMBER: builtins.int + @property + def annotations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Annotation]: ... + def __init__( + self, + *, + annotations: collections.abc.Iterable[global___Annotation] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotations", b"annotations"]) -> None: ... + +global___BatchUnarchiveAnnotationsResponse = BatchUnarchiveAnnotationsResponse diff --git a/python/lib/sift/annotations/v1/annotations_pb2_grpc.py b/python/lib/sift/annotations/v1/annotations_pb2_grpc.py index 696676892..3a13f662b 100644 --- a/python/lib/sift/annotations/v1/annotations_pb2_grpc.py +++ b/python/lib/sift/annotations/v1/annotations_pb2_grpc.py @@ -24,11 +24,31 @@ def __init__(self, channel): request_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.DeleteAnnotationRequest.SerializeToString, response_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.DeleteAnnotationResponse.FromString, ) + self.ArchiveAnnotation = channel.unary_unary( + '/sift.annotations.v1.AnnotationService/ArchiveAnnotation', + request_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.ArchiveAnnotationRequest.SerializeToString, + response_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.ArchiveAnnotationResponse.FromString, + ) + self.UnarchiveAnnotation = channel.unary_unary( + '/sift.annotations.v1.AnnotationService/UnarchiveAnnotation', + request_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.UnarchiveAnnotationRequest.SerializeToString, + response_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.UnarchiveAnnotationResponse.FromString, + ) self.BatchDeleteAnnotations = channel.unary_unary( '/sift.annotations.v1.AnnotationService/BatchDeleteAnnotations', request_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchDeleteAnnotationsRequest.SerializeToString, response_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchDeleteAnnotationsResponse.FromString, ) + self.BatchArchiveAnnotations = channel.unary_unary( + '/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations', + request_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchArchiveAnnotationsRequest.SerializeToString, + response_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchArchiveAnnotationsResponse.FromString, + ) + self.BatchUnarchiveAnnotations = channel.unary_unary( + '/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations', + request_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchUnarchiveAnnotationsRequest.SerializeToString, + response_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchUnarchiveAnnotationsResponse.FromString, + ) self.ListAnnotations = channel.unary_unary( '/sift.annotations.v1.AnnotationService/ListAnnotations', request_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.ListAnnotationsRequest.SerializeToString, @@ -57,17 +77,48 @@ def CreateAnnotation(self, request, context): raise NotImplementedError('Method not implemented!') def DeleteAnnotation(self, request, context): - """Delete Annotation is deprecated. Calling this will archive the annotation, which should be done using the - UpdateAnnotation method with the delete date set to a non-null value. Restoring an annotation can be done - by calling UpdateAnnotation with the delete date set to a null value. + """Delete Annotation is deprecated. Use ArchiveAnnotation instead. + Calling this will archive the annotation, which should be done using the + ArchiveAnnotation method or the UpdateAnnotation method with the delete date set to a non-null value. + Restoring an annotation can be done using the UnarchiveAnnotation method or by calling + UpdateAnnotation with the delete date set to a null value. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ArchiveAnnotation(self, request, context): + """Archives an annotation. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnarchiveAnnotation(self, request, context): + """Unarchives an annotation. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def BatchDeleteAnnotations(self, request, context): - """BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored - by calling UpdateAnnotation with the delete date set to a null value. + """BatchDeleteAnnotations is deprecated. Use BatchArchiveAnnotations instead. + BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored + by calling UnarchiveAnnotation or UpdateAnnotation with the delete date set to a null value. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchArchiveAnnotations(self, request, context): + """Batch archives annotations. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchUnarchiveAnnotations(self, request, context): + """Batch unarchives annotations. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -107,11 +158,31 @@ def add_AnnotationServiceServicer_to_server(servicer, server): request_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.DeleteAnnotationRequest.FromString, response_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.DeleteAnnotationResponse.SerializeToString, ), + 'ArchiveAnnotation': grpc.unary_unary_rpc_method_handler( + servicer.ArchiveAnnotation, + request_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.ArchiveAnnotationRequest.FromString, + response_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.ArchiveAnnotationResponse.SerializeToString, + ), + 'UnarchiveAnnotation': grpc.unary_unary_rpc_method_handler( + servicer.UnarchiveAnnotation, + request_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.UnarchiveAnnotationRequest.FromString, + response_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.UnarchiveAnnotationResponse.SerializeToString, + ), 'BatchDeleteAnnotations': grpc.unary_unary_rpc_method_handler( servicer.BatchDeleteAnnotations, request_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchDeleteAnnotationsRequest.FromString, response_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchDeleteAnnotationsResponse.SerializeToString, ), + 'BatchArchiveAnnotations': grpc.unary_unary_rpc_method_handler( + servicer.BatchArchiveAnnotations, + request_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchArchiveAnnotationsRequest.FromString, + response_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchArchiveAnnotationsResponse.SerializeToString, + ), + 'BatchUnarchiveAnnotations': grpc.unary_unary_rpc_method_handler( + servicer.BatchUnarchiveAnnotations, + request_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchUnarchiveAnnotationsRequest.FromString, + response_serializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchUnarchiveAnnotationsResponse.SerializeToString, + ), 'ListAnnotations': grpc.unary_unary_rpc_method_handler( servicer.ListAnnotations, request_deserializer=sift_dot_annotations_dot_v1_dot_annotations__pb2.ListAnnotationsRequest.FromString, @@ -171,6 +242,40 @@ def DeleteAnnotation(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def ArchiveAnnotation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.annotations.v1.AnnotationService/ArchiveAnnotation', + sift_dot_annotations_dot_v1_dot_annotations__pb2.ArchiveAnnotationRequest.SerializeToString, + sift_dot_annotations_dot_v1_dot_annotations__pb2.ArchiveAnnotationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UnarchiveAnnotation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.annotations.v1.AnnotationService/UnarchiveAnnotation', + sift_dot_annotations_dot_v1_dot_annotations__pb2.UnarchiveAnnotationRequest.SerializeToString, + sift_dot_annotations_dot_v1_dot_annotations__pb2.UnarchiveAnnotationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def BatchDeleteAnnotations(request, target, @@ -188,6 +293,40 @@ def BatchDeleteAnnotations(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def BatchArchiveAnnotations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations', + sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchArchiveAnnotationsRequest.SerializeToString, + sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchArchiveAnnotationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def BatchUnarchiveAnnotations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations', + sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchUnarchiveAnnotationsRequest.SerializeToString, + sift_dot_annotations_dot_v1_dot_annotations__pb2.BatchUnarchiveAnnotationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def ListAnnotations(request, target, diff --git a/python/lib/sift/annotations/v1/annotations_pb2_grpc.pyi b/python/lib/sift/annotations/v1/annotations_pb2_grpc.pyi index c0e7c2585..b00c12c69 100644 --- a/python/lib/sift/annotations/v1/annotations_pb2_grpc.pyi +++ b/python/lib/sift/annotations/v1/annotations_pb2_grpc.pyi @@ -29,19 +29,46 @@ class AnnotationServiceStub: sift.annotations.v1.annotations_pb2.DeleteAnnotationRequest, sift.annotations.v1.annotations_pb2.DeleteAnnotationResponse, ] - """Delete Annotation is deprecated. Calling this will archive the annotation, which should be done using the - UpdateAnnotation method with the delete date set to a non-null value. Restoring an annotation can be done - by calling UpdateAnnotation with the delete date set to a null value. + """Delete Annotation is deprecated. Use ArchiveAnnotation instead. + Calling this will archive the annotation, which should be done using the + ArchiveAnnotation method or the UpdateAnnotation method with the delete date set to a non-null value. + Restoring an annotation can be done using the UnarchiveAnnotation method or by calling + UpdateAnnotation with the delete date set to a null value. """ + ArchiveAnnotation: grpc.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.ArchiveAnnotationRequest, + sift.annotations.v1.annotations_pb2.ArchiveAnnotationResponse, + ] + """Archives an annotation.""" + + UnarchiveAnnotation: grpc.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.UnarchiveAnnotationRequest, + sift.annotations.v1.annotations_pb2.UnarchiveAnnotationResponse, + ] + """Unarchives an annotation.""" + BatchDeleteAnnotations: grpc.UnaryUnaryMultiCallable[ sift.annotations.v1.annotations_pb2.BatchDeleteAnnotationsRequest, sift.annotations.v1.annotations_pb2.BatchDeleteAnnotationsResponse, ] - """BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored - by calling UpdateAnnotation with the delete date set to a null value. + """BatchDeleteAnnotations is deprecated. Use BatchArchiveAnnotations instead. + BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored + by calling UnarchiveAnnotation or UpdateAnnotation with the delete date set to a null value. """ + BatchArchiveAnnotations: grpc.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.BatchArchiveAnnotationsRequest, + sift.annotations.v1.annotations_pb2.BatchArchiveAnnotationsResponse, + ] + """Batch archives annotations.""" + + BatchUnarchiveAnnotations: grpc.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.BatchUnarchiveAnnotationsRequest, + sift.annotations.v1.annotations_pb2.BatchUnarchiveAnnotationsResponse, + ] + """Batch unarchives annotations.""" + ListAnnotations: grpc.UnaryUnaryMultiCallable[ sift.annotations.v1.annotations_pb2.ListAnnotationsRequest, sift.annotations.v1.annotations_pb2.ListAnnotationsResponse, @@ -71,19 +98,46 @@ class AnnotationServiceAsyncStub: sift.annotations.v1.annotations_pb2.DeleteAnnotationRequest, sift.annotations.v1.annotations_pb2.DeleteAnnotationResponse, ] - """Delete Annotation is deprecated. Calling this will archive the annotation, which should be done using the - UpdateAnnotation method with the delete date set to a non-null value. Restoring an annotation can be done - by calling UpdateAnnotation with the delete date set to a null value. + """Delete Annotation is deprecated. Use ArchiveAnnotation instead. + Calling this will archive the annotation, which should be done using the + ArchiveAnnotation method or the UpdateAnnotation method with the delete date set to a non-null value. + Restoring an annotation can be done using the UnarchiveAnnotation method or by calling + UpdateAnnotation with the delete date set to a null value. """ + ArchiveAnnotation: grpc.aio.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.ArchiveAnnotationRequest, + sift.annotations.v1.annotations_pb2.ArchiveAnnotationResponse, + ] + """Archives an annotation.""" + + UnarchiveAnnotation: grpc.aio.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.UnarchiveAnnotationRequest, + sift.annotations.v1.annotations_pb2.UnarchiveAnnotationResponse, + ] + """Unarchives an annotation.""" + BatchDeleteAnnotations: grpc.aio.UnaryUnaryMultiCallable[ sift.annotations.v1.annotations_pb2.BatchDeleteAnnotationsRequest, sift.annotations.v1.annotations_pb2.BatchDeleteAnnotationsResponse, ] - """BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored - by calling UpdateAnnotation with the delete date set to a null value. + """BatchDeleteAnnotations is deprecated. Use BatchArchiveAnnotations instead. + BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored + by calling UnarchiveAnnotation or UpdateAnnotation with the delete date set to a null value. """ + BatchArchiveAnnotations: grpc.aio.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.BatchArchiveAnnotationsRequest, + sift.annotations.v1.annotations_pb2.BatchArchiveAnnotationsResponse, + ] + """Batch archives annotations.""" + + BatchUnarchiveAnnotations: grpc.aio.UnaryUnaryMultiCallable[ + sift.annotations.v1.annotations_pb2.BatchUnarchiveAnnotationsRequest, + sift.annotations.v1.annotations_pb2.BatchUnarchiveAnnotationsResponse, + ] + """Batch unarchives annotations.""" + ListAnnotations: grpc.aio.UnaryUnaryMultiCallable[ sift.annotations.v1.annotations_pb2.ListAnnotationsRequest, sift.annotations.v1.annotations_pb2.ListAnnotationsResponse, @@ -117,21 +171,56 @@ class AnnotationServiceServicer(metaclass=abc.ABCMeta): request: sift.annotations.v1.annotations_pb2.DeleteAnnotationRequest, context: _ServicerContext, ) -> typing.Union[sift.annotations.v1.annotations_pb2.DeleteAnnotationResponse, collections.abc.Awaitable[sift.annotations.v1.annotations_pb2.DeleteAnnotationResponse]]: - """Delete Annotation is deprecated. Calling this will archive the annotation, which should be done using the - UpdateAnnotation method with the delete date set to a non-null value. Restoring an annotation can be done - by calling UpdateAnnotation with the delete date set to a null value. + """Delete Annotation is deprecated. Use ArchiveAnnotation instead. + Calling this will archive the annotation, which should be done using the + ArchiveAnnotation method or the UpdateAnnotation method with the delete date set to a non-null value. + Restoring an annotation can be done using the UnarchiveAnnotation method or by calling + UpdateAnnotation with the delete date set to a null value. """ + @abc.abstractmethod + def ArchiveAnnotation( + self, + request: sift.annotations.v1.annotations_pb2.ArchiveAnnotationRequest, + context: _ServicerContext, + ) -> typing.Union[sift.annotations.v1.annotations_pb2.ArchiveAnnotationResponse, collections.abc.Awaitable[sift.annotations.v1.annotations_pb2.ArchiveAnnotationResponse]]: + """Archives an annotation.""" + + @abc.abstractmethod + def UnarchiveAnnotation( + self, + request: sift.annotations.v1.annotations_pb2.UnarchiveAnnotationRequest, + context: _ServicerContext, + ) -> typing.Union[sift.annotations.v1.annotations_pb2.UnarchiveAnnotationResponse, collections.abc.Awaitable[sift.annotations.v1.annotations_pb2.UnarchiveAnnotationResponse]]: + """Unarchives an annotation.""" + @abc.abstractmethod def BatchDeleteAnnotations( self, request: sift.annotations.v1.annotations_pb2.BatchDeleteAnnotationsRequest, context: _ServicerContext, ) -> typing.Union[sift.annotations.v1.annotations_pb2.BatchDeleteAnnotationsResponse, collections.abc.Awaitable[sift.annotations.v1.annotations_pb2.BatchDeleteAnnotationsResponse]]: - """BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored - by calling UpdateAnnotation with the delete date set to a null value. + """BatchDeleteAnnotations is deprecated. Use BatchArchiveAnnotations instead. + BatchDeleteAnnotations will archive the annotations specified in the request. These can be restored + by calling UnarchiveAnnotation or UpdateAnnotation with the delete date set to a null value. """ + @abc.abstractmethod + def BatchArchiveAnnotations( + self, + request: sift.annotations.v1.annotations_pb2.BatchArchiveAnnotationsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.annotations.v1.annotations_pb2.BatchArchiveAnnotationsResponse, collections.abc.Awaitable[sift.annotations.v1.annotations_pb2.BatchArchiveAnnotationsResponse]]: + """Batch archives annotations.""" + + @abc.abstractmethod + def BatchUnarchiveAnnotations( + self, + request: sift.annotations.v1.annotations_pb2.BatchUnarchiveAnnotationsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.annotations.v1.annotations_pb2.BatchUnarchiveAnnotationsResponse, collections.abc.Awaitable[sift.annotations.v1.annotations_pb2.BatchUnarchiveAnnotationsResponse]]: + """Batch unarchives annotations.""" + @abc.abstractmethod def ListAnnotations( self, diff --git a/python/lib/sift/api_keys/v2/api_keys_pb2.py b/python/lib/sift/api_keys/v2/api_keys_pb2.py index d4f26f191..c8a6c2197 100644 --- a/python/lib/sift/api_keys/v2/api_keys_pb2.py +++ b/python/lib/sift/api_keys/v2/api_keys_pb2.py @@ -12,6 +12,7 @@ _sym_db = _symbol_database.Default() +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 @@ -19,7 +20,7 @@ from sift.common.type.v1 import organization_pb2 as sift_dot_common_dot_type_dot_v1_dot_organization__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/api_keys/v2/api_keys.proto\x12\x10sift.api_keys.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a&sift/common/type/v1/organization.proto\"\xd8\x01\n\x06\x41piKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x06userId\"U\n\x14\x43reateApiKeyResponse\x12=\n\x07\x61pi_key\x18\x01 \x01(\x0b\x32\x1f.sift.api_keys.v2.CreatedApiKeyB\x03\xe0\x41\x02R\x06\x61piKey\"\xf6\x01\n\rCreatedApiKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x15\n\x03key\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x03key\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x06userId\"\x97\x01\n\x12ListApiKeysRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"|\n\x13ListApiKeysResponse\x12\x38\n\x08\x61pi_keys\x18\x01 \x03(\x0b\x32\x18.sift.api_keys.v2.ApiKeyB\x03\xe0\x41\x02R\x07\x61piKeys\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"L\n\x13\x43reateApiKeyRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1c\n\x07user_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06userId\"8\n\x13\x44\x65leteApiKeyRequest\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\"\x16\n\x14\x44\x65leteApiKeyResponse\"\x1b\n\x19\x41piKeyOrganizationRequest\"c\n\x1a\x41piKeyOrganizationResponse\x12\x45\n\x0corganization\x18\x01 \x01(\x0b\x32!.sift.common.type.v1.OrganizationR\x0corganization2\xee\x06\n\rApiKeyService\x12\xcf\x01\n\x0bListApiKeys\x12$.sift.api_keys.v2.ListApiKeysRequest\x1a%.sift.api_keys.v2.ListApiKeysResponse\"s\x92\x41X\x12\x0bListApiKeys\x1a,Retrieves API keys using an optional filter.*\x1b\x41piKeyService_ListApiKeysV2\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v2/api-keys\x12\xbe\x01\n\x0c\x43reateApiKey\x12%.sift.api_keys.v2.CreateApiKeyRequest\x1a&.sift.api_keys.v2.CreateApiKeyResponse\"_\x92\x41\x41\x12\x0c\x43reateApiKey\x1a\x13\x43reates an API key.*\x1c\x41piKeyService_CreateApiKeyV2\x82\xd3\xe4\x93\x02\x15\"\x10/api/v2/api-keys:\x01*\x12\xc8\x01\n\x0c\x44\x65leteApiKey\x12%.sift.api_keys.v2.DeleteApiKeyRequest\x1a&.sift.api_keys.v2.DeleteApiKeyResponse\"i\x92\x41\x41\x12\x0c\x44\x65leteApiKey\x1a\x13\x44\x65letes an API key.*\x1c\x41piKeyService_DeleteApiKeyV2\x82\xd3\xe4\x93\x02\x1f*\x1d/api/v2/api-keys/{api_key_id}\x12\xfe\x01\n\x12\x41piKeyOrganization\x12+.sift.api_keys.v2.ApiKeyOrganizationRequest\x1a,.sift.api_keys.v2.ApiKeyOrganizationResponse\"\x8c\x01\x92\x41\x64\x12\x12\x41piKeyOrganization\x1a*Retrieves the organization for an API key.*\"ApiKeyService_ApiKeyOrganizationV2\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v2/api-keys/organizationB\x98\x01\n\x14\x63om.sift.api_keys.v2B\x0c\x41piKeysProtoP\x01\xa2\x02\x03SAX\xaa\x02\x0fSift.ApiKeys.V2\xca\x02\x0fSift\\ApiKeys\\V2\xe2\x02\x1bSift\\ApiKeys\\V2\\GPBMetadata\xea\x02\x11Sift::ApiKeys::V2\x92\x41\x13\x12\x11\n\x0f\x41PI Key Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/api_keys/v2/api_keys.proto\x12\x10sift.api_keys.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a&sift/common/type/v1/organization.proto\"\xd8\x01\n\x06\x41piKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x06userId\"U\n\x14\x43reateApiKeyResponse\x12=\n\x07\x61pi_key\x18\x01 \x01(\x0b\x32\x1f.sift.api_keys.v2.CreatedApiKeyB\x03\xe0\x41\x02R\x06\x61piKey\"\xf6\x01\n\rCreatedApiKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x15\n\x03key\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x03key\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x06userId\"\x97\x01\n\x12ListApiKeysRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"|\n\x13ListApiKeysResponse\x12\x38\n\x08\x61pi_keys\x18\x01 \x03(\x0b\x32\x18.sift.api_keys.v2.ApiKeyB\x03\xe0\x41\x02R\x07\x61piKeys\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"T\n\x13\x43reateApiKeyRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12$\n\x07user_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x06userId\"@\n\x13\x44\x65leteApiKeyRequest\x12)\n\napi_key_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x08\x61piKeyId\"\x16\n\x14\x44\x65leteApiKeyResponse\"\x1b\n\x19\x41piKeyOrganizationRequest\"c\n\x1a\x41piKeyOrganizationResponse\x12\x45\n\x0corganization\x18\x01 \x01(\x0b\x32!.sift.common.type.v1.OrganizationR\x0corganization2\xee\x06\n\rApiKeyService\x12\xcf\x01\n\x0bListApiKeys\x12$.sift.api_keys.v2.ListApiKeysRequest\x1a%.sift.api_keys.v2.ListApiKeysResponse\"s\x92\x41X\x12\x0bListApiKeys\x1a,Retrieves API keys using an optional filter.*\x1b\x41piKeyService_ListApiKeysV2\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v2/api-keys\x12\xbe\x01\n\x0c\x43reateApiKey\x12%.sift.api_keys.v2.CreateApiKeyRequest\x1a&.sift.api_keys.v2.CreateApiKeyResponse\"_\x92\x41\x41\x12\x0c\x43reateApiKey\x1a\x13\x43reates an API key.*\x1c\x41piKeyService_CreateApiKeyV2\x82\xd3\xe4\x93\x02\x15\"\x10/api/v2/api-keys:\x01*\x12\xc8\x01\n\x0c\x44\x65leteApiKey\x12%.sift.api_keys.v2.DeleteApiKeyRequest\x1a&.sift.api_keys.v2.DeleteApiKeyResponse\"i\x92\x41\x41\x12\x0c\x44\x65leteApiKey\x1a\x13\x44\x65letes an API key.*\x1c\x41piKeyService_DeleteApiKeyV2\x82\xd3\xe4\x93\x02\x1f*\x1d/api/v2/api-keys/{api_key_id}\x12\xfe\x01\n\x12\x41piKeyOrganization\x12+.sift.api_keys.v2.ApiKeyOrganizationRequest\x1a,.sift.api_keys.v2.ApiKeyOrganizationResponse\"\x8c\x01\x92\x41\x64\x12\x12\x41piKeyOrganization\x1a*Retrieves the organization for an API key.*\"ApiKeyService_ApiKeyOrganizationV2\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v2/api-keys/organizationB\x98\x01\n\x14\x63om.sift.api_keys.v2B\x0c\x41piKeysProtoP\x01\xa2\x02\x03SAX\xaa\x02\x0fSift.ApiKeys.V2\xca\x02\x0fSift\\ApiKeys\\V2\xe2\x02\x1bSift\\ApiKeys\\V2\\GPBMetadata\xea\x02\x11Sift::ApiKeys::V2\x92\x41\x13\x12\x11\n\x0f\x41PI Key Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -66,9 +67,9 @@ _globals['_CREATEAPIKEYREQUEST'].fields_by_name['name']._loaded_options = None _globals['_CREATEAPIKEYREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_CREATEAPIKEYREQUEST'].fields_by_name['user_id']._loaded_options = None - _globals['_CREATEAPIKEYREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002' + _globals['_CREATEAPIKEYREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_DELETEAPIKEYREQUEST'].fields_by_name['api_key_id']._loaded_options = None - _globals['_DELETEAPIKEYREQUEST'].fields_by_name['api_key_id']._serialized_options = b'\340A\002' + _globals['_DELETEAPIKEYREQUEST'].fields_by_name['api_key_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_APIKEYSERVICE'].methods_by_name['ListApiKeys']._loaded_options = None _globals['_APIKEYSERVICE'].methods_by_name['ListApiKeys']._serialized_options = b'\222AX\022\013ListApiKeys\032,Retrieves API keys using an optional filter.*\033ApiKeyService_ListApiKeysV2\202\323\344\223\002\022\022\020/api/v2/api-keys' _globals['_APIKEYSERVICE'].methods_by_name['CreateApiKey']._loaded_options = None @@ -77,26 +78,26 @@ _globals['_APIKEYSERVICE'].methods_by_name['DeleteApiKey']._serialized_options = b'\222AA\022\014DeleteApiKey\032\023Deletes an API key.*\034ApiKeyService_DeleteApiKeyV2\202\323\344\223\002\037*\035/api/v2/api-keys/{api_key_id}' _globals['_APIKEYSERVICE'].methods_by_name['ApiKeyOrganization']._loaded_options = None _globals['_APIKEYSERVICE'].methods_by_name['ApiKeyOrganization']._serialized_options = b'\222Ad\022\022ApiKeyOrganization\032*Retrieves the organization for an API key.*\"ApiKeyService_ApiKeyOrganizationV2\202\323\344\223\002\037\022\035/api/v2/api-keys/organization' - _globals['_APIKEY']._serialized_start=238 - _globals['_APIKEY']._serialized_end=454 - _globals['_CREATEAPIKEYRESPONSE']._serialized_start=456 - _globals['_CREATEAPIKEYRESPONSE']._serialized_end=541 - _globals['_CREATEDAPIKEY']._serialized_start=544 - _globals['_CREATEDAPIKEY']._serialized_end=790 - _globals['_LISTAPIKEYSREQUEST']._serialized_start=793 - _globals['_LISTAPIKEYSREQUEST']._serialized_end=944 - _globals['_LISTAPIKEYSRESPONSE']._serialized_start=946 - _globals['_LISTAPIKEYSRESPONSE']._serialized_end=1070 - _globals['_CREATEAPIKEYREQUEST']._serialized_start=1072 - _globals['_CREATEAPIKEYREQUEST']._serialized_end=1148 - _globals['_DELETEAPIKEYREQUEST']._serialized_start=1150 - _globals['_DELETEAPIKEYREQUEST']._serialized_end=1206 - _globals['_DELETEAPIKEYRESPONSE']._serialized_start=1208 - _globals['_DELETEAPIKEYRESPONSE']._serialized_end=1230 - _globals['_APIKEYORGANIZATIONREQUEST']._serialized_start=1232 - _globals['_APIKEYORGANIZATIONREQUEST']._serialized_end=1259 - _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_start=1261 - _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_end=1360 - _globals['_APIKEYSERVICE']._serialized_start=1363 - _globals['_APIKEYSERVICE']._serialized_end=2241 + _globals['_APIKEY']._serialized_start=267 + _globals['_APIKEY']._serialized_end=483 + _globals['_CREATEAPIKEYRESPONSE']._serialized_start=485 + _globals['_CREATEAPIKEYRESPONSE']._serialized_end=570 + _globals['_CREATEDAPIKEY']._serialized_start=573 + _globals['_CREATEDAPIKEY']._serialized_end=819 + _globals['_LISTAPIKEYSREQUEST']._serialized_start=822 + _globals['_LISTAPIKEYSREQUEST']._serialized_end=973 + _globals['_LISTAPIKEYSRESPONSE']._serialized_start=975 + _globals['_LISTAPIKEYSRESPONSE']._serialized_end=1099 + _globals['_CREATEAPIKEYREQUEST']._serialized_start=1101 + _globals['_CREATEAPIKEYREQUEST']._serialized_end=1185 + _globals['_DELETEAPIKEYREQUEST']._serialized_start=1187 + _globals['_DELETEAPIKEYREQUEST']._serialized_end=1251 + _globals['_DELETEAPIKEYRESPONSE']._serialized_start=1253 + _globals['_DELETEAPIKEYRESPONSE']._serialized_end=1275 + _globals['_APIKEYORGANIZATIONREQUEST']._serialized_start=1277 + _globals['_APIKEYORGANIZATIONREQUEST']._serialized_end=1304 + _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_start=1306 + _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_end=1405 + _globals['_APIKEYSERVICE']._serialized_start=1408 + _globals['_APIKEYSERVICE']._serialized_end=2286 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/assets/v1/assets_pb2.pyi b/python/lib/sift/assets/v1/assets_pb2.pyi index aee7534f6..59c7f06de 100644 --- a/python/lib/sift/assets/v1/assets_pb2.pyi +++ b/python/lib/sift/assets/v1/assets_pb2.pyi @@ -98,13 +98,13 @@ class ListAssetsRequest(google.protobuf.message.Message): filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are `asset_id`, `created_by_user_id`, `modified_by_user_id`, - `created_date`, `modified_date`, `name`, `tag_id`, `tag_name`, `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. + `created_date`, `modified_date`, `name`, 'name_lower', `tag_id`, `tag_name`, 'archived_date', `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/assets#asset). Optional. """ order_by: builtins.str """How to order the retrieved assets. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - Available fields to order_by are `name`, `created_date` and `modified_date`. + Available fields to order_by are `name`, `created_date`, `modified_date` and `archived_date`. If left empty, items are ordered by `created_date` in descending order (newest-first). For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) Example: "created_date desc,modified_date" diff --git a/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.py b/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.py index 66ccbe653..33bd9be61 100644 --- a/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.py +++ b/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.py @@ -16,9 +16,10 @@ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 from sift.common.type.v1 import channel_data_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__data__type__pb2 +from sift.common.type.v1 import user_defined_functions_pb2 as sift_dot_common_dot_type_dot_v1_dot_user__defined__functions__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5sift/calculated_channels/v1/calculated_channels.proto\x12\x1bsift.calculated_channels.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a+sift/common/type/v1/channel_data_type.proto\"r\n\x1a\x45xpressionChannelReference\x12\x30\n\x11\x63hannel_reference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelReference\x12\"\n\nchannel_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"\xf5\x02\n\x11\x45xpressionRequest\x12x\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32\x45.sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntryB\x02\x18\x01R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12{\n\x1d\x65xpression_channel_references\x18\x03 \x03(\x0b\x32\x37.sift.calculated_channels.v1.ExpressionChannelReferenceR\x1b\x65xpressionChannelReferences\x1a\x44\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n ListExpressionIdentifiersRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x44\n\x04mode\x18\x03 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"}\n!ListExpressionIdentifiersResponse\x12X\n\x0bidentifiers\x18\x01 \x03(\x0b\x32\x31.sift.calculated_channels.v1.ExpressionIdentifierB\x03\xe0\x41\x02R\x0bidentifiers\"\xa7\x02\n\x14\x45xpressionIdentifier\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12N\n\x04type\x18\x03 \x01(\x0e\x32\x35.sift.calculated_channels.v1.ExpressionIdentifierTypeB\x03\xe0\x41\x02R\x04type\x12&\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64isplayName\x12W\n\x07library\x18\x05 \x01(\x0e\x32\x38.sift.calculated_channels.v1.ExpressionIdentifierLibraryB\x03\xe0\x41\x02R\x07library\"\xb6\x01\n\x19ValidateExpressionRequest\x12S\n\nexpression\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\nexpression\x12\x44\n\x04mode\x18\x02 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"\xd8\x01\n\x1aValidateExpressionResponse\x12T\n\x05\x65rror\x18\x01 \x01(\x0b\x32<.sift.calculated_channels.v1.ErrorValidatingExpressionResultH\x00R\x05\x65rror\x12Z\n\x07success\x18\x02 \x01(\x0b\x32>.sift.calculated_channels.v1.SuccessValidatingExpressionResultH\x00R\x07successB\x08\n\x06result\"K\n\x1f\x45rrorValidatingExpressionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\"k\n!SuccessValidatingExpressionResult\x12\x46\n\tdata_type\x18\x01 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType*\x9b\x01\n\x18\x45xpressionIdentifierType\x12.\n&EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\'\n#EXPRESSION_IDENTIFIER_TYPE_FUNCTION\x10\x01\x12&\n\"EXPRESSION_IDENTIFIER_TYPE_CHANNEL\x10\x02*\xc5\x02\n\x1b\x45xpressionIdentifierLibrary\x12-\n)EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED\x10\x00\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_MATH\x10\x01\x12(\n$EXPRESSION_IDENTIFIER_LIBRARY_STRING\x10\x02\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_LIST\x10\x03\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_ITER\x10\x04\x12*\n&EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL\x10\x05\x12)\n%EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY\x10\x06*\xb9\x01\n\x0e\x45xpressionMode\x12#\n\x1b\x45XPRESSION_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x19\n\x15\x45XPRESSION_MODE_RULES\x10\x01\x12\'\n#EXPRESSION_MODE_CALCULATED_CHANNELS\x10\x02\x12\x19\n\x15\x45XPRESSION_MODE_RULER\x10\x03\x12#\n\x1f\x45XPRESSION_MODE_STRUCTURED_DATA\x10\x04\x32\xf1\x06\n\x19\x43\x61lculatedChannelsService\x12\xd9\x02\n\x19ListExpressionIdentifiers\x12=.sift.calculated_channels.v1.ListExpressionIdentifiersRequest\x1a>.sift.calculated_channels.v1.ListExpressionIdentifiersResponse\"\xbc\x01\x92\x41\x7f\x12\x19ListExpressionIdentifiers\x1a\x62Retrieves a list of valid identifiers that can be used as part of a calculated channel expression.\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v1/calculated-channels:expression-identifiers\x12\xb0\x02\n\x12ValidateExpression\x12\x36.sift.calculated_channels.v1.ValidateExpressionRequest\x1a\x37.sift.calculated_channels.v1.ValidateExpressionResponse\"\xa8\x01\x92\x41k\x12\x12ValidateExpression\x1aUUsed to validate whether or not an expression used for a calculated channel is valid.\x82\xd3\xe4\x93\x02\x34\"//api/v1/calculated-channels:validate-expression:\x01*\x1a\xc4\x01\x92\x41\xc0\x01\x12>Service to programmatically interact with calculated channels.\x1a~\n$Read more about calculated channels.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153B\xe6\x01\n\x1f\x63om.sift.calculated_channels.v1B\x17\x43\x61lculatedChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x1aSift.CalculatedChannels.V1\xca\x02\x1aSift\\CalculatedChannels\\V1\xe2\x02&Sift\\CalculatedChannels\\V1\\GPBMetadata\xea\x02\x1cSift::CalculatedChannels::V1\x92\x41\x1f\x12\x1d\n\x1b\x43\x61lculated Channels Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5sift/calculated_channels/v1/calculated_channels.proto\x12\x1bsift.calculated_channels.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\"r\n\x1a\x45xpressionChannelReference\x12\x30\n\x11\x63hannel_reference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelReference\x12\"\n\nchannel_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"\xd8\x03\n\x11\x45xpressionRequest\x12x\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32\x45.sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntryB\x02\x18\x01R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12{\n\x1d\x65xpression_channel_references\x18\x03 \x03(\x0b\x32\x37.sift.calculated_channels.v1.ExpressionChannelReferenceR\x1b\x65xpressionChannelReferences\x12\x61\n\x15\x66unction_dependencies\x18\x04 \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x01R\x14\x66unctionDependencies\x1a\x44\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n ListExpressionIdentifiersRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x44\n\x04mode\x18\x03 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"\xc3\x01\n!ListExpressionIdentifiersResponse\x12X\n\x0bidentifiers\x18\x01 \x03(\x0b\x32\x31.sift.calculated_channels.v1.ExpressionIdentifierB\x03\xe0\x41\x02R\x0bidentifiers\x12\x30\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\rnextPageToken\x88\x01\x01\x42\x12\n\x10_next_page_token\"\xa7\x02\n\x14\x45xpressionIdentifier\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12N\n\x04type\x18\x03 \x01(\x0e\x32\x35.sift.calculated_channels.v1.ExpressionIdentifierTypeB\x03\xe0\x41\x02R\x04type\x12&\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64isplayName\x12W\n\x07library\x18\x05 \x01(\x0e\x32\x38.sift.calculated_channels.v1.ExpressionIdentifierLibraryB\x03\xe0\x41\x02R\x07library\"\xb6\x01\n\x19ValidateExpressionRequest\x12S\n\nexpression\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\nexpression\x12\x44\n\x04mode\x18\x02 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"\xd8\x01\n\x1aValidateExpressionResponse\x12T\n\x05\x65rror\x18\x01 \x01(\x0b\x32<.sift.calculated_channels.v1.ErrorValidatingExpressionResultH\x00R\x05\x65rror\x12Z\n\x07success\x18\x02 \x01(\x0b\x32>.sift.calculated_channels.v1.SuccessValidatingExpressionResultH\x00R\x07successB\x08\n\x06result\"K\n\x1f\x45rrorValidatingExpressionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\"k\n!SuccessValidatingExpressionResult\x12\x46\n\tdata_type\x18\x01 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType*\x9b\x01\n\x18\x45xpressionIdentifierType\x12.\n&EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\'\n#EXPRESSION_IDENTIFIER_TYPE_FUNCTION\x10\x01\x12&\n\"EXPRESSION_IDENTIFIER_TYPE_CHANNEL\x10\x02*\xff\x02\n\x1b\x45xpressionIdentifierLibrary\x12-\n)EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED\x10\x00\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_MATH\x10\x01\x12(\n$EXPRESSION_IDENTIFIER_LIBRARY_STRING\x10\x02\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_LIST\x10\x03\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_ITER\x10\x04\x12*\n&EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL\x10\x05\x12)\n%EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY\x10\x06\x12\x38\n4EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS\x10\x07*\xb9\x01\n\x0e\x45xpressionMode\x12#\n\x1b\x45XPRESSION_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x19\n\x15\x45XPRESSION_MODE_RULES\x10\x01\x12\'\n#EXPRESSION_MODE_CALCULATED_CHANNELS\x10\x02\x12\x19\n\x15\x45XPRESSION_MODE_RULER\x10\x03\x12#\n\x1f\x45XPRESSION_MODE_STRUCTURED_DATA\x10\x04\x32\xf1\x06\n\x19\x43\x61lculatedChannelsService\x12\xd9\x02\n\x19ListExpressionIdentifiers\x12=.sift.calculated_channels.v1.ListExpressionIdentifiersRequest\x1a>.sift.calculated_channels.v1.ListExpressionIdentifiersResponse\"\xbc\x01\x92\x41\x7f\x12\x19ListExpressionIdentifiers\x1a\x62Retrieves a list of valid identifiers that can be used as part of a calculated channel expression.\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v1/calculated-channels:expression-identifiers\x12\xb0\x02\n\x12ValidateExpression\x12\x36.sift.calculated_channels.v1.ValidateExpressionRequest\x1a\x37.sift.calculated_channels.v1.ValidateExpressionResponse\"\xa8\x01\x92\x41k\x12\x12ValidateExpression\x1aUUsed to validate whether or not an expression used for a calculated channel is valid.\x82\xd3\xe4\x93\x02\x34\"//api/v1/calculated-channels:validate-expression:\x01*\x1a\xc4\x01\x92\x41\xc0\x01\x12>Service to programmatically interact with calculated channels.\x1a~\n$Read more about calculated channels.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153B\xe6\x01\n\x1f\x63om.sift.calculated_channels.v1B\x17\x43\x61lculatedChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x1aSift.CalculatedChannels.V1\xca\x02\x1aSift\\CalculatedChannels\\V1\xe2\x02&Sift\\CalculatedChannels\\V1\\GPBMetadata\xea\x02\x1cSift::CalculatedChannels::V1\x92\x41\x1f\x12\x1d\n\x1b\x43\x61lculated Channels Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,10 +41,14 @@ _globals['_EXPRESSIONREQUEST'].fields_by_name['channel_references']._serialized_options = b'\030\001' _globals['_EXPRESSIONREQUEST'].fields_by_name['expression']._loaded_options = None _globals['_EXPRESSIONREQUEST'].fields_by_name['expression']._serialized_options = b'\340A\002' + _globals['_EXPRESSIONREQUEST'].fields_by_name['function_dependencies']._loaded_options = None + _globals['_EXPRESSIONREQUEST'].fields_by_name['function_dependencies']._serialized_options = b'\340A\001' _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST'].fields_by_name['mode']._loaded_options = None _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST'].fields_by_name['mode']._serialized_options = b'\340A\002' _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE'].fields_by_name['identifiers']._loaded_options = None _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE'].fields_by_name['identifiers']._serialized_options = b'\340A\002' + _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None + _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\001' _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['name']._loaded_options = None _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['description']._loaded_options = None @@ -68,32 +73,32 @@ _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ListExpressionIdentifiers']._serialized_options = b'\222A\177\022\031ListExpressionIdentifiers\032bRetrieves a list of valid identifiers that can be used as part of a calculated channel expression.\202\323\344\223\0024\0222/api/v1/calculated-channels:expression-identifiers' _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ValidateExpression']._loaded_options = None _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ValidateExpression']._serialized_options = b'\222Ak\022\022ValidateExpression\032UUsed to validate whether or not an expression used for a calculated channel is valid.\202\323\344\223\0024\"//api/v1/calculated-channels:validate-expression:\001*' - _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_start=1917 - _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_end=2072 - _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_start=2075 - _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_end=2400 - _globals['_EXPRESSIONMODE']._serialized_start=2403 - _globals['_EXPRESSIONMODE']._serialized_end=2588 - _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_start=242 - _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_end=356 - _globals['_EXPRESSIONREQUEST']._serialized_start=359 - _globals['_EXPRESSIONREQUEST']._serialized_end=732 - _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._serialized_start=664 - _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._serialized_end=732 - _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST']._serialized_start=735 - _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST']._serialized_end=899 - _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_start=901 - _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_end=1026 - _globals['_EXPRESSIONIDENTIFIER']._serialized_start=1029 - _globals['_EXPRESSIONIDENTIFIER']._serialized_end=1324 - _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_start=1327 - _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_end=1509 - _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_start=1512 - _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_end=1728 - _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_start=1730 - _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_end=1805 - _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_start=1807 - _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_end=1914 - _globals['_CALCULATEDCHANNELSSERVICE']._serialized_start=2591 - _globals['_CALCULATEDCHANNELSSERVICE']._serialized_end=3472 + _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_start=2137 + _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_end=2292 + _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_start=2295 + _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_end=2678 + _globals['_EXPRESSIONMODE']._serialized_start=2681 + _globals['_EXPRESSIONMODE']._serialized_end=2866 + _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_start=292 + _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_end=406 + _globals['_EXPRESSIONREQUEST']._serialized_start=409 + _globals['_EXPRESSIONREQUEST']._serialized_end=881 + _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._serialized_start=813 + _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._serialized_end=881 + _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST']._serialized_start=884 + _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST']._serialized_end=1048 + _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_start=1051 + _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_end=1246 + _globals['_EXPRESSIONIDENTIFIER']._serialized_start=1249 + _globals['_EXPRESSIONIDENTIFIER']._serialized_end=1544 + _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_start=1547 + _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_end=1729 + _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_start=1732 + _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_end=1948 + _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_start=1950 + _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_end=2025 + _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_start=2027 + _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_end=2134 + _globals['_CALCULATEDCHANNELSSERVICE']._serialized_start=2869 + _globals['_CALCULATEDCHANNELSSERVICE']._serialized_end=3750 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.pyi b/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.pyi index 8118aeb66..01ab09b30 100644 --- a/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.pyi +++ b/python/lib/sift/calculated_channels/v1/calculated_channels_pb2.pyi @@ -10,6 +10,7 @@ import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message import sift.common.type.v1.channel_data_type_pb2 +import sift.common.type.v1.user_defined_functions_pb2 import sys import typing @@ -50,6 +51,7 @@ class _ExpressionIdentifierLibraryEnumTypeWrapper(google.protobuf.internal.enum_ EXPRESSION_IDENTIFIER_LIBRARY_ITER: _ExpressionIdentifierLibrary.ValueType # 4 EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL: _ExpressionIdentifierLibrary.ValueType # 5 EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY: _ExpressionIdentifierLibrary.ValueType # 6 + EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS: _ExpressionIdentifierLibrary.ValueType # 7 class ExpressionIdentifierLibrary(_ExpressionIdentifierLibrary, metaclass=_ExpressionIdentifierLibraryEnumTypeWrapper): ... @@ -60,6 +62,7 @@ EXPRESSION_IDENTIFIER_LIBRARY_LIST: ExpressionIdentifierLibrary.ValueType # 3 EXPRESSION_IDENTIFIER_LIBRARY_ITER: ExpressionIdentifierLibrary.ValueType # 4 EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL: ExpressionIdentifierLibrary.ValueType # 5 EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY: ExpressionIdentifierLibrary.ValueType # 6 +EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS: ExpressionIdentifierLibrary.ValueType # 7 global___ExpressionIdentifierLibrary = ExpressionIdentifierLibrary class _ExpressionMode: @@ -124,6 +127,7 @@ class ExpressionRequest(google.protobuf.message.Message): CHANNEL_REFERENCES_FIELD_NUMBER: builtins.int EXPRESSION_FIELD_NUMBER: builtins.int EXPRESSION_CHANNEL_REFERENCES_FIELD_NUMBER: builtins.int + FUNCTION_DEPENDENCIES_FIELD_NUMBER: builtins.int expression: builtins.str @property def channel_references(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: @@ -133,14 +137,17 @@ class ExpressionRequest(google.protobuf.message.Message): @property def expression_channel_references(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExpressionChannelReference]: ... + @property + def function_dependencies(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.user_defined_functions_pb2.FunctionDependency]: ... def __init__( self, *, channel_references: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., expression: builtins.str = ..., expression_channel_references: collections.abc.Iterable[global___ExpressionChannelReference] | None = ..., + function_dependencies: collections.abc.Iterable[sift.common.type.v1.user_defined_functions_pb2.FunctionDependency] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["channel_references", b"channel_references", "expression", b"expression", "expression_channel_references", b"expression_channel_references"]) -> None: ... + def ClearField(self, field_name: typing.Literal["channel_references", b"channel_references", "expression", b"expression", "expression_channel_references", b"expression_channel_references", "function_dependencies", b"function_dependencies"]) -> None: ... global___ExpressionRequest = ExpressionRequest @@ -171,14 +178,19 @@ class ListExpressionIdentifiersResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor IDENTIFIERS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str @property def identifiers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExpressionIdentifier]: ... def __init__( self, *, identifiers: collections.abc.Iterable[global___ExpressionIdentifier] | None = ..., + next_page_token: builtins.str | None = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["identifiers", b"identifiers"]) -> None: ... + def HasField(self, field_name: typing.Literal["_next_page_token", b"_next_page_token", "next_page_token", b"next_page_token"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_next_page_token", b"_next_page_token", "identifiers", b"identifiers", "next_page_token", b"next_page_token"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_next_page_token", b"_next_page_token"]) -> typing.Literal["next_page_token"] | None: ... global___ListExpressionIdentifiersResponse = ListExpressionIdentifiersResponse diff --git a/python/lib/sift/calculated_channels/v2/calculated_channels_pb2.py b/python/lib/sift/calculated_channels/v2/calculated_channels_pb2.py index 8213e81f0..5b501790b 100644 --- a/python/lib/sift/calculated_channels/v2/calculated_channels_pb2.py +++ b/python/lib/sift/calculated_channels/v2/calculated_channels_pb2.py @@ -24,7 +24,7 @@ from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5sift/calculated_channels/v2/calculated_channels.proto\x12\x1bsift.calculated_channels.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v1/calculated_channels.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xae\x08\n\x11\x43\x61lculatedChannel\x12\x37\n\x15\x63\x61lculated_channel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x13\x63\x61lculatedChannelId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x12I\n\rarchived_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x61rchivedDate\x88\x01\x01\x12\"\n\nversion_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\tversionId\x12\x1d\n\x07version\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07version\x12\x17\n\x04name\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12*\n\x0e\x63hange_message\x18\t \x01(\tB\x03\xe0\x41\x02R\rchangeMessage\x12\"\n\nuser_notes\x18\n \x01(\tB\x03\xe0\x41\x02R\tuserNotes\x12\x1e\n\x05units\x18\x12 \x01(\tB\x03\xe0\x41\x01H\x02R\x05units\x88\x01\x01\x12\x42\n\x0c\x63reated_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x8a\x01\n calculated_channel_configuration\x18\x0f \x01(\x0b\x32;.sift.calculated_channels.v2.CalculatedChannelConfigurationB\x03\xe0\x41\x02R\x1e\x63\x61lculatedChannelConfiguration\x12\x30\n\x12\x63reated_by_user_id\x18\x10 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x11 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x61\n\x15\x66unction_dependencies\x18\x13 \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x02R\x14\x66unctionDependencies\x12@\n\x08metadata\x18\x14 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\r\n\x0b_client_keyB\x10\n\x0e_archived_dateB\x08\n\x06_units\"\x90\x02\n\x1e\x43\x61lculatedChannelConfiguration\x12v\n\x13\x61sset_configuration\x18\x01 \x01(\x0b\x32@.sift.calculated_channels.v2.CalculatedChannelAssetConfigurationB\x03\xe0\x41\x02R\x12\x61ssetConfiguration\x12v\n\x13query_configuration\x18\x02 \x01(\x0b\x32@.sift.calculated_channels.v2.CalculatedChannelQueryConfigurationB\x03\xe0\x41\x02R\x12queryConfiguration\"\x98\x02\n#CalculatedChannelAssetConfiguration\x12\x1f\n\nall_assets\x18\x01 \x01(\x08H\x00R\tallAssets\x12o\n\tselection\x18\x02 \x01(\x0b\x32O.sift.calculated_channels.v2.CalculatedChannelAssetConfiguration.AssetSelectionH\x00R\tselection\x1aP\n\x0e\x41ssetSelection\x12 \n\tasset_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12\x1c\n\x07tag_ids\x18\x02 \x03(\tB\x03\xe0\x41\x02R\x06tagIdsB\r\n\x0b\x61sset_scope\"\xc7\x02\n#CalculatedChannelQueryConfiguration\x12X\n\x03sel\x18\x01 \x01(\x0b\x32\x44.sift.calculated_channels.v2.CalculatedChannelQueryConfiguration.SelH\x00R\x03sel\x1a\xbc\x01\n\x03Sel\x12#\n\nexpression\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12\x8f\x01\n\x1d\x65xpression_channel_references\x18\x02 \x03(\x0b\x32\x46.sift.calculated_channels.v2.CalculatedChannelAbstractChannelReferenceB\x03\xe0\x41\x02R\x1b\x65xpressionChannelReferencesB\x07\n\x05query\"\x91\x01\n)CalculatedChannelAbstractChannelReference\x12\x30\n\x11\x63hannel_reference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelReference\x12\x32\n\x12\x63hannel_identifier\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x11\x63hannelIdentifier\"\xcd\x01\n!CalculatedChannelValidationResult\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\'\n\nasset_name\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\tassetName\x88\x01\x01\x12 \n\ttag_names\x18\x03 \x03(\tB\x03\xe0\x41\x02R\x08tagNames\x12.\n\x10missing_channels\x18\x04 \x03(\tB\x03\xe0\x41\x02R\x0fmissingChannelsB\r\n\x0b_asset_name\"\xa8\x01\n\x1bGetCalculatedChannelRequest\x12\x37\n\x15\x63\x61lculated_channel_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x13\x63\x61lculatedChannelId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"\x82\x01\n\x1cGetCalculatedChannelResponse\x12\x62\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x11\x63\x61lculatedChannel\"\xb5\x03\n\x1e\x43reateCalculatedChannelRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12\"\n\nuser_notes\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tuserNotes\x12\x1e\n\x05units\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x00R\x05units\x88\x01\x01\x12\'\n\nclient_key\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x01R\tclientKey\x88\x01\x01\x12\x8a\x01\n calculated_channel_configuration\x18\x05 \x01(\x0b\x32;.sift.calculated_channels.v2.CalculatedChannelConfigurationB\x03\xe0\x41\x02R\x1e\x63\x61lculatedChannelConfiguration\x12@\n\x08metadata\x18\x08 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\x08\n\x06_unitsB\r\n\x0b_client_key\"\xfb\x01\n\x1f\x43reateCalculatedChannelResponse\x12\x62\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x11\x63\x61lculatedChannel\x12t\n\x13inapplicable_assets\x18\x02 \x03(\x0b\x32>.sift.calculated_channels.v2.CalculatedChannelValidationResultB\x03\xe0\x41\x02R\x12inapplicableAssets\"\xd0\x01\n\x1dListCalculatedChannelsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xb3\x01\n\x1eListCalculatedChannelsResponse\x12\x64\n\x13\x63\x61lculated_channels\x18\x01 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x12\x63\x61lculatedChannels\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\xfe\x01\n\x1eUpdateCalculatedChannelRequest\x12\x62\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x11\x63\x61lculatedChannel\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\x12\'\n\nuser_notes\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tuserNotes\x88\x01\x01\x42\r\n\x0b_user_notes\"\xfb\x01\n\x1fUpdateCalculatedChannelResponse\x12\x62\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x11\x63\x61lculatedChannel\x12t\n\x13inapplicable_assets\x18\x02 \x03(\x0b\x32>.sift.calculated_channels.v2.CalculatedChannelValidationResultB\x03\xe0\x41\x02R\x12inapplicableAssets\"\xb4\x02\n$ListCalculatedChannelVersionsRequest\x12\x37\n\x15\x63\x61lculated_channel_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x13\x63\x61lculatedChannelId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xc9\x01\n%ListCalculatedChannelVersionsResponse\x12s\n\x1b\x63\x61lculated_channel_versions\x18\x01 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x19\x63\x61lculatedChannelVersions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\xd3\x03\n\x1fResolveCalculatedChannelRequest\x12N\n\nidentifier\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x01H\x00R\nidentifier\x12\x8c\x01\n calculated_channel_configuration\x18\x02 \x01(\x0b\x32;.sift.calculated_channels.v2.CalculatedChannelConfigurationB\x03\xe0\x41\x01H\x00R\x1e\x63\x61lculatedChannelConfiguration\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12@\n\x06\x61ssets\x18\x04 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x01R\x06\x61ssets\x12\x43\n\x03run\x18\x05 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x01H\x01R\x03run\x88\x01\x01\x42\x14\n\x12\x63\x61lculated_channelB\x06\n\x04_run\"\x98\x02\n\x19ResolvedCalculatedChannel\x12\"\n\nasset_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12\x62\n\x12\x65xpression_request\x18\x02 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\x11\x65xpressionRequest\x12S\n\x10output_data_type\x18\x03 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x0eoutputDataType\x12\x1e\n\x08\x61sset_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\"k\n\x1bUnresolvedCalculatedChannel\x12\"\n\nasset_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12(\n\rerror_message\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\"\xb2\x02\n ResolveCalculatedChannelResponse\x12<\n\x15\x63\x61lculated_channel_id\x18\x01 \x01(\tB\x03\xe0\x41\x01H\x00R\x13\x63\x61lculatedChannelId\x88\x01\x01\x12W\n\x08resolved\x18\x02 \x03(\x0b\x32\x36.sift.calculated_channels.v2.ResolvedCalculatedChannelB\x03\xe0\x41\x02R\x08resolved\x12]\n\nunresolved\x18\x03 \x03(\x0b\x32\x38.sift.calculated_channels.v2.UnresolvedCalculatedChannelB\x03\xe0\x41\x02R\nunresolvedB\x18\n\x16_calculated_channel_id\"\x86\x01\n%BatchResolveCalculatedChannelsRequest\x12]\n\x08requests\x18\x01 \x03(\x0b\x32<.sift.calculated_channels.v2.ResolveCalculatedChannelRequestB\x03\xe0\x41\x02R\x08requests\"\x8a\x01\n&BatchResolveCalculatedChannelsResponse\x12`\n\tresponses\x18\x01 \x03(\x0b\x32=.sift.calculated_channels.v2.ResolveCalculatedChannelResponseB\x03\xe0\x41\x02R\tresponses\"\xe6\x01\n%ListResolvedCalculatedChannelsRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x07\x61ssetId\x12\x1a\n\x06run_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x05runId\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xd5\x02\n\x1b\x43\x61lculatedChannelResolution\x12g\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x01H\x00R\x11\x63\x61lculatedChannel\x88\x01\x01\x12W\n\x08resolved\x18\x02 \x03(\x0b\x32\x36.sift.calculated_channels.v2.ResolvedCalculatedChannelB\x03\xe0\x41\x02R\x08resolved\x12]\n\nunresolved\x18\x03 \x03(\x0b\x32\x38.sift.calculated_channels.v2.UnresolvedCalculatedChannelB\x03\xe0\x41\x02R\nunresolvedB\x15\n\x13_calculated_channel\"\xdb\x01\n&ListResolvedCalculatedChannelsResponse\x12\x83\x01\n\x1e\x63\x61lculated_channel_resolutions\x18\x01 \x03(\x0b\x32\x38.sift.calculated_channels.v2.CalculatedChannelResolutionB\x03\xe0\x41\x02R\x1c\x63\x61lculatedChannelResolutions\x12+\n\x0fnext_page_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xa8\x14\n\x18\x43\x61lculatedChannelService\x12\xe0\x02\n\x14GetCalculatedChannel\x12\x38.sift.calculated_channels.v2.GetCalculatedChannelRequest\x1a\x39.sift.calculated_channels.v2.GetCalculatedChannelResponse\"\xd2\x01\x92\x41L\x12\x14GetCalculatedChannel\x1a\x34Retrieve the latest version of a calculated channel.\x82\xd3\xe4\x93\x02}\x12\x33/api/v2/calculated-channels/{calculated_channel_id}ZF\x12\x44/v2/organizations/{organization_id}/calculated-channels/{client_key}\x12\xf6\x01\n\x17\x43reateCalculatedChannel\x12;.sift.calculated_channels.v2.CreateCalculatedChannelRequest\x1a<.sift.calculated_channels.v2.CreateCalculatedChannelResponse\"`\x92\x41\x37\x12\x17\x43reateCalculatedChannel\x1a\x1c\x43reate a calculated channel.\x82\xd3\xe4\x93\x02 \"\x1b/api/v2/calculated-channels:\x01*\x12\xa4\x02\n\x16ListCalculatedChannels\x12:.sift.calculated_channels.v2.ListCalculatedChannelsRequest\x1a;.sift.calculated_channels.v2.ListCalculatedChannelsResponse\"\x90\x01\x92\x41j\x12\x16ListCalculatedChannels\x1aPRetrieve the latest versions of calculated channels based on an optional filter.\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v2/calculated-channels\x12\x92\x02\n\x17UpdateCalculatedChannel\x12;.sift.calculated_channels.v2.UpdateCalculatedChannelRequest\x1a<.sift.calculated_channels.v2.UpdateCalculatedChannelResponse\"|\x92\x41S\x12\x17UpdateCalculatedChannel\x1a\x38Update and create a new version of a calculated channel.\x82\xd3\xe4\x93\x02 2\x1b/api/v2/calculated-channels:\x01*\x12\xac\x03\n\x1dListCalculatedChannelVersions\x12\x41.sift.calculated_channels.v2.ListCalculatedChannelVersionsRequest\x1a\x42.sift.calculated_channels.v2.ListCalculatedChannelVersionsResponse\"\x83\x02\x92\x41j\x12\x1dListCalculatedChannelVersions\x1aIList versions of a particular calculated channel with an optional filter.\x82\xd3\xe4\x93\x02\x8f\x01\x12.sift.calculated_channels.v2.CalculatedChannelValidationResultB\x03\xe0\x41\x02R\x12inapplicableAssets\"\xd0\x01\n\x1dListCalculatedChannelsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xb3\x01\n\x1eListCalculatedChannelsResponse\x12\x64\n\x13\x63\x61lculated_channels\x18\x01 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x12\x63\x61lculatedChannels\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\xfe\x01\n\x1eUpdateCalculatedChannelRequest\x12\x62\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x11\x63\x61lculatedChannel\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\x12\'\n\nuser_notes\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tuserNotes\x88\x01\x01\x42\r\n\x0b_user_notes\"\xfb\x01\n\x1fUpdateCalculatedChannelResponse\x12\x62\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x11\x63\x61lculatedChannel\x12t\n\x13inapplicable_assets\x18\x02 \x03(\x0b\x32>.sift.calculated_channels.v2.CalculatedChannelValidationResultB\x03\xe0\x41\x02R\x12inapplicableAssets\"\xb4\x02\n$ListCalculatedChannelVersionsRequest\x12\x37\n\x15\x63\x61lculated_channel_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x13\x63\x61lculatedChannelId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xc9\x01\n%ListCalculatedChannelVersionsResponse\x12s\n\x1b\x63\x61lculated_channel_versions\x18\x01 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x19\x63\x61lculatedChannelVersions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\xd3\x03\n\x1fResolveCalculatedChannelRequest\x12N\n\nidentifier\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x01H\x00R\nidentifier\x12\x8c\x01\n calculated_channel_configuration\x18\x02 \x01(\x0b\x32;.sift.calculated_channels.v2.CalculatedChannelConfigurationB\x03\xe0\x41\x01H\x00R\x1e\x63\x61lculatedChannelConfiguration\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12@\n\x06\x61ssets\x18\x04 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x01R\x06\x61ssets\x12\x43\n\x03run\x18\x05 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x01H\x01R\x03run\x88\x01\x01\x42\x14\n\x12\x63\x61lculated_channelB\x06\n\x04_run\"\x98\x02\n\x19ResolvedCalculatedChannel\x12\"\n\nasset_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12\x62\n\x12\x65xpression_request\x18\x02 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\x11\x65xpressionRequest\x12S\n\x10output_data_type\x18\x03 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x0eoutputDataType\x12\x1e\n\x08\x61sset_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\"k\n\x1bUnresolvedCalculatedChannel\x12\"\n\nasset_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12(\n\rerror_message\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\"\xb2\x02\n ResolveCalculatedChannelResponse\x12<\n\x15\x63\x61lculated_channel_id\x18\x01 \x01(\tB\x03\xe0\x41\x01H\x00R\x13\x63\x61lculatedChannelId\x88\x01\x01\x12W\n\x08resolved\x18\x02 \x03(\x0b\x32\x36.sift.calculated_channels.v2.ResolvedCalculatedChannelB\x03\xe0\x41\x02R\x08resolved\x12]\n\nunresolved\x18\x03 \x03(\x0b\x32\x38.sift.calculated_channels.v2.UnresolvedCalculatedChannelB\x03\xe0\x41\x02R\nunresolvedB\x18\n\x16_calculated_channel_id\"\x86\x01\n%BatchResolveCalculatedChannelsRequest\x12]\n\x08requests\x18\x01 \x03(\x0b\x32<.sift.calculated_channels.v2.ResolveCalculatedChannelRequestB\x03\xe0\x41\x02R\x08requests\"\x8a\x01\n&BatchResolveCalculatedChannelsResponse\x12`\n\tresponses\x18\x01 \x03(\x0b\x32=.sift.calculated_channels.v2.ResolveCalculatedChannelResponseB\x03\xe0\x41\x02R\tresponses\"\xe6\x01\n%ListResolvedCalculatedChannelsRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x07\x61ssetId\x12\x1a\n\x06run_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x05runId\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xd5\x02\n\x1b\x43\x61lculatedChannelResolution\x12g\n\x12\x63\x61lculated_channel\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x01H\x00R\x11\x63\x61lculatedChannel\x88\x01\x01\x12W\n\x08resolved\x18\x02 \x03(\x0b\x32\x36.sift.calculated_channels.v2.ResolvedCalculatedChannelB\x03\xe0\x41\x02R\x08resolved\x12]\n\nunresolved\x18\x03 \x03(\x0b\x32\x38.sift.calculated_channels.v2.UnresolvedCalculatedChannelB\x03\xe0\x41\x02R\nunresolvedB\x15\n\x13_calculated_channel\"\xdb\x01\n&ListResolvedCalculatedChannelsResponse\x12\x83\x01\n\x1e\x63\x61lculated_channel_resolutions\x18\x01 \x03(\x0b\x32\x38.sift.calculated_channels.v2.CalculatedChannelResolutionB\x03\xe0\x41\x02R\x1c\x63\x61lculatedChannelResolutions\x12+\n\x0fnext_page_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xa8\x14\n\x18\x43\x61lculatedChannelService\x12\xe0\x02\n\x14GetCalculatedChannel\x12\x38.sift.calculated_channels.v2.GetCalculatedChannelRequest\x1a\x39.sift.calculated_channels.v2.GetCalculatedChannelResponse\"\xd2\x01\x92\x41L\x12\x14GetCalculatedChannel\x1a\x34Retrieve the latest version of a calculated channel.\x82\xd3\xe4\x93\x02}\x12\x33/api/v2/calculated-channels/{calculated_channel_id}ZF\x12\x44/v2/organizations/{organization_id}/calculated-channels/{client_key}\x12\xf6\x01\n\x17\x43reateCalculatedChannel\x12;.sift.calculated_channels.v2.CreateCalculatedChannelRequest\x1a<.sift.calculated_channels.v2.CreateCalculatedChannelResponse\"`\x92\x41\x37\x12\x17\x43reateCalculatedChannel\x1a\x1c\x43reate a calculated channel.\x82\xd3\xe4\x93\x02 \"\x1b/api/v2/calculated-channels:\x01*\x12\xa4\x02\n\x16ListCalculatedChannels\x12:.sift.calculated_channels.v2.ListCalculatedChannelsRequest\x1a;.sift.calculated_channels.v2.ListCalculatedChannelsResponse\"\x90\x01\x92\x41j\x12\x16ListCalculatedChannels\x1aPRetrieve the latest versions of calculated channels based on an optional filter.\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v2/calculated-channels\x12\x92\x02\n\x17UpdateCalculatedChannel\x12;.sift.calculated_channels.v2.UpdateCalculatedChannelRequest\x1a<.sift.calculated_channels.v2.UpdateCalculatedChannelResponse\"|\x92\x41S\x12\x17UpdateCalculatedChannel\x1a\x38Update and create a new version of a calculated channel.\x82\xd3\xe4\x93\x02 2\x1b/api/v2/calculated-channels:\x01*\x12\xac\x03\n\x1dListCalculatedChannelVersions\x12\x41.sift.calculated_channels.v2.ListCalculatedChannelVersionsRequest\x1a\x42.sift.calculated_channels.v2.ListCalculatedChannelVersionsResponse\"\x83\x02\x92\x41j\x12\x1dListCalculatedChannelVersions\x1aIList versions of a particular calculated channel with an optional filter.\x82\xd3\xe4\x93\x02\x8f\x01\x12 google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -86,9 +89,10 @@ class CalculatedChannel(google.protobuf.message.Message): modified_by_user_id: builtins.str = ..., function_dependencies: collections.abc.Iterable[sift.common.type.v1.user_defined_functions_pb2.FunctionDependency] | None = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_units", b"_units", "archived_date", b"archived_date", "calculated_channel_configuration", b"calculated_channel_configuration", "client_key", b"client_key", "created_date", b"created_date", "modified_date", b"modified_date", "units", b"units"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_units", b"_units", "archived_date", b"archived_date", "calculated_channel_configuration", b"calculated_channel_configuration", "calculated_channel_id", b"calculated_channel_id", "change_message", b"change_message", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "function_dependencies", b"function_dependencies", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "units", b"units", "user_notes", b"user_notes", "version", b"version", "version_id", b"version_id"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_units", b"_units", "archived_date", b"archived_date", "calculated_channel_configuration", b"calculated_channel_configuration", "calculated_channel_id", b"calculated_channel_id", "change_message", b"change_message", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "function_dependencies", b"function_dependencies", "is_archived", b"is_archived", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "units", b"units", "user_notes", b"user_notes", "version", b"version", "version_id", b"version_id"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... @typing.overload @@ -375,7 +379,9 @@ class ListCalculatedChannelsRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, and `archived_date. + Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + `asset_id`, `asset_name`, `tag_id`, `tag_name`, `units`, `calculated_channel_version_id`, + `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. """ @@ -383,7 +389,7 @@ class ListCalculatedChannelsRequest(google.protobuf.message.Message): """This field is only required if your user belongs to multiple organizations.""" order_by: builtins.str """How to order the retrieved calculated channels. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - Available fields to order_by are `created_date` and `modified_date`. + Available fields to order_by are `created_date`, `modified_date`, `name`, `description`, `units`, and `archived_date`. If left empty, items are ordered by `created_date` in descending order (newest-first). For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) Example: "created_date desc,modified_date" @@ -445,7 +451,7 @@ class UpdateCalculatedChannelRequest(google.protobuf.message.Message): @property def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: """The list of fields to be updated. The fields available to be updated are `name`, `description`, `units`, `metadata`, - `query_configuration`, `archived_date`, and `asset_configuration`. + `query_configuration`, `archived_date`, `is_archived`, and `asset_configuration`. """ def __init__( @@ -514,7 +520,9 @@ class ListCalculatedChannelVersionsRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `archived_date`, and `metadata`. + Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`, + `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. """ @@ -522,7 +530,7 @@ class ListCalculatedChannelVersionsRequest(google.protobuf.message.Message): """This field is only required if your user belongs to multiple organizations.""" order_by: builtins.str """How to order the retrieved calculated channel versions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - Available fields to order_by are `created_date`, `modified_date`, and `version`. + Available fields to order_by are 'version', `created_date`, `modified_date`, `name`, `description`, `units`, and `archived_date`. If left empty, items are ordered by `created_date` in ascending order (oldest-first). For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) Example: "created_date desc,modified_date". @@ -767,7 +775,9 @@ class ListResolvedCalculatedChannelsRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - Available fields to filter by are `calculated_channel_id`, `client_key`, `name`, `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, and `archived_date. + Available fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`, + `asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`, + `created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/calculated_channels#calculated_channel). Optional. """ diff --git a/python/lib/sift/campaigns/v1/campaigns_pb2.py b/python/lib/sift/campaigns/v1/campaigns_pb2.py index 9540a4af1..8830df9ad 100644 --- a/python/lib/sift/campaigns/v1/campaigns_pb2.py +++ b/python/lib/sift/campaigns/v1/campaigns_pb2.py @@ -23,7 +23,7 @@ from sift.tags.v1 import tags_pb2 as sift_dot_tags_dot_v1_dot_tags__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sift/campaigns/v1/campaigns.proto\x12\x11sift.campaigns.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a%sift/annotations/v1/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x1fsift/metadata/v1/metadata.proto\x1a\x17sift/tags/v1/tags.proto\"\xb4\x06\n\x08\x43\x61mpaign\x12$\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\ncampaignId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x05R\x0eorganizationId\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x12\x17\n\x04name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x03R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x03R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0cmodifiedDate\x12\x44\n\rarchived_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12-\n\x04tags\x18\x0b \x03(\x0b\x32\x14.sift.tags.v1.TagRefB\x03\xe0\x41\x06R\x04tags\x12@\n\x07reports\x18\x0c \x03(\x0b\x32!.sift.campaigns.v1.CampaignReportB\x03\xe0\x41\x06R\x07reports\x12\x41\n\x18\x63reated_from_campaign_id\x18\r \x01(\tB\x03\xe0\x41\x03H\x02R\x15\x63reatedFromCampaignId\x88\x01\x01\x12@\n\x08metadata\x18\x0e \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\r\n\x0b_client_keyB\x0e\n\x0c_descriptionB\x1b\n\x19_created_from_campaign_id\"\xc2\x02\n\x0e\x43\x61mpaignReport\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12$\n\x0breport_name\x18\x02 \x01(\tB\x03\xe0\x41\x03R\nreportName\x12,\n\x0fnum_annotations\x18\x03 \x01(\rB\x03\xe0\x41\x03R\x0enumAnnotations\x12-\n\x10num_passed_rules\x18\x04 \x01(\rB\x03\xe0\x41\x03R\x0enumPassedRules\x12\x31\n\x12num_accepted_rules\x18\x05 \x01(\rB\x03\xe0\x41\x03R\x10numAcceptedRules\x12-\n\x10num_failed_rules\x18\x06 \x01(\rB\x03\xe0\x41\x03R\x0enumFailedRules\x12)\n\x0enum_open_rules\x18\x07 \x01(\rB\x03\xe0\x41\x03R\x0cnumOpenRules\"\x8c\x01\n\x12GetCampaignRequest\x12$\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\ncampaignId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"S\n\x13GetCampaignResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\"\x9f\x03\n\x15\x43reateCampaignRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x04tags\x18\x03 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x01R\x04tags\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\'\n\nclient_key\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\tclientKey\x88\x01\x01\x12K\n\x0b\x63reate_from\x18\x06 \x01(\x0b\x32%.sift.campaigns.v1.CreateCampaignFromB\x03\xe0\x41\x01R\ncreateFrom\x12@\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\x0e\n\x0c_descriptionB\r\n\x0b_client_key\"\xfb\x01\n\x12\x43reateCampaignFrom\x12\x44\n\x07reports\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersH\x00R\x07reports\x12>\n\x04runs\x18\x02 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersH\x00R\x04runs\x12P\n\x0eother_campaign\x18\x03 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\rotherCampaignB\r\n\x0binitializer\"V\n\x16\x43reateCampaignResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\"\xf7\x01\n\x14ListCampaignsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12.\n\x10include_archived\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01R\x0fincludeArchived\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"z\n\x15ListCampaignsResponse\x12\x39\n\tcampaigns\x18\x01 \x03(\x0b\x32\x1b.sift.campaigns.v1.CampaignR\tcampaigns\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x97\x01\n\x15UpdateCampaignRequest\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"V\n\x16UpdateCampaignResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\"\xc9\x01\n\x1eListCampaignAnnotationsRequest\x12$\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\ncampaignId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8c\x01\n\x1fListCampaignAnnotationsResponse\x12\x41\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\x0b\x61nnotations\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xb1\x08\n\x0f\x43\x61mpaignService\x12\xea\x01\n\x0bGetCampaign\x12%.sift.campaigns.v1.GetCampaignRequest\x1a&.sift.campaigns.v1.GetCampaignResponse\"\x8b\x01\x92\x41#\x12\x0bGetCampaign\x1a\x14Retrieve a campaign.\x82\xd3\xe4\x93\x02_\x12\x1f/api/v1/campaigns/{campaign_id}Z<\x12:/v1/organizations/{organization_id}/campaigns/{client_key}\x12\xaa\x01\n\x0e\x43reateCampaign\x12(.sift.campaigns.v1.CreateCampaignRequest\x1a).sift.campaigns.v1.CreateCampaignResponse\"C\x92\x41$\x12\x0e\x43reateCampaign\x1a\x12\x43reate a campaign.\x82\xd3\xe4\x93\x02\x16\"\x11/api/v1/campaigns:\x01*\x12\xa0\x01\n\rListCampaigns\x12\'.sift.campaigns.v1.ListCampaignsRequest\x1a(.sift.campaigns.v1.ListCampaignsResponse\"<\x92\x41 \x12\rListCampaigns\x1a\x0fList campaigns.\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/campaigns\x12\xea\x01\n\x0eUpdateCampaign\x12(.sift.campaigns.v1.UpdateCampaignRequest\x1a).sift.campaigns.v1.UpdateCampaignResponse\"\x82\x01\x92\x41\x63\x12\x0eUpdateCampaign\x1aQUpdates an existing campaign using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x16\x32\x11/api/v1/campaigns:\x01*\x12\xf3\x01\n\x17ListCampaignAnnotations\x12\x31.sift.campaigns.v1.ListCampaignAnnotationsRequest\x1a\x32.sift.campaigns.v1.ListCampaignAnnotationsResponse\"q\x92\x41;\x12\x17ListCampaignAnnotations\x1a List annotations for a campaign.\x82\xd3\xe4\x93\x02-\x12+/api/v1/campaigns/{campaign_id}/annotationsB\xa4\x01\n\x15\x63om.sift.campaigns.v1B\x0e\x43\x61mpaignsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x11Sift.Campaigns.V1\xca\x02\x11Sift\\Campaigns\\V1\xe2\x02\x1dSift\\Campaigns\\V1\\GPBMetadata\xea\x02\x13Sift::Campaigns::V1\x92\x41\x14\x12\x12\n\x10\x43\x61mpaign serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sift/campaigns/v1/campaigns.proto\x12\x11sift.campaigns.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a%sift/annotations/v1/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x1fsift/metadata/v1/metadata.proto\x1a\x17sift/tags/v1/tags.proto\"\xda\x06\n\x08\x43\x61mpaign\x12$\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\ncampaignId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x05R\x0eorganizationId\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x12\x17\n\x04name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x03R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x03R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0cmodifiedDate\x12\x44\n\rarchived_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12-\n\x04tags\x18\x0b \x03(\x0b\x32\x14.sift.tags.v1.TagRefB\x03\xe0\x41\x06R\x04tags\x12@\n\x07reports\x18\x0c \x03(\x0b\x32!.sift.campaigns.v1.CampaignReportB\x03\xe0\x41\x06R\x07reports\x12\x41\n\x18\x63reated_from_campaign_id\x18\r \x01(\tB\x03\xe0\x41\x03H\x02R\x15\x63reatedFromCampaignId\x88\x01\x01\x12@\n\x08metadata\x18\x0e \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12$\n\x0bis_archived\x18\x0f \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\r\n\x0b_client_keyB\x0e\n\x0c_descriptionB\x1b\n\x19_created_from_campaign_id\"\xc2\x02\n\x0e\x43\x61mpaignReport\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12$\n\x0breport_name\x18\x02 \x01(\tB\x03\xe0\x41\x03R\nreportName\x12,\n\x0fnum_annotations\x18\x03 \x01(\rB\x03\xe0\x41\x03R\x0enumAnnotations\x12-\n\x10num_passed_rules\x18\x04 \x01(\rB\x03\xe0\x41\x03R\x0enumPassedRules\x12\x31\n\x12num_accepted_rules\x18\x05 \x01(\rB\x03\xe0\x41\x03R\x10numAcceptedRules\x12-\n\x10num_failed_rules\x18\x06 \x01(\rB\x03\xe0\x41\x03R\x0enumFailedRules\x12)\n\x0enum_open_rules\x18\x07 \x01(\rB\x03\xe0\x41\x03R\x0cnumOpenRules\"\x8c\x01\n\x12GetCampaignRequest\x12$\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\ncampaignId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"S\n\x13GetCampaignResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\"\x9f\x03\n\x15\x43reateCampaignRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x04tags\x18\x03 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x01R\x04tags\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\'\n\nclient_key\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\tclientKey\x88\x01\x01\x12K\n\x0b\x63reate_from\x18\x06 \x01(\x0b\x32%.sift.campaigns.v1.CreateCampaignFromB\x03\xe0\x41\x01R\ncreateFrom\x12@\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\x0e\n\x0c_descriptionB\r\n\x0b_client_key\"\xfb\x01\n\x12\x43reateCampaignFrom\x12\x44\n\x07reports\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersH\x00R\x07reports\x12>\n\x04runs\x18\x02 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersH\x00R\x04runs\x12P\n\x0eother_campaign\x18\x03 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\rotherCampaignB\r\n\x0binitializer\"V\n\x16\x43reateCampaignResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\"\xf7\x01\n\x14ListCampaignsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12.\n\x10include_archived\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01R\x0fincludeArchived\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"z\n\x15ListCampaignsResponse\x12\x39\n\tcampaigns\x18\x01 \x03(\x0b\x32\x1b.sift.campaigns.v1.CampaignR\tcampaigns\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x97\x01\n\x15UpdateCampaignRequest\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"V\n\x16UpdateCampaignResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32\x1b.sift.campaigns.v1.CampaignB\x03\xe0\x41\x02R\x08\x63\x61mpaign\"\xc9\x01\n\x1eListCampaignAnnotationsRequest\x12$\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\ncampaignId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8c\x01\n\x1fListCampaignAnnotationsResponse\x12\x41\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\x0b\x61nnotations\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xb1\x08\n\x0f\x43\x61mpaignService\x12\xea\x01\n\x0bGetCampaign\x12%.sift.campaigns.v1.GetCampaignRequest\x1a&.sift.campaigns.v1.GetCampaignResponse\"\x8b\x01\x92\x41#\x12\x0bGetCampaign\x1a\x14Retrieve a campaign.\x82\xd3\xe4\x93\x02_\x12\x1f/api/v1/campaigns/{campaign_id}Z<\x12:/v1/organizations/{organization_id}/campaigns/{client_key}\x12\xaa\x01\n\x0e\x43reateCampaign\x12(.sift.campaigns.v1.CreateCampaignRequest\x1a).sift.campaigns.v1.CreateCampaignResponse\"C\x92\x41$\x12\x0e\x43reateCampaign\x1a\x12\x43reate a campaign.\x82\xd3\xe4\x93\x02\x16\"\x11/api/v1/campaigns:\x01*\x12\xa0\x01\n\rListCampaigns\x12\'.sift.campaigns.v1.ListCampaignsRequest\x1a(.sift.campaigns.v1.ListCampaignsResponse\"<\x92\x41 \x12\rListCampaigns\x1a\x0fList campaigns.\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/campaigns\x12\xea\x01\n\x0eUpdateCampaign\x12(.sift.campaigns.v1.UpdateCampaignRequest\x1a).sift.campaigns.v1.UpdateCampaignResponse\"\x82\x01\x92\x41\x63\x12\x0eUpdateCampaign\x1aQUpdates an existing campaign using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x16\x32\x11/api/v1/campaigns:\x01*\x12\xf3\x01\n\x17ListCampaignAnnotations\x12\x31.sift.campaigns.v1.ListCampaignAnnotationsRequest\x1a\x32.sift.campaigns.v1.ListCampaignAnnotationsResponse\"q\x92\x41;\x12\x17ListCampaignAnnotations\x1a List annotations for a campaign.\x82\xd3\xe4\x93\x02-\x12+/api/v1/campaigns/{campaign_id}/annotationsB\xa4\x01\n\x15\x63om.sift.campaigns.v1B\x0e\x43\x61mpaignsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x11Sift.Campaigns.V1\xca\x02\x11Sift\\Campaigns\\V1\xe2\x02\x1dSift\\Campaigns\\V1\\GPBMetadata\xea\x02\x13Sift::Campaigns::V1\x92\x41\x14\x12\x12\n\x10\x43\x61mpaign serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -59,6 +59,8 @@ _globals['_CAMPAIGN'].fields_by_name['created_from_campaign_id']._serialized_options = b'\340A\003' _globals['_CAMPAIGN'].fields_by_name['metadata']._loaded_options = None _globals['_CAMPAIGN'].fields_by_name['metadata']._serialized_options = b'\340A\001' + _globals['_CAMPAIGN'].fields_by_name['is_archived']._loaded_options = None + _globals['_CAMPAIGN'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_CAMPAIGNREPORT'].fields_by_name['report_id']._loaded_options = None _globals['_CAMPAIGNREPORT'].fields_by_name['report_id']._serialized_options = b'\340A\002' _globals['_CAMPAIGNREPORT'].fields_by_name['report_name']._loaded_options = None @@ -136,31 +138,31 @@ _globals['_CAMPAIGNSERVICE'].methods_by_name['ListCampaignAnnotations']._loaded_options = None _globals['_CAMPAIGNSERVICE'].methods_by_name['ListCampaignAnnotations']._serialized_options = b'\222A;\022\027ListCampaignAnnotations\032 List annotations for a campaign.\202\323\344\223\002-\022+/api/v1/campaigns/{campaign_id}/annotations' _globals['_CAMPAIGN']._serialized_start=379 - _globals['_CAMPAIGN']._serialized_end=1199 - _globals['_CAMPAIGNREPORT']._serialized_start=1202 - _globals['_CAMPAIGNREPORT']._serialized_end=1524 - _globals['_GETCAMPAIGNREQUEST']._serialized_start=1527 - _globals['_GETCAMPAIGNREQUEST']._serialized_end=1667 - _globals['_GETCAMPAIGNRESPONSE']._serialized_start=1669 - _globals['_GETCAMPAIGNRESPONSE']._serialized_end=1752 - _globals['_CREATECAMPAIGNREQUEST']._serialized_start=1755 - _globals['_CREATECAMPAIGNREQUEST']._serialized_end=2170 - _globals['_CREATECAMPAIGNFROM']._serialized_start=2173 - _globals['_CREATECAMPAIGNFROM']._serialized_end=2424 - _globals['_CREATECAMPAIGNRESPONSE']._serialized_start=2426 - _globals['_CREATECAMPAIGNRESPONSE']._serialized_end=2512 - _globals['_LISTCAMPAIGNSREQUEST']._serialized_start=2515 - _globals['_LISTCAMPAIGNSREQUEST']._serialized_end=2762 - _globals['_LISTCAMPAIGNSRESPONSE']._serialized_start=2764 - _globals['_LISTCAMPAIGNSRESPONSE']._serialized_end=2886 - _globals['_UPDATECAMPAIGNREQUEST']._serialized_start=2889 - _globals['_UPDATECAMPAIGNREQUEST']._serialized_end=3040 - _globals['_UPDATECAMPAIGNRESPONSE']._serialized_start=3042 - _globals['_UPDATECAMPAIGNRESPONSE']._serialized_end=3128 - _globals['_LISTCAMPAIGNANNOTATIONSREQUEST']._serialized_start=3131 - _globals['_LISTCAMPAIGNANNOTATIONSREQUEST']._serialized_end=3332 - _globals['_LISTCAMPAIGNANNOTATIONSRESPONSE']._serialized_start=3335 - _globals['_LISTCAMPAIGNANNOTATIONSRESPONSE']._serialized_end=3475 - _globals['_CAMPAIGNSERVICE']._serialized_start=3478 - _globals['_CAMPAIGNSERVICE']._serialized_end=4551 + _globals['_CAMPAIGN']._serialized_end=1237 + _globals['_CAMPAIGNREPORT']._serialized_start=1240 + _globals['_CAMPAIGNREPORT']._serialized_end=1562 + _globals['_GETCAMPAIGNREQUEST']._serialized_start=1565 + _globals['_GETCAMPAIGNREQUEST']._serialized_end=1705 + _globals['_GETCAMPAIGNRESPONSE']._serialized_start=1707 + _globals['_GETCAMPAIGNRESPONSE']._serialized_end=1790 + _globals['_CREATECAMPAIGNREQUEST']._serialized_start=1793 + _globals['_CREATECAMPAIGNREQUEST']._serialized_end=2208 + _globals['_CREATECAMPAIGNFROM']._serialized_start=2211 + _globals['_CREATECAMPAIGNFROM']._serialized_end=2462 + _globals['_CREATECAMPAIGNRESPONSE']._serialized_start=2464 + _globals['_CREATECAMPAIGNRESPONSE']._serialized_end=2550 + _globals['_LISTCAMPAIGNSREQUEST']._serialized_start=2553 + _globals['_LISTCAMPAIGNSREQUEST']._serialized_end=2800 + _globals['_LISTCAMPAIGNSRESPONSE']._serialized_start=2802 + _globals['_LISTCAMPAIGNSRESPONSE']._serialized_end=2924 + _globals['_UPDATECAMPAIGNREQUEST']._serialized_start=2927 + _globals['_UPDATECAMPAIGNREQUEST']._serialized_end=3078 + _globals['_UPDATECAMPAIGNRESPONSE']._serialized_start=3080 + _globals['_UPDATECAMPAIGNRESPONSE']._serialized_end=3166 + _globals['_LISTCAMPAIGNANNOTATIONSREQUEST']._serialized_start=3169 + _globals['_LISTCAMPAIGNANNOTATIONSREQUEST']._serialized_end=3370 + _globals['_LISTCAMPAIGNANNOTATIONSRESPONSE']._serialized_start=3373 + _globals['_LISTCAMPAIGNANNOTATIONSRESPONSE']._serialized_end=3513 + _globals['_CAMPAIGNSERVICE']._serialized_start=3516 + _globals['_CAMPAIGNSERVICE']._serialized_end=4589 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/campaigns/v1/campaigns_pb2.pyi b/python/lib/sift/campaigns/v1/campaigns_pb2.pyi index a9c65731f..7d42339e9 100644 --- a/python/lib/sift/campaigns/v1/campaigns_pb2.pyi +++ b/python/lib/sift/campaigns/v1/campaigns_pb2.pyi @@ -36,6 +36,7 @@ class Campaign(google.protobuf.message.Message): REPORTS_FIELD_NUMBER: builtins.int CREATED_FROM_CAMPAIGN_ID_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int campaign_id: builtins.str organization_id: builtins.str client_key: builtins.str @@ -45,6 +46,8 @@ class Campaign(google.protobuf.message.Message): modified_by_user_id: builtins.str created_from_campaign_id: builtins.str """If this campaign was created by duplicating another campaign, that other campaign will be referenced here""" + is_archived: builtins.bool + """Whether the campaign. This is inferred from whether archived_date is set.""" @property def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -78,9 +81,10 @@ class Campaign(google.protobuf.message.Message): reports: collections.abc.Iterable[global___CampaignReport] | None = ..., created_from_campaign_id: builtins.str | None = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_client_key", b"_client_key", "_created_from_campaign_id", b"_created_from_campaign_id", "_description", b"_description", "archived_date", b"archived_date", "client_key", b"client_key", "created_date", b"created_date", "created_from_campaign_id", b"created_from_campaign_id", "description", b"description", "modified_date", b"modified_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_client_key", b"_client_key", "_created_from_campaign_id", b"_created_from_campaign_id", "_description", b"_description", "archived_date", b"archived_date", "campaign_id", b"campaign_id", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "created_from_campaign_id", b"created_from_campaign_id", "description", b"description", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "reports", b"reports", "tags", b"tags"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_client_key", b"_client_key", "_created_from_campaign_id", b"_created_from_campaign_id", "_description", b"_description", "archived_date", b"archived_date", "campaign_id", b"campaign_id", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "created_from_campaign_id", b"created_from_campaign_id", "description", b"description", "is_archived", b"is_archived", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "reports", b"reports", "tags", b"tags"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_client_key", b"_client_key"]) -> typing.Literal["client_key"] | None: ... @typing.overload @@ -308,7 +312,7 @@ class ListCampaignsRequest(google.protobuf.message.Message): filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are: - `created_by_user_id`, `tag_id`, `tag_name`, `report_id`, `report_name`, `campaign_id`, `client_key`, `description`, `run_id`, `name`, and `metadata`. + `created_by_user_id`, `tag_id`, `tag_name`, `report_id`, `report_name`, `campaign_id`, `client_key`, `description`, `run_id`, `name`, `is_archived`, and `metadata`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to this definition. Optional. """ @@ -375,7 +379,7 @@ class UpdateCampaignRequest(google.protobuf.message.Message): @property def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: - """The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `tags`, `reports`, and `metadata`.""" + """The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `reports`, and `metadata`.""" def __init__( self, diff --git a/python/lib/sift/channels/v2/channels_pb2.py b/python/lib/sift/channels/v2/channels_pb2.py index 64e13ecc3..83f73a0e5 100644 --- a/python/lib/sift/channels/v2/channels_pb2.py +++ b/python/lib/sift/channels/v2/channels_pb2.py @@ -19,9 +19,10 @@ from sift.common.type.v1 import channel_bit_field_element_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__bit__field__element__pb2 from sift.common.type.v1 import channel_data_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__data__type__pb2 from sift.common.type.v1 import channel_enum_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__enum__type__pb2 +from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/channels/v2/channels.proto\x12\x10sift.channels.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x33sift/common/type/v1/channel_bit_field_element.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a+sift/common/type/v1/channel_enum_type.proto\"\xd4\x05\n\x07\x43hannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12!\n\tcomponent\x18\x03 \x01(\tB\x03\xe0\x41\x02R\tcomponent\x12\x1e\n\x08\x61sset_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x1c\n\x07unit_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x06unitId\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x46\n\tdata_type\x18\x0c \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x43\n\nenum_types\x18\r \x03(\x0b\x32$.sift.common.type.v1.ChannelEnumTypeR\tenumTypes\x12Y\n\x12\x62it_field_elements\x18\x0e \x03(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementR\x10\x62itFieldElements\"7\n\x11GetChannelRequest\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"N\n\x12GetChannelResponse\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v2.ChannelB\x03\xe0\x41\x02R\x07\x63hannel\"\xc6\x01\n\x13ListChannelsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"u\n\x14ListChannelsResponse\x12\x35\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x19.sift.channels.v2.ChannelR\x08\x63hannels\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xbc\x04\n\x0e\x43hannelService\x12\xa2\x01\n\nGetChannel\x12#.sift.channels.v2.GetChannelRequest\x1a$.sift.channels.v2.GetChannelResponse\"I\x92\x41!\x12\nGetChannel\x1a\x13Retrieve a channel.\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v2/channels/{channel_id}\x12\xb5\x01\n\x0cListChannels\x12%.sift.channels.v2.ListChannelsRequest\x1a&.sift.channels.v2.ListChannelsResponse\"V\x92\x41;\x12\x0cListChannels\x1a+Retrieve channels using an optional filter.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v2/channels\x1a\xcc\x01\x92\x41\xc8\x01\x12HService to programmatically interact with [channels](/glossary#channel).\x1a|\n\"Read more about what channels are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943B\x9d\x01\n\x14\x63om.sift.channels.v2B\rChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x10Sift.Channels.V2\xca\x02\x10Sift\\Channels\\V2\xe2\x02\x1cSift\\Channels\\V2\\GPBMetadata\xea\x02\x12Sift::Channels::V2\x92\x41\x13\x12\x11\n\x0f\x43hannel serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/channels/v2/channels.proto\x12\x10sift.channels.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x33sift/common/type/v1/channel_bit_field_element.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a+sift/common/type/v1/channel_enum_type.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x96\x06\n\x07\x43hannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12!\n\tcomponent\x18\x03 \x01(\tB\x03\xe0\x41\x02R\tcomponent\x12\x1e\n\x08\x61sset_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x1c\n\x07unit_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x06unitId\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x46\n\tdata_type\x18\x0c \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x43\n\nenum_types\x18\r \x03(\x0b\x32$.sift.common.type.v1.ChannelEnumTypeR\tenumTypes\x12Y\n\x12\x62it_field_elements\x18\x0e \x03(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementR\x10\x62itFieldElements\x12@\n\x08metadata\x18\x0f \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\"7\n\x11GetChannelRequest\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"N\n\x12GetChannelResponse\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v2.ChannelB\x03\xe0\x41\x02R\x07\x63hannel\"\xc6\x01\n\x13ListChannelsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"u\n\x14ListChannelsResponse\x12\x35\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x19.sift.channels.v2.ChannelR\x08\x63hannels\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xbc\x04\n\x0e\x43hannelService\x12\xa2\x01\n\nGetChannel\x12#.sift.channels.v2.GetChannelRequest\x1a$.sift.channels.v2.GetChannelResponse\"I\x92\x41!\x12\nGetChannel\x1a\x13Retrieve a channel.\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v2/channels/{channel_id}\x12\xb5\x01\n\x0cListChannels\x12%.sift.channels.v2.ListChannelsRequest\x1a&.sift.channels.v2.ListChannelsResponse\"V\x92\x41;\x12\x0cListChannels\x1a+Retrieve channels using an optional filter.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v2/channels\x1a\xcc\x01\x92\x41\xc8\x01\x12HService to programmatically interact with [channels](/glossary#channel).\x1a|\n\"Read more about what channels are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943B\x9d\x01\n\x14\x63om.sift.channels.v2B\rChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x10Sift.Channels.V2\xca\x02\x10Sift\\Channels\\V2\xe2\x02\x1cSift\\Channels\\V2\\GPBMetadata\xea\x02\x12Sift::Channels::V2\x92\x41\x13\x12\x11\n\x0f\x43hannel serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -53,6 +54,8 @@ _globals['_CHANNEL'].fields_by_name['organization_id']._serialized_options = b'\340A\002' _globals['_CHANNEL'].fields_by_name['data_type']._loaded_options = None _globals['_CHANNEL'].fields_by_name['data_type']._serialized_options = b'\340A\002' + _globals['_CHANNEL'].fields_by_name['metadata']._loaded_options = None + _globals['_CHANNEL'].fields_by_name['metadata']._serialized_options = b'\340A\002' _globals['_GETCHANNELREQUEST'].fields_by_name['channel_id']._loaded_options = None _globals['_GETCHANNELREQUEST'].fields_by_name['channel_id']._serialized_options = b'\340A\002' _globals['_GETCHANNELRESPONSE'].fields_by_name['channel']._loaded_options = None @@ -73,16 +76,16 @@ _globals['_CHANNELSERVICE'].methods_by_name['GetChannel']._serialized_options = b'\222A!\022\nGetChannel\032\023Retrieve a channel.\202\323\344\223\002\037\022\035/api/v2/channels/{channel_id}' _globals['_CHANNELSERVICE'].methods_by_name['ListChannels']._loaded_options = None _globals['_CHANNELSERVICE'].methods_by_name['ListChannels']._serialized_options = b'\222A;\022\014ListChannels\032+Retrieve channels using an optional filter.\202\323\344\223\002\022\022\020/api/v2/channels' - _globals['_CHANNEL']._serialized_start=341 - _globals['_CHANNEL']._serialized_end=1065 - _globals['_GETCHANNELREQUEST']._serialized_start=1067 - _globals['_GETCHANNELREQUEST']._serialized_end=1122 - _globals['_GETCHANNELRESPONSE']._serialized_start=1124 - _globals['_GETCHANNELRESPONSE']._serialized_end=1202 - _globals['_LISTCHANNELSREQUEST']._serialized_start=1205 - _globals['_LISTCHANNELSREQUEST']._serialized_end=1403 - _globals['_LISTCHANNELSRESPONSE']._serialized_start=1405 - _globals['_LISTCHANNELSRESPONSE']._serialized_end=1522 - _globals['_CHANNELSERVICE']._serialized_start=1525 - _globals['_CHANNELSERVICE']._serialized_end=2097 + _globals['_CHANNEL']._serialized_start=374 + _globals['_CHANNEL']._serialized_end=1164 + _globals['_GETCHANNELREQUEST']._serialized_start=1166 + _globals['_GETCHANNELREQUEST']._serialized_end=1221 + _globals['_GETCHANNELRESPONSE']._serialized_start=1223 + _globals['_GETCHANNELRESPONSE']._serialized_end=1301 + _globals['_LISTCHANNELSREQUEST']._serialized_start=1304 + _globals['_LISTCHANNELSREQUEST']._serialized_end=1502 + _globals['_LISTCHANNELSRESPONSE']._serialized_start=1504 + _globals['_LISTCHANNELSRESPONSE']._serialized_end=1621 + _globals['_CHANNELSERVICE']._serialized_start=1624 + _globals['_CHANNELSERVICE']._serialized_end=2196 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/channels/v2/channels_pb2.pyi b/python/lib/sift/channels/v2/channels_pb2.pyi index bf39f9a23..9721a828a 100644 --- a/python/lib/sift/channels/v2/channels_pb2.pyi +++ b/python/lib/sift/channels/v2/channels_pb2.pyi @@ -12,6 +12,7 @@ import google.protobuf.timestamp_pb2 import sift.common.type.v1.channel_bit_field_element_pb2 import sift.common.type.v1.channel_data_type_pb2 import sift.common.type.v1.channel_enum_type_pb2 +import sift.metadata.v1.metadata_pb2 import typing DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @@ -34,6 +35,7 @@ class Channel(google.protobuf.message.Message): DATA_TYPE_FIELD_NUMBER: builtins.int ENUM_TYPES_FIELD_NUMBER: builtins.int BIT_FIELD_ELEMENTS_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int channel_id: builtins.str name: builtins.str component: builtins.str @@ -52,6 +54,8 @@ class Channel(google.protobuf.message.Message): def enum_types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.channel_enum_type_pb2.ChannelEnumType]: ... @property def bit_field_elements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.channel_bit_field_element_pb2.ChannelBitFieldElement]: ... + @property + def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.metadata.v1.metadata_pb2.MetadataValue]: ... def __init__( self, *, @@ -69,9 +73,10 @@ class Channel(google.protobuf.message.Message): data_type: sift.common.type.v1.channel_data_type_pb2.ChannelDataType.ValueType = ..., enum_types: collections.abc.Iterable[sift.common.type.v1.channel_enum_type_pb2.ChannelEnumType] | None = ..., bit_field_elements: collections.abc.Iterable[sift.common.type.v1.channel_bit_field_element_pb2.ChannelBitFieldElement] | None = ..., + metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id", "bit_field_elements", b"bit_field_elements", "channel_id", b"channel_id", "component", b"component", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "data_type", b"data_type", "description", b"description", "enum_types", b"enum_types", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "unit_id", b"unit_id"]) -> None: ... + def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id", "bit_field_elements", b"bit_field_elements", "channel_id", b"channel_id", "component", b"component", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "data_type", b"data_type", "description", b"description", "enum_types", b"enum_types", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "unit_id", b"unit_id"]) -> None: ... global___Channel = Channel diff --git a/python/lib/sift/channels/v3/channels_pb2.py b/python/lib/sift/channels/v3/channels_pb2.py index a3f93da88..cd0c58103 100644 --- a/python/lib/sift/channels/v3/channels_pb2.py +++ b/python/lib/sift/channels/v3/channels_pb2.py @@ -23,7 +23,7 @@ from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/channels/v3/channels.proto\x12\x10sift.channels.v3\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x33sift/common/type/v1/channel_bit_field_element.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a+sift/common/type/v1/channel_enum_type.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x9e\x06\n\x07\x43hannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1e\n\x08\x61sset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x1c\n\x07unit_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x06unitId\x12\x42\n\x0c\x63reated_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x46\n\tdata_type\x18\n \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x43\n\nenum_types\x18\x0b \x03(\x0b\x32$.sift.common.type.v1.ChannelEnumTypeR\tenumTypes\x12Y\n\x12\x62it_field_elements\x18\x0c \x03(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementR\x10\x62itFieldElements\x12/\n\x13\x64isplay_description\x18\r \x01(\tR\x12\x64isplayDescription\x12&\n\x0f\x64isplay_unit_id\x18\x0e \x01(\tR\rdisplayUnitId\x12@\n\x08metadata\x18\x0f \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\"7\n\x11GetChannelRequest\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"N\n\x12GetChannelResponse\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v3.ChannelB\x03\xe0\x41\x02R\x07\x63hannel\"\x98\x01\n\x13ListChannelsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"u\n\x14ListChannelsResponse\x12\x35\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x19.sift.channels.v3.ChannelR\x08\x63hannels\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x92\x01\n\x14UpdateChannelRequest\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v3.ChannelB\x03\xe0\x41\x02R\x07\x63hannel\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"Q\n\x15UpdateChannelResponse\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v3.ChannelB\x03\xe0\x41\x02R\x07\x63hannel2\xbd\x06\n\x0e\x43hannelService\x12\xbf\x01\n\nGetChannel\x12#.sift.channels.v3.GetChannelRequest\x1a$.sift.channels.v3.GetChannelResponse\"f\x92\x41>\x12\nGetChannel\x1a\x13Retrieve a channel.*\x1b\x43hannelService_GetChannelV2\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v3/channels/{channel_id}\x12\xd4\x01\n\x0cListChannels\x12%.sift.channels.v3.ListChannelsRequest\x1a&.sift.channels.v3.ListChannelsResponse\"u\x92\x41Z\x12\x0cListChannels\x1a+Retrieve channels using an optional filter.*\x1d\x43hannelService_ListChannelsV2\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v3/channels\x12\xc2\x01\n\rUpdateChannel\x12&.sift.channels.v3.UpdateChannelRequest\x1a\'.sift.channels.v3.UpdateChannelResponse\"`\x92\x41\x42\x12\rUpdateChannel\x1a\x11Update a channel.*\x1e\x43hannelService_UpdateChannelV3\x82\xd3\xe4\x93\x02\x15\x32\x10/api/v3/channels:\x01*\x1a\xcc\x01\x92\x41\xc8\x01\x12HService to programmatically interact with [channels](/glossary#channel).\x1a|\n\"Read more about what channels are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943B\x9d\x01\n\x14\x63om.sift.channels.v3B\rChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x10Sift.Channels.V3\xca\x02\x10Sift\\Channels\\V3\xe2\x02\x1cSift\\Channels\\V3\\GPBMetadata\xea\x02\x12Sift::Channels::V3\x92\x41\x13\x12\x11\n\x0f\x43hannel serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/channels/v3/channels.proto\x12\x10sift.channels.v3\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x33sift/common/type/v1/channel_bit_field_element.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a+sift/common/type/v1/channel_enum_type.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x9e\x06\n\x07\x43hannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1e\n\x08\x61sset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x1c\n\x07unit_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x06unitId\x12\x42\n\x0c\x63reated_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x46\n\tdata_type\x18\n \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x43\n\nenum_types\x18\x0b \x03(\x0b\x32$.sift.common.type.v1.ChannelEnumTypeR\tenumTypes\x12Y\n\x12\x62it_field_elements\x18\x0c \x03(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementR\x10\x62itFieldElements\x12/\n\x13\x64isplay_description\x18\r \x01(\tR\x12\x64isplayDescription\x12&\n\x0f\x64isplay_unit_id\x18\x0e \x01(\tR\rdisplayUnitId\x12@\n\x08metadata\x18\x0f \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\"7\n\x11GetChannelRequest\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"N\n\x12GetChannelResponse\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v3.ChannelB\x03\xe0\x41\x02R\x07\x63hannel\"\x98\x01\n\x13ListChannelsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"u\n\x14ListChannelsResponse\x12\x35\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x19.sift.channels.v3.ChannelR\x08\x63hannels\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb9\x05\n\rFilterChannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x1e\n\x08\x61sset_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nasset_name\x18\x06 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12 \n\x0b\x64\x65scription\x18\x07 \x01(\tR\x0b\x64\x65scription\x12/\n\x13\x64isplay_description\x18\x08 \x01(\tR\x12\x64isplayDescription\x12\x17\n\x07unit_id\x18\t \x01(\tR\x06unitId\x12&\n\x0f\x64isplay_unit_id\x18\n \x01(\tR\rdisplayUnitId\x12\x12\n\x04unit\x18\x0b \x01(\tR\x04unit\x12!\n\x0c\x64isplay_unit\x18\x0c \x01(\tR\x0b\x64isplayUnit\x12\x46\n\tdata_type\x18\r \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x43\n\nenum_types\x18\x0e \x03(\x0b\x32$.sift.common.type.v1.ChannelEnumTypeR\tenumTypes\x12Y\n\x12\x62it_field_elements\x18\x0f \x03(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementR\x10\x62itFieldElements\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataJ\x04\x08\x03\x10\x04\"\xe5\x03\n\x15\x46ilterChannelsRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x1f\n\x0bsearch_term\x18\x04 \x01(\tR\nsearchTerm\x12\x37\n\x18is_search_case_sensitive\x18\x05 \x01(\x08R\x15isSearchCaseSensitive\x12(\n\x10is_search_regexp\x18\x06 \x01(\x08R\x0eisSearchRegexp\x12\x1b\n\tasset_ids\x18\x07 \x03(\tR\x08\x61ssetIds\x12\x17\n\x07run_ids\x18\x08 \x03(\tR\x06runIds\x12\x1f\n\x0b\x63hannel_ids\x18\t \x03(\tR\nchannelIds\x12\"\n\rasset_tag_ids\x18\n \x03(\tR\x0b\x61ssetTagIds\x12\x43\n\ndata_types\x18\x0b \x03(\x0e\x32$.sift.common.type.v1.ChannelDataTypeR\tdataTypes\x12#\n\rmetadata_keys\x18\x0c \x03(\tR\x0cmetadataKeys\x12\'\n\x0fmetadata_values\x18\r \x03(\tR\x0emetadataValues\"}\n\x16\x46ilterChannelsResponse\x12;\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1f.sift.channels.v3.FilterChannelR\x08\x63hannels\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x92\x01\n\x14UpdateChannelRequest\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v3.ChannelB\x03\xe0\x41\x02R\x07\x63hannel\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"Q\n\x15UpdateChannelResponse\x12\x38\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x19.sift.channels.v3.ChannelB\x03\xe0\x41\x02R\x07\x63hannel2\xbd\x06\n\x0e\x43hannelService\x12\xbf\x01\n\nGetChannel\x12#.sift.channels.v3.GetChannelRequest\x1a$.sift.channels.v3.GetChannelResponse\"f\x92\x41>\x12\nGetChannel\x1a\x13Retrieve a channel.*\x1b\x43hannelService_GetChannelV2\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v3/channels/{channel_id}\x12\xd4\x01\n\x0cListChannels\x12%.sift.channels.v3.ListChannelsRequest\x1a&.sift.channels.v3.ListChannelsResponse\"u\x92\x41Z\x12\x0cListChannels\x1a+Retrieve channels using an optional filter.*\x1d\x43hannelService_ListChannelsV2\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v3/channels\x12\xc2\x01\n\rUpdateChannel\x12&.sift.channels.v3.UpdateChannelRequest\x1a\'.sift.channels.v3.UpdateChannelResponse\"`\x92\x41\x42\x12\rUpdateChannel\x1a\x11Update a channel.*\x1e\x43hannelService_UpdateChannelV3\x82\xd3\xe4\x93\x02\x15\x32\x10/api/v3/channels:\x01*\x1a\xcc\x01\x92\x41\xc8\x01\x12HService to programmatically interact with [channels](/glossary#channel).\x1a|\n\"Read more about what channels are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943B\x9d\x01\n\x14\x63om.sift.channels.v3B\rChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x10Sift.Channels.V3\xca\x02\x10Sift\\Channels\\V3\xe2\x02\x1cSift\\Channels\\V3\\GPBMetadata\xea\x02\x12Sift::Channels::V3\x92\x41\x13\x12\x11\n\x0f\x43hannel serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -65,6 +65,20 @@ _globals['_LISTCHANNELSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001' _globals['_LISTCHANNELSREQUEST'].fields_by_name['order_by']._loaded_options = None _globals['_LISTCHANNELSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_FILTERCHANNEL'].fields_by_name['channel_id']._loaded_options = None + _globals['_FILTERCHANNEL'].fields_by_name['channel_id']._serialized_options = b'\340A\002' + _globals['_FILTERCHANNEL'].fields_by_name['name']._loaded_options = None + _globals['_FILTERCHANNEL'].fields_by_name['name']._serialized_options = b'\340A\002' + _globals['_FILTERCHANNEL'].fields_by_name['organization_id']._loaded_options = None + _globals['_FILTERCHANNEL'].fields_by_name['organization_id']._serialized_options = b'\340A\002' + _globals['_FILTERCHANNEL'].fields_by_name['asset_id']._loaded_options = None + _globals['_FILTERCHANNEL'].fields_by_name['asset_id']._serialized_options = b'\340A\002' + _globals['_FILTERCHANNEL'].fields_by_name['asset_name']._loaded_options = None + _globals['_FILTERCHANNEL'].fields_by_name['asset_name']._serialized_options = b'\340A\002' + _globals['_FILTERCHANNEL'].fields_by_name['data_type']._loaded_options = None + _globals['_FILTERCHANNEL'].fields_by_name['data_type']._serialized_options = b'\340A\002' + _globals['_FILTERCHANNEL'].fields_by_name['metadata']._loaded_options = None + _globals['_FILTERCHANNEL'].fields_by_name['metadata']._serialized_options = b'\340A\002' _globals['_UPDATECHANNELREQUEST'].fields_by_name['channel']._loaded_options = None _globals['_UPDATECHANNELREQUEST'].fields_by_name['channel']._serialized_options = b'\340A\002' _globals['_UPDATECHANNELREQUEST'].fields_by_name['update_mask']._loaded_options = None @@ -89,10 +103,16 @@ _globals['_LISTCHANNELSREQUEST']._serialized_end=1498 _globals['_LISTCHANNELSRESPONSE']._serialized_start=1500 _globals['_LISTCHANNELSRESPONSE']._serialized_end=1617 - _globals['_UPDATECHANNELREQUEST']._serialized_start=1620 - _globals['_UPDATECHANNELREQUEST']._serialized_end=1766 - _globals['_UPDATECHANNELRESPONSE']._serialized_start=1768 - _globals['_UPDATECHANNELRESPONSE']._serialized_end=1849 - _globals['_CHANNELSERVICE']._serialized_start=1852 - _globals['_CHANNELSERVICE']._serialized_end=2681 + _globals['_FILTERCHANNEL']._serialized_start=1620 + _globals['_FILTERCHANNEL']._serialized_end=2317 + _globals['_FILTERCHANNELSREQUEST']._serialized_start=2320 + _globals['_FILTERCHANNELSREQUEST']._serialized_end=2805 + _globals['_FILTERCHANNELSRESPONSE']._serialized_start=2807 + _globals['_FILTERCHANNELSRESPONSE']._serialized_end=2932 + _globals['_UPDATECHANNELREQUEST']._serialized_start=2935 + _globals['_UPDATECHANNELREQUEST']._serialized_end=3081 + _globals['_UPDATECHANNELRESPONSE']._serialized_start=3083 + _globals['_UPDATECHANNELRESPONSE']._serialized_end=3164 + _globals['_CHANNELSERVICE']._serialized_start=3167 + _globals['_CHANNELSERVICE']._serialized_end=3996 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/channels/v3/channels_pb2.pyi b/python/lib/sift/channels/v3/channels_pb2.pyi index 0c7580756..2893f794b 100644 --- a/python/lib/sift/channels/v3/channels_pb2.pyi +++ b/python/lib/sift/channels/v3/channels_pb2.pyi @@ -142,7 +142,7 @@ class ListChannelsRequest(google.protobuf.message.Message): filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are `channel_id`, `asset_id`, `name`, `description`, `active`, - `run_id`, `run_name`, `run_client_key`, `created_date`, and `modified_date`. + `run_id`, `run_name`, `run_client_key`, `created_date`, `modified_date`, `created_by_user_id`, and `modified_by_user_id`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/channels#channel). Optional. """ @@ -186,6 +186,159 @@ class ListChannelsResponse(google.protobuf.message.Message): global___ListChannelsResponse = ListChannelsResponse +@typing.final +class FilterChannel(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CHANNEL_ID_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + ASSET_ID_FIELD_NUMBER: builtins.int + ASSET_NAME_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + DISPLAY_DESCRIPTION_FIELD_NUMBER: builtins.int + UNIT_ID_FIELD_NUMBER: builtins.int + DISPLAY_UNIT_ID_FIELD_NUMBER: builtins.int + UNIT_FIELD_NUMBER: builtins.int + DISPLAY_UNIT_FIELD_NUMBER: builtins.int + DATA_TYPE_FIELD_NUMBER: builtins.int + ENUM_TYPES_FIELD_NUMBER: builtins.int + BIT_FIELD_ELEMENTS_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + channel_id: builtins.str + name: builtins.str + organization_id: builtins.str + asset_id: builtins.str + asset_name: builtins.str + description: builtins.str + display_description: builtins.str + unit_id: builtins.str + display_unit_id: builtins.str + unit: builtins.str + display_unit: builtins.str + data_type: sift.common.type.v1.channel_data_type_pb2.ChannelDataType.ValueType + @property + def enum_types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.channel_enum_type_pb2.ChannelEnumType]: ... + @property + def bit_field_elements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.channel_bit_field_element_pb2.ChannelBitFieldElement]: ... + @property + def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.metadata.v1.metadata_pb2.MetadataValue]: ... + def __init__( + self, + *, + channel_id: builtins.str = ..., + name: builtins.str = ..., + organization_id: builtins.str = ..., + asset_id: builtins.str = ..., + asset_name: builtins.str = ..., + description: builtins.str = ..., + display_description: builtins.str = ..., + unit_id: builtins.str = ..., + display_unit_id: builtins.str = ..., + unit: builtins.str = ..., + display_unit: builtins.str = ..., + data_type: sift.common.type.v1.channel_data_type_pb2.ChannelDataType.ValueType = ..., + enum_types: collections.abc.Iterable[sift.common.type.v1.channel_enum_type_pb2.ChannelEnumType] | None = ..., + bit_field_elements: collections.abc.Iterable[sift.common.type.v1.channel_bit_field_element_pb2.ChannelBitFieldElement] | None = ..., + metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id", "asset_name", b"asset_name", "bit_field_elements", b"bit_field_elements", "channel_id", b"channel_id", "data_type", b"data_type", "description", b"description", "display_description", b"display_description", "display_unit", b"display_unit", "display_unit_id", b"display_unit_id", "enum_types", b"enum_types", "metadata", b"metadata", "name", b"name", "organization_id", b"organization_id", "unit", b"unit", "unit_id", b"unit_id"]) -> None: ... + +global___FilterChannel = FilterChannel + +@typing.final +class FilterChannelsRequest(google.protobuf.message.Message): + """The request for a call to ChannelService_FilterChannels.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + SEARCH_TERM_FIELD_NUMBER: builtins.int + IS_SEARCH_CASE_SENSITIVE_FIELD_NUMBER: builtins.int + IS_SEARCH_REGEXP_FIELD_NUMBER: builtins.int + ASSET_IDS_FIELD_NUMBER: builtins.int + RUN_IDS_FIELD_NUMBER: builtins.int + CHANNEL_IDS_FIELD_NUMBER: builtins.int + ASSET_TAG_IDS_FIELD_NUMBER: builtins.int + DATA_TYPES_FIELD_NUMBER: builtins.int + METADATA_KEYS_FIELD_NUMBER: builtins.int + METADATA_VALUES_FIELD_NUMBER: builtins.int + page_size: builtins.int + page_token: builtins.str + search_term: builtins.str + """The search term to match against channel names, components and descriptions. Optional.""" + is_search_case_sensitive: builtins.bool + """If true, the search term is case sensitive. Optional, default false.""" + is_search_regexp: builtins.bool + """If true, the search term is treated as a regular expression. Optional, default false.""" + @property + def asset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """If provided, only channels matching these asset_ids are returned. Optional""" + + @property + def run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """Only channels for these runs are returned. Optional""" + + @property + def channel_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """If provided, only channels matching these channel_ids are returned. Optional""" + + @property + def asset_tag_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """If provided, only channels with assets with these tag_ids are returned. Optional""" + + @property + def data_types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[sift.common.type.v1.channel_data_type_pb2.ChannelDataType.ValueType]: + """If provide, only channels with these data types are returned. Optional.""" + + @property + def metadata_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """If provided, only channels with this metadata are returned. Optional.""" + + @property + def metadata_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + search_term: builtins.str = ..., + is_search_case_sensitive: builtins.bool = ..., + is_search_regexp: builtins.bool = ..., + asset_ids: collections.abc.Iterable[builtins.str] | None = ..., + run_ids: collections.abc.Iterable[builtins.str] | None = ..., + channel_ids: collections.abc.Iterable[builtins.str] | None = ..., + asset_tag_ids: collections.abc.Iterable[builtins.str] | None = ..., + data_types: collections.abc.Iterable[sift.common.type.v1.channel_data_type_pb2.ChannelDataType.ValueType] | None = ..., + metadata_keys: collections.abc.Iterable[builtins.str] | None = ..., + metadata_values: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["asset_ids", b"asset_ids", "asset_tag_ids", b"asset_tag_ids", "channel_ids", b"channel_ids", "data_types", b"data_types", "is_search_case_sensitive", b"is_search_case_sensitive", "is_search_regexp", b"is_search_regexp", "metadata_keys", b"metadata_keys", "metadata_values", b"metadata_values", "page_size", b"page_size", "page_token", b"page_token", "run_ids", b"run_ids", "search_term", b"search_term"]) -> None: ... + +global___FilterChannelsRequest = FilterChannelsRequest + +@typing.final +class FilterChannelsResponse(google.protobuf.message.Message): + """The result of a call to ChannelService_FilterChannels.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CHANNELS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + @property + def channels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FilterChannel]: ... + def __init__( + self, + *, + channels: collections.abc.Iterable[global___FilterChannel] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["channels", b"channels", "next_page_token", b"next_page_token"]) -> None: ... + +global___FilterChannelsResponse = FilterChannelsResponse + @typing.final class UpdateChannelRequest(google.protobuf.message.Message): """The request for a call to ChannelService_UpdateChannel.""" diff --git a/python/lib/sift/channels/v3/channels_pb2_grpc.py b/python/lib/sift/channels/v3/channels_pb2_grpc.py index b8445384f..5f681e44f 100644 --- a/python/lib/sift/channels/v3/channels_pb2_grpc.py +++ b/python/lib/sift/channels/v3/channels_pb2_grpc.py @@ -49,7 +49,9 @@ def ListChannels(self, request, context): raise NotImplementedError('Method not implemented!') def UpdateChannel(self, request, context): - """Update a channel + """EXPERIMENTAL: This RPC is experimental and only available to a limited set of users. + + Update a channel """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') diff --git a/python/lib/sift/channels/v3/channels_pb2_grpc.pyi b/python/lib/sift/channels/v3/channels_pb2_grpc.pyi index 71ee85adf..bdf8c0e8f 100644 --- a/python/lib/sift/channels/v3/channels_pb2_grpc.pyi +++ b/python/lib/sift/channels/v3/channels_pb2_grpc.pyi @@ -35,7 +35,10 @@ class ChannelServiceStub: sift.channels.v3.channels_pb2.UpdateChannelRequest, sift.channels.v3.channels_pb2.UpdateChannelResponse, ] - """Update a channel""" + """EXPERIMENTAL: This RPC is experimental and only available to a limited set of users. + + Update a channel + """ class ChannelServiceAsyncStub: GetChannel: grpc.aio.UnaryUnaryMultiCallable[ @@ -54,7 +57,10 @@ class ChannelServiceAsyncStub: sift.channels.v3.channels_pb2.UpdateChannelRequest, sift.channels.v3.channels_pb2.UpdateChannelResponse, ] - """Update a channel""" + """EXPERIMENTAL: This RPC is experimental and only available to a limited set of users. + + Update a channel + """ class ChannelServiceServicer(metaclass=abc.ABCMeta): @abc.abstractmethod @@ -79,6 +85,9 @@ class ChannelServiceServicer(metaclass=abc.ABCMeta): request: sift.channels.v3.channels_pb2.UpdateChannelRequest, context: _ServicerContext, ) -> typing.Union[sift.channels.v3.channels_pb2.UpdateChannelResponse, collections.abc.Awaitable[sift.channels.v3.channels_pb2.UpdateChannelResponse]]: - """Update a channel""" + """EXPERIMENTAL: This RPC is experimental and only available to a limited set of users. + + Update a channel + """ def add_ChannelServiceServicer_to_server(servicer: ChannelServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/python/lib/sift/common/type/v1/user_defined_functions_pb2.py b/python/lib/sift/common/type/v1/user_defined_functions_pb2.py index c1eaa68e4..80bfdc2a2 100644 --- a/python/lib/sift/common/type/v1/user_defined_functions_pb2.py +++ b/python/lib/sift/common/type/v1/user_defined_functions_pb2.py @@ -12,12 +12,13 @@ _sym_db = _symbol_database.Default() +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0sift/common/type/v1/user_defined_functions.proto\x12\x13sift.common.type.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x96\x08\n\x13UserDefinedFunction\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12I\n\rarchived_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\x0c\x61rchivedDate\x88\x01\x01\x12K\n user_defined_function_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\x12\x1d\n\x07version\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07version\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12*\n\x0e\x63hange_message\x18\x08 \x01(\tB\x03\xe0\x41\x02R\rchangeMessage\x12\"\n\nuser_notes\x18\t \x01(\tB\x03\xe0\x41\x02R\tuserNotes\x12#\n\nexpression\x18\n \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x0c \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\\\n\x14\x66unction_output_type\x18\r \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x01R\x12\x66unctionOutputType\x12\x61\n\x15\x66unction_dependencies\x18\x0b \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x02R\x14\x66unctionDependencies\x12\x42\n\x0c\x63reated_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x10 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x11 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12@\n\x08metadata\x18\x12 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\x10\n\x0e_archived_date\"a\n\x12\x46unctionDependency\x12K\n user_defined_function_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\"\x9e\x01\n\rFunctionInput\x12#\n\nidentifier\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nidentifier\x12G\n\tdata_type\x18\x02 \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x1f\n\x08\x63onstant\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02R\x08\x63onstant*\x92\x01\n\x10\x46unctionDataType\x12\"\n\x1e\x46UNCTION_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x46UNCTION_DATA_TYPE_NUMERIC\x10\x01\x12\x1d\n\x19\x46UNCTION_DATA_TYPE_STRING\x10\x02\x12\x1b\n\x17\x46UNCTION_DATA_TYPE_BOOL\x10\x03\x42\xa3\x01\n\x17\x63om.sift.common.type.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SCT\xaa\x02\x13Sift.Common.Type.V1\xca\x02\x13Sift\\Common\\Type\\V1\xe2\x02\x1fSift\\Common\\Type\\V1\\GPBMetadata\xea\x02\x16Sift::Common::Type::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0sift/common/type/v1/user_defined_functions.proto\x12\x13sift.common.type.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xbc\x08\n\x13UserDefinedFunction\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12I\n\rarchived_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\x0c\x61rchivedDate\x88\x01\x01\x12K\n user_defined_function_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\x12\x1d\n\x07version\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07version\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12*\n\x0e\x63hange_message\x18\x08 \x01(\tB\x03\xe0\x41\x02R\rchangeMessage\x12\"\n\nuser_notes\x18\t \x01(\tB\x03\xe0\x41\x02R\tuserNotes\x12#\n\nexpression\x18\n \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x0c \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\\\n\x14\x66unction_output_type\x18\r \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x01R\x12\x66unctionOutputType\x12\x61\n\x15\x66unction_dependencies\x18\x0b \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x02R\x14\x66unctionDependencies\x12\x42\n\x0c\x63reated_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x10 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x11 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12@\n\x08metadata\x18\x12 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x13 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\x10\n\x0e_archived_date\"i\n\x12\x46unctionDependency\x12S\n user_defined_function_version_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x1cuserDefinedFunctionVersionId\"\x9e\x01\n\rFunctionInput\x12#\n\nidentifier\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nidentifier\x12G\n\tdata_type\x18\x02 \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x1f\n\x08\x63onstant\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02R\x08\x63onstant*\x92\x01\n\x10\x46unctionDataType\x12\"\n\x1e\x46UNCTION_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x46UNCTION_DATA_TYPE_NUMERIC\x10\x01\x12\x1d\n\x19\x46UNCTION_DATA_TYPE_STRING\x10\x02\x12\x1b\n\x17\x46UNCTION_DATA_TYPE_BOOL\x10\x03\x42\xa3\x01\n\x17\x63om.sift.common.type.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SCT\xaa\x02\x13Sift.Common.Type.V1\xca\x02\x13Sift\\Common\\Type\\V1\xe2\x02\x1fSift\\Common\\Type\\V1\\GPBMetadata\xea\x02\x16Sift::Common::Type::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -59,20 +60,22 @@ _globals['_USERDEFINEDFUNCTION'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002' _globals['_USERDEFINEDFUNCTION'].fields_by_name['metadata']._loaded_options = None _globals['_USERDEFINEDFUNCTION'].fields_by_name['metadata']._serialized_options = b'\340A\002' + _globals['_USERDEFINEDFUNCTION'].fields_by_name['is_archived']._loaded_options = None + _globals['_USERDEFINEDFUNCTION'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_FUNCTIONDEPENDENCY'].fields_by_name['user_defined_function_version_id']._loaded_options = None - _globals['_FUNCTIONDEPENDENCY'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002' + _globals['_FUNCTIONDEPENDENCY'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_FUNCTIONINPUT'].fields_by_name['identifier']._loaded_options = None _globals['_FUNCTIONINPUT'].fields_by_name['identifier']._serialized_options = b'\340A\002' _globals['_FUNCTIONINPUT'].fields_by_name['data_type']._loaded_options = None _globals['_FUNCTIONINPUT'].fields_by_name['data_type']._serialized_options = b'\340A\002' _globals['_FUNCTIONINPUT'].fields_by_name['constant']._loaded_options = None _globals['_FUNCTIONINPUT'].fields_by_name['constant']._serialized_options = b'\340A\002' - _globals['_FUNCTIONDATATYPE']._serialized_start=1482 - _globals['_FUNCTIONDATATYPE']._serialized_end=1628 - _globals['_USERDEFINEDFUNCTION']._serialized_start=173 - _globals['_USERDEFINEDFUNCTION']._serialized_end=1219 - _globals['_FUNCTIONDEPENDENCY']._serialized_start=1221 - _globals['_FUNCTIONDEPENDENCY']._serialized_end=1318 - _globals['_FUNCTIONINPUT']._serialized_start=1321 - _globals['_FUNCTIONINPUT']._serialized_end=1479 + _globals['_FUNCTIONDATATYPE']._serialized_start=1557 + _globals['_FUNCTIONDATATYPE']._serialized_end=1703 + _globals['_USERDEFINEDFUNCTION']._serialized_start=202 + _globals['_USERDEFINEDFUNCTION']._serialized_end=1286 + _globals['_FUNCTIONDEPENDENCY']._serialized_start=1288 + _globals['_FUNCTIONDEPENDENCY']._serialized_end=1393 + _globals['_FUNCTIONINPUT']._serialized_start=1396 + _globals['_FUNCTIONINPUT']._serialized_end=1554 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/common/type/v1/user_defined_functions_pb2.pyi b/python/lib/sift/common/type/v1/user_defined_functions_pb2.pyi index e3ee407ec..052036531 100644 --- a/python/lib/sift/common/type/v1/user_defined_functions_pb2.pyi +++ b/python/lib/sift/common/type/v1/user_defined_functions_pb2.pyi @@ -61,6 +61,7 @@ class UserDefinedFunction(google.protobuf.message.Message): CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int user_defined_function_id: builtins.str name: builtins.str user_defined_function_version_id: builtins.str @@ -72,6 +73,7 @@ class UserDefinedFunction(google.protobuf.message.Message): function_output_type: global___FunctionDataType.ValueType created_by_user_id: builtins.str modified_by_user_id: builtins.str + is_archived: builtins.bool @property def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -104,9 +106,10 @@ class UserDefinedFunction(google.protobuf.message.Message): created_by_user_id: builtins.str = ..., modified_by_user_id: builtins.str = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "archived_date", b"archived_date", "created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "archived_date", b"archived_date", "change_message", b"change_message", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "expression", b"expression", "function_dependencies", b"function_dependencies", "function_inputs", b"function_inputs", "function_output_type", b"function_output_type", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "user_defined_function_id", b"user_defined_function_id", "user_defined_function_version_id", b"user_defined_function_version_id", "user_notes", b"user_notes", "version", b"version"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "archived_date", b"archived_date", "change_message", b"change_message", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "expression", b"expression", "function_dependencies", b"function_dependencies", "function_inputs", b"function_inputs", "function_output_type", b"function_output_type", "is_archived", b"is_archived", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "user_defined_function_id", b"user_defined_function_id", "user_defined_function_version_id", b"user_defined_function_version_id", "user_notes", b"user_notes", "version", b"version"]) -> None: ... def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... global___UserDefinedFunction = UserDefinedFunction diff --git a/python/lib/sift/data/v2/data_pb2.py b/python/lib/sift/data/v2/data_pb2.py index e4ab4e390..184894036 100644 --- a/python/lib/sift/data/v2/data_pb2.py +++ b/python/lib/sift/data/v2/data_pb2.py @@ -21,9 +21,10 @@ from sift.common.type.v1 import channel_bit_field_element_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__bit__field__element__pb2 from sift.common.type.v1 import channel_data_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__data__type__pb2 from sift.common.type.v1 import channel_enum_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__enum__type__pb2 +from sift.options.v1 import safe_to_log_pb2 as sift_dot_options_dot_v1_dot_safe__to__log__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/data/v2/data.proto\x12\x0csift.data.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v1/calculated_channels.proto\x1a\x33sift/common/type/v1/channel_bit_field_element.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a+sift/common/type/v1/channel_enum_type.proto\"\x8a\x02\n\x0eGetDataRequest\x12-\n\x07queries\x18\x01 \x03(\x0b\x32\x13.sift.data.v2.QueryR\x07queries\x12\x39\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\x12\x1b\n\tsample_ms\x18\x04 \x01(\rR\x08sampleMs\x12\x1b\n\tpage_size\x18\x05 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x06 \x01(\tR\tpageToken\"\x9f\x01\n\x05Query\x12\x36\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x1a.sift.data.v2.ChannelQueryH\x00R\x07\x63hannel\x12U\n\x12\x63\x61lculated_channel\x18\x02 \x01(\x0b\x32$.sift.data.v2.CalculatedChannelQueryH\x00R\x11\x63\x61lculatedChannelB\x07\n\x05query\"T\n\x0c\x43hannelQuery\x12\x1d\n\nchannel_id\x18\x01 \x01(\tR\tchannelId\x12\x1a\n\x06run_id\x18\x02 \x01(\tH\x00R\x05runId\x88\x01\x01\x42\t\n\x07_run_id\"\x89\x02\n\x16\x43\x61lculatedChannelQuery\x12$\n\x0b\x63hannel_key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nchannelKey\x12S\n\nexpression\x18\x02 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\nexpression\x12\x1a\n\x06run_id\x18\x03 \x01(\tH\x00R\x05runId\x88\x01\x01\x12\x44\n\x04mode\x18\x04 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeH\x01R\x04mode\x88\x01\x01\x42\t\n\x07_run_idB\x07\n\x05_mode\"h\n\x0fGetDataResponse\x12&\n\x0fnext_page_token\x18\x01 \x01(\tR\rnextPageToken\x12-\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x14.google.protobuf.AnyB\x03\xe0\x41\x02R\x04\x64\x61ta\"\xa1\x06\n\x08Metadata\x12\x46\n\tdata_type\x18\x01 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\"\n\nsampled_ms\x18\x02 \x01(\rB\x03\xe0\x41\x02R\tsampledMs\x12\x37\n\x05\x61sset\x18\x03 \x01(\x0b\x32\x1c.sift.data.v2.Metadata.AssetB\x03\xe0\x41\x02R\x05\x61sset\x12\x31\n\x03run\x18\x04 \x01(\x0b\x32\x1a.sift.data.v2.Metadata.RunH\x00R\x03run\x88\x01\x01\x12=\n\x07\x63hannel\x18\x05 \x01(\x0b\x32\x1e.sift.data.v2.Metadata.ChannelH\x01R\x07\x63hannel\x88\x01\x01\x1a@\n\x05\x41sset\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x1a:\n\x03Run\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x1a\xeb\x02\n\x07\x43hannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x37\n\x04unit\x18\x03 \x01(\x0b\x32#.sift.data.v2.Metadata.Channel.UnitR\x04unit\x12\x43\n\nenum_types\x18\x04 \x03(\x0b\x32$.sift.common.type.v1.ChannelEnumTypeR\tenumTypes\x12Y\n\x12\x62it_field_elements\x18\x05 \x03(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementR\x10\x62itFieldElements\x1aO\n\x04Unit\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12.\n\x10\x61\x62\x62reviated_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0f\x61\x62\x62reviatedNameB\x06\n\x04_runB\n\n\x08_channel\"g\n\x0b\x44oubleValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x01\x42\x03\xe0\x41\x02R\x05value\"\x7f\n\x0c\x44oubleValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.DoubleValueB\x03\xe0\x41\x02R\x06values\"g\n\x0bStringValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x05value\"\x7f\n\x0cStringValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.StringValueB\x03\xe0\x41\x02R\x06values\"e\n\tEnumValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x05value\"{\n\nEnumValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x34\n\x06values\x18\x02 \x03(\x0b\x32\x17.sift.data.v2.EnumValueB\x03\xe0\x41\x02R\x06values\"i\n\rBitFieldValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x05value\"j\n\x15\x42itFieldElementValues\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x38\n\x06values\x18\x02 \x03(\x0b\x32\x1b.sift.data.v2.BitFieldValueB\x03\xe0\x41\x02R\x06values\"\x8b\x01\n\x0e\x42itFieldValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12@\n\x06values\x18\x02 \x03(\x0b\x32#.sift.data.v2.BitFieldElementValuesB\x03\xe0\x41\x02R\x06values\"e\n\tBoolValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\x05value\"{\n\nBoolValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x34\n\x06values\x18\x02 \x03(\x0b\x32\x17.sift.data.v2.BoolValueB\x03\xe0\x41\x02R\x06values\"f\n\nFloatValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x02\x42\x03\xe0\x41\x02R\x05value\"}\n\x0b\x46loatValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.FloatValueB\x03\xe0\x41\x02R\x06values\"f\n\nInt32Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x05value\"}\n\x0bInt32Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.Int32ValueB\x03\xe0\x41\x02R\x06values\"g\n\x0bUint32Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x05value\"\x7f\n\x0cUint32Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.Uint32ValueB\x03\xe0\x41\x02R\x06values\"f\n\nInt64Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02R\x05value\"}\n\x0bInt64Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.Int64ValueB\x03\xe0\x41\x02R\x06values\"g\n\x0bUint64Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x04\x42\x03\xe0\x41\x02R\x05value\"\x7f\n\x0cUint64Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.Uint64ValueB\x03\xe0\x41\x02R\x06values\"f\n\nBytesValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02R\x05value\"}\n\x0b\x42ytesValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.BytesValueB\x03\xe0\x41\x02R\x06values2\xba\x01\n\x0b\x44\x61taService\x12\x8e\x01\n\x07GetData\x12\x1c.sift.data.v2.GetDataRequest\x1a\x1d.sift.data.v2.GetDataResponse\"F\x92\x41,\x12\x07GetData\x1a\nQuery data*\x15\x44\x61taService_GetDataV2\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/data:\x01*\x1a\x1a\x92\x41\x17\x12\x15Service to query dataB\x82\x01\n\x10\x63om.sift.data.v2B\tDataProtoP\x01\xa2\x02\x03SDX\xaa\x02\x0cSift.Data.V2\xca\x02\x0cSift\\Data\\V2\xe2\x02\x18Sift\\Data\\V2\\GPBMetadata\xea\x02\x0eSift::Data::V2\x92\x41\x10\x12\x0e\n\x0c\x44\x61ta Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/data/v2/data.proto\x12\x0csift.data.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v1/calculated_channels.proto\x1a\x33sift/common/type/v1/channel_bit_field_element.proto\x1a+sift/common/type/v1/channel_data_type.proto\x1a+sift/common/type/v1/channel_enum_type.proto\x1a!sift/options/v1/safe_to_log.proto\"\x90\x02\n\x0eGetDataRequest\x12-\n\x07queries\x18\x01 \x03(\x0b\x32\x13.sift.data.v2.QueryR\x07queries\x12\x39\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\x12\x1b\n\tsample_ms\x18\x04 \x01(\rR\x08sampleMs\x12\x1b\n\tpage_size\x18\x05 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x06 \x01(\tR\tpageToken:\x04\x80\x97\"\x01\"\x9f\x01\n\x05Query\x12\x36\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x1a.sift.data.v2.ChannelQueryH\x00R\x07\x63hannel\x12U\n\x12\x63\x61lculated_channel\x18\x02 \x01(\x0b\x32$.sift.data.v2.CalculatedChannelQueryH\x00R\x11\x63\x61lculatedChannelB\x07\n\x05query\"T\n\x0c\x43hannelQuery\x12\x1d\n\nchannel_id\x18\x01 \x01(\tR\tchannelId\x12\x1a\n\x06run_id\x18\x02 \x01(\tH\x00R\x05runId\x88\x01\x01\x42\t\n\x07_run_id\"\xcd\x02\n\x16\x43\x61lculatedChannelQuery\x12$\n\x0b\x63hannel_key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nchannelKey\x12S\n\nexpression\x18\x02 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\nexpression\x12\x1a\n\x06run_id\x18\x03 \x01(\tH\x00R\x05runId\x88\x01\x01\x12\x44\n\x04mode\x18\x04 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeH\x01R\x04mode\x88\x01\x01\x12-\n\x10\x63ombine_run_data\x18\x05 \x01(\x08H\x02R\x0e\x63ombineRunData\x88\x01\x01\x42\t\n\x07_run_idB\x07\n\x05_modeB\x13\n\x11_combine_run_data\"h\n\x0fGetDataResponse\x12&\n\x0fnext_page_token\x18\x01 \x01(\tR\rnextPageToken\x12-\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x14.google.protobuf.AnyB\x03\xe0\x41\x02R\x04\x64\x61ta\"\xa1\x06\n\x08Metadata\x12\x46\n\tdata_type\x18\x01 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\"\n\nsampled_ms\x18\x02 \x01(\rB\x03\xe0\x41\x02R\tsampledMs\x12\x37\n\x05\x61sset\x18\x03 \x01(\x0b\x32\x1c.sift.data.v2.Metadata.AssetB\x03\xe0\x41\x02R\x05\x61sset\x12\x31\n\x03run\x18\x04 \x01(\x0b\x32\x1a.sift.data.v2.Metadata.RunH\x00R\x03run\x88\x01\x01\x12=\n\x07\x63hannel\x18\x05 \x01(\x0b\x32\x1e.sift.data.v2.Metadata.ChannelH\x01R\x07\x63hannel\x88\x01\x01\x1a@\n\x05\x41sset\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x1a:\n\x03Run\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x1a\xeb\x02\n\x07\x43hannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x37\n\x04unit\x18\x03 \x01(\x0b\x32#.sift.data.v2.Metadata.Channel.UnitR\x04unit\x12\x43\n\nenum_types\x18\x04 \x03(\x0b\x32$.sift.common.type.v1.ChannelEnumTypeR\tenumTypes\x12Y\n\x12\x62it_field_elements\x18\x05 \x03(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementR\x10\x62itFieldElements\x1aO\n\x04Unit\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12.\n\x10\x61\x62\x62reviated_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0f\x61\x62\x62reviatedNameB\x06\n\x04_runB\n\n\x08_channel\"g\n\x0b\x44oubleValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x01\x42\x03\xe0\x41\x02R\x05value\"\x7f\n\x0c\x44oubleValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.DoubleValueB\x03\xe0\x41\x02R\x06values\"g\n\x0bStringValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x05value\"\x7f\n\x0cStringValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.StringValueB\x03\xe0\x41\x02R\x06values\"e\n\tEnumValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x05value\"{\n\nEnumValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x34\n\x06values\x18\x02 \x03(\x0b\x32\x17.sift.data.v2.EnumValueB\x03\xe0\x41\x02R\x06values\"i\n\rBitFieldValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x05value\"j\n\x15\x42itFieldElementValues\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x38\n\x06values\x18\x02 \x03(\x0b\x32\x1b.sift.data.v2.BitFieldValueB\x03\xe0\x41\x02R\x06values\"\x8b\x01\n\x0e\x42itFieldValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12@\n\x06values\x18\x02 \x03(\x0b\x32#.sift.data.v2.BitFieldElementValuesB\x03\xe0\x41\x02R\x06values\"e\n\tBoolValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\x05value\"{\n\nBoolValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x34\n\x06values\x18\x02 \x03(\x0b\x32\x17.sift.data.v2.BoolValueB\x03\xe0\x41\x02R\x06values\"f\n\nFloatValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x02\x42\x03\xe0\x41\x02R\x05value\"}\n\x0b\x46loatValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.FloatValueB\x03\xe0\x41\x02R\x06values\"f\n\nInt32Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x05value\"}\n\x0bInt32Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.Int32ValueB\x03\xe0\x41\x02R\x06values\"g\n\x0bUint32Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x05value\"\x7f\n\x0cUint32Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.Uint32ValueB\x03\xe0\x41\x02R\x06values\"f\n\nInt64Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02R\x05value\"}\n\x0bInt64Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.Int64ValueB\x03\xe0\x41\x02R\x06values\"g\n\x0bUint64Value\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x04\x42\x03\xe0\x41\x02R\x05value\"\x7f\n\x0cUint64Values\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x36\n\x06values\x18\x02 \x03(\x0b\x32\x19.sift.data.v2.Uint64ValueB\x03\xe0\x41\x02R\x06values\"f\n\nBytesValue\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\x12\x19\n\x05value\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02R\x05value\"}\n\x0b\x42ytesValues\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x16.sift.data.v2.MetadataB\x03\xe0\x41\x02R\x08metadata\x12\x35\n\x06values\x18\x02 \x03(\x0b\x32\x18.sift.data.v2.BytesValueB\x03\xe0\x41\x02R\x06values2\xba\x01\n\x0b\x44\x61taService\x12\x8e\x01\n\x07GetData\x12\x1c.sift.data.v2.GetDataRequest\x1a\x1d.sift.data.v2.GetDataResponse\"F\x92\x41,\x12\x07GetData\x1a\nQuery data*\x15\x44\x61taService_GetDataV2\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/data:\x01*\x1a\x1a\x92\x41\x17\x12\x15Service to query dataB\x82\x01\n\x10\x63om.sift.data.v2B\tDataProtoP\x01\xa2\x02\x03SDX\xaa\x02\x0cSift.Data.V2\xca\x02\x0cSift\\Data\\V2\xe2\x02\x18Sift\\Data\\V2\\GPBMetadata\xea\x02\x0eSift::Data::V2\x92\x41\x10\x12\x0e\n\x0c\x44\x61ta Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,6 +32,8 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\020com.sift.data.v2B\tDataProtoP\001\242\002\003SDX\252\002\014Sift.Data.V2\312\002\014Sift\\Data\\V2\342\002\030Sift\\Data\\V2\\GPBMetadata\352\002\016Sift::Data::V2\222A\020\022\016\n\014Data Service' + _globals['_GETDATAREQUEST']._loaded_options = None + _globals['_GETDATAREQUEST']._serialized_options = b'\200\227\"\001' _globals['_CALCULATEDCHANNELQUERY'].fields_by_name['channel_key']._loaded_options = None _globals['_CALCULATEDCHANNELQUERY'].fields_by_name['channel_key']._serialized_options = b'\340A\002' _globals['_CALCULATEDCHANNELQUERY'].fields_by_name['expression']._loaded_options = None @@ -153,72 +156,72 @@ _globals['_DATASERVICE']._serialized_options = b'\222A\027\022\025Service to query data' _globals['_DATASERVICE'].methods_by_name['GetData']._loaded_options = None _globals['_DATASERVICE'].methods_by_name['GetData']._serialized_options = b'\222A,\022\007GetData\032\nQuery data*\025DataService_GetDataV2\202\323\344\223\002\021\"\014/api/v2/data:\001*' - _globals['_GETDATAREQUEST']._serialized_start=411 - _globals['_GETDATAREQUEST']._serialized_end=677 - _globals['_QUERY']._serialized_start=680 - _globals['_QUERY']._serialized_end=839 - _globals['_CHANNELQUERY']._serialized_start=841 - _globals['_CHANNELQUERY']._serialized_end=925 - _globals['_CALCULATEDCHANNELQUERY']._serialized_start=928 - _globals['_CALCULATEDCHANNELQUERY']._serialized_end=1193 - _globals['_GETDATARESPONSE']._serialized_start=1195 - _globals['_GETDATARESPONSE']._serialized_end=1299 - _globals['_METADATA']._serialized_start=1302 - _globals['_METADATA']._serialized_end=2103 - _globals['_METADATA_ASSET']._serialized_start=1593 - _globals['_METADATA_ASSET']._serialized_end=1657 - _globals['_METADATA_RUN']._serialized_start=1659 - _globals['_METADATA_RUN']._serialized_end=1717 - _globals['_METADATA_CHANNEL']._serialized_start=1720 - _globals['_METADATA_CHANNEL']._serialized_end=2083 - _globals['_METADATA_CHANNEL_UNIT']._serialized_start=2004 - _globals['_METADATA_CHANNEL_UNIT']._serialized_end=2083 - _globals['_DOUBLEVALUE']._serialized_start=2105 - _globals['_DOUBLEVALUE']._serialized_end=2208 - _globals['_DOUBLEVALUES']._serialized_start=2210 - _globals['_DOUBLEVALUES']._serialized_end=2337 - _globals['_STRINGVALUE']._serialized_start=2339 - _globals['_STRINGVALUE']._serialized_end=2442 - _globals['_STRINGVALUES']._serialized_start=2444 - _globals['_STRINGVALUES']._serialized_end=2571 - _globals['_ENUMVALUE']._serialized_start=2573 - _globals['_ENUMVALUE']._serialized_end=2674 - _globals['_ENUMVALUES']._serialized_start=2676 - _globals['_ENUMVALUES']._serialized_end=2799 - _globals['_BITFIELDVALUE']._serialized_start=2801 - _globals['_BITFIELDVALUE']._serialized_end=2906 - _globals['_BITFIELDELEMENTVALUES']._serialized_start=2908 - _globals['_BITFIELDELEMENTVALUES']._serialized_end=3014 - _globals['_BITFIELDVALUES']._serialized_start=3017 - _globals['_BITFIELDVALUES']._serialized_end=3156 - _globals['_BOOLVALUE']._serialized_start=3158 - _globals['_BOOLVALUE']._serialized_end=3259 - _globals['_BOOLVALUES']._serialized_start=3261 - _globals['_BOOLVALUES']._serialized_end=3384 - _globals['_FLOATVALUE']._serialized_start=3386 - _globals['_FLOATVALUE']._serialized_end=3488 - _globals['_FLOATVALUES']._serialized_start=3490 - _globals['_FLOATVALUES']._serialized_end=3615 - _globals['_INT32VALUE']._serialized_start=3617 - _globals['_INT32VALUE']._serialized_end=3719 - _globals['_INT32VALUES']._serialized_start=3721 - _globals['_INT32VALUES']._serialized_end=3846 - _globals['_UINT32VALUE']._serialized_start=3848 - _globals['_UINT32VALUE']._serialized_end=3951 - _globals['_UINT32VALUES']._serialized_start=3953 - _globals['_UINT32VALUES']._serialized_end=4080 - _globals['_INT64VALUE']._serialized_start=4082 - _globals['_INT64VALUE']._serialized_end=4184 - _globals['_INT64VALUES']._serialized_start=4186 - _globals['_INT64VALUES']._serialized_end=4311 - _globals['_UINT64VALUE']._serialized_start=4313 - _globals['_UINT64VALUE']._serialized_end=4416 - _globals['_UINT64VALUES']._serialized_start=4418 - _globals['_UINT64VALUES']._serialized_end=4545 - _globals['_BYTESVALUE']._serialized_start=4547 - _globals['_BYTESVALUE']._serialized_end=4649 - _globals['_BYTESVALUES']._serialized_start=4651 - _globals['_BYTESVALUES']._serialized_end=4776 - _globals['_DATASERVICE']._serialized_start=4779 - _globals['_DATASERVICE']._serialized_end=4965 + _globals['_GETDATAREQUEST']._serialized_start=446 + _globals['_GETDATAREQUEST']._serialized_end=718 + _globals['_QUERY']._serialized_start=721 + _globals['_QUERY']._serialized_end=880 + _globals['_CHANNELQUERY']._serialized_start=882 + _globals['_CHANNELQUERY']._serialized_end=966 + _globals['_CALCULATEDCHANNELQUERY']._serialized_start=969 + _globals['_CALCULATEDCHANNELQUERY']._serialized_end=1302 + _globals['_GETDATARESPONSE']._serialized_start=1304 + _globals['_GETDATARESPONSE']._serialized_end=1408 + _globals['_METADATA']._serialized_start=1411 + _globals['_METADATA']._serialized_end=2212 + _globals['_METADATA_ASSET']._serialized_start=1702 + _globals['_METADATA_ASSET']._serialized_end=1766 + _globals['_METADATA_RUN']._serialized_start=1768 + _globals['_METADATA_RUN']._serialized_end=1826 + _globals['_METADATA_CHANNEL']._serialized_start=1829 + _globals['_METADATA_CHANNEL']._serialized_end=2192 + _globals['_METADATA_CHANNEL_UNIT']._serialized_start=2113 + _globals['_METADATA_CHANNEL_UNIT']._serialized_end=2192 + _globals['_DOUBLEVALUE']._serialized_start=2214 + _globals['_DOUBLEVALUE']._serialized_end=2317 + _globals['_DOUBLEVALUES']._serialized_start=2319 + _globals['_DOUBLEVALUES']._serialized_end=2446 + _globals['_STRINGVALUE']._serialized_start=2448 + _globals['_STRINGVALUE']._serialized_end=2551 + _globals['_STRINGVALUES']._serialized_start=2553 + _globals['_STRINGVALUES']._serialized_end=2680 + _globals['_ENUMVALUE']._serialized_start=2682 + _globals['_ENUMVALUE']._serialized_end=2783 + _globals['_ENUMVALUES']._serialized_start=2785 + _globals['_ENUMVALUES']._serialized_end=2908 + _globals['_BITFIELDVALUE']._serialized_start=2910 + _globals['_BITFIELDVALUE']._serialized_end=3015 + _globals['_BITFIELDELEMENTVALUES']._serialized_start=3017 + _globals['_BITFIELDELEMENTVALUES']._serialized_end=3123 + _globals['_BITFIELDVALUES']._serialized_start=3126 + _globals['_BITFIELDVALUES']._serialized_end=3265 + _globals['_BOOLVALUE']._serialized_start=3267 + _globals['_BOOLVALUE']._serialized_end=3368 + _globals['_BOOLVALUES']._serialized_start=3370 + _globals['_BOOLVALUES']._serialized_end=3493 + _globals['_FLOATVALUE']._serialized_start=3495 + _globals['_FLOATVALUE']._serialized_end=3597 + _globals['_FLOATVALUES']._serialized_start=3599 + _globals['_FLOATVALUES']._serialized_end=3724 + _globals['_INT32VALUE']._serialized_start=3726 + _globals['_INT32VALUE']._serialized_end=3828 + _globals['_INT32VALUES']._serialized_start=3830 + _globals['_INT32VALUES']._serialized_end=3955 + _globals['_UINT32VALUE']._serialized_start=3957 + _globals['_UINT32VALUE']._serialized_end=4060 + _globals['_UINT32VALUES']._serialized_start=4062 + _globals['_UINT32VALUES']._serialized_end=4189 + _globals['_INT64VALUE']._serialized_start=4191 + _globals['_INT64VALUE']._serialized_end=4293 + _globals['_INT64VALUES']._serialized_start=4295 + _globals['_INT64VALUES']._serialized_end=4420 + _globals['_UINT64VALUE']._serialized_start=4422 + _globals['_UINT64VALUE']._serialized_end=4525 + _globals['_UINT64VALUES']._serialized_start=4527 + _globals['_UINT64VALUES']._serialized_end=4654 + _globals['_BYTESVALUE']._serialized_start=4656 + _globals['_BYTESVALUE']._serialized_end=4758 + _globals['_BYTESVALUES']._serialized_start=4760 + _globals['_BYTESVALUES']._serialized_end=4885 + _globals['_DATASERVICE']._serialized_start=4888 + _globals['_DATASERVICE']._serialized_end=5074 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/data/v2/data_pb2.pyi b/python/lib/sift/data/v2/data_pb2.pyi index ea10c3665..5f6062a2d 100644 --- a/python/lib/sift/data/v2/data_pb2.pyi +++ b/python/lib/sift/data/v2/data_pb2.pyi @@ -129,6 +129,7 @@ class CalculatedChannelQuery(google.protobuf.message.Message): EXPRESSION_FIELD_NUMBER: builtins.int RUN_ID_FIELD_NUMBER: builtins.int MODE_FIELD_NUMBER: builtins.int + COMBINE_RUN_DATA_FIELD_NUMBER: builtins.int channel_key: builtins.str run_id: builtins.str """Optional. @@ -138,6 +139,14 @@ class CalculatedChannelQuery(google.protobuf.message.Message): """ mode: sift.calculated_channels.v1.calculated_channels_pb2.ExpressionMode.ValueType """Optional. If unset, will default to EXPRESSION_MODE_CALCULATED_CHANNELS.""" + combine_run_data: builtins.bool + """Optional. If unset, will default to false. + If true, then requests that return data across multiple runs will be + combined into a single result. This will apply to queries without a run, + or when the requested run is an ad hoc run. + This is useful when you prefer to see all the data as a single time series, + instead of separated results by run. + """ @property def expression(self) -> sift.calculated_channels.v1.calculated_channels_pb2.ExpressionRequest: ... def __init__( @@ -147,9 +156,12 @@ class CalculatedChannelQuery(google.protobuf.message.Message): expression: sift.calculated_channels.v1.calculated_channels_pb2.ExpressionRequest | None = ..., run_id: builtins.str | None = ..., mode: sift.calculated_channels.v1.calculated_channels_pb2.ExpressionMode.ValueType | None = ..., + combine_run_data: builtins.bool | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_mode", b"_mode", "_run_id", b"_run_id", "expression", b"expression", "mode", b"mode", "run_id", b"run_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_mode", b"_mode", "_run_id", b"_run_id", "channel_key", b"channel_key", "expression", b"expression", "mode", b"mode", "run_id", b"run_id"]) -> None: ... + def HasField(self, field_name: typing.Literal["_combine_run_data", b"_combine_run_data", "_mode", b"_mode", "_run_id", b"_run_id", "combine_run_data", b"combine_run_data", "expression", b"expression", "mode", b"mode", "run_id", b"run_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_combine_run_data", b"_combine_run_data", "_mode", b"_mode", "_run_id", b"_run_id", "channel_key", b"channel_key", "combine_run_data", b"combine_run_data", "expression", b"expression", "mode", b"mode", "run_id", b"run_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_combine_run_data", b"_combine_run_data"]) -> typing.Literal["combine_run_data"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_mode", b"_mode"]) -> typing.Literal["mode"] | None: ... @typing.overload diff --git a/python/lib/sift/data_imports/v2/data_imports_pb2.py b/python/lib/sift/data_imports/v2/data_imports_pb2.py index 9cce3c8ed..a9a4a3564 100644 --- a/python/lib/sift/data_imports/v2/data_imports_pb2.py +++ b/python/lib/sift/data_imports/v2/data_imports_pb2.py @@ -19,7 +19,7 @@ from sift.common.type.v1 import channel_config_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__config__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'sift/data_imports/v2/data_imports.proto\x12\x14sift.data_imports.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a(sift/common/type/v1/channel_config.proto\"\xdd\x02\n\x1e\x43reateDataImportFromUrlRequest\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\x43\n\ncsv_config\x18\x02 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\"G\n\x1f\x43reateDataImportFromUrlResponse\x12$\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tR\x0c\x64\x61taImportId\"A\n\x14GetDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"Z\n\x15GetDataImportResponse\x12\x41\n\x0b\x64\x61ta_import\x18\x01 \x01(\x0b\x32 .sift.data_imports.v2.DataImportR\ndataImport\"\xc9\x02\n!CreateDataImportFromUploadRequest\x12\x43\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\"i\n\"CreateDataImportFromUploadResponse\x12\x1d\n\nupload_url\x18\x01 \x01(\tR\tuploadUrl\x12$\n\x0e\x64\x61ta_import_id\x18\x02 \x01(\tR\x0c\x64\x61taImportId\"\xc8\x03\n\tCsvConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12$\n\x0e\x66irst_data_row\x18\x04 \x01(\rR\x0c\x66irstDataRow\x12I\n\x0btime_column\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.CsvTimeColumnH\x00R\ntimeColumn\x88\x01\x01\x12S\n\x0c\x64\x61ta_columns\x18\x06 \x03(\x0b\x32\x30.sift.data_imports.v2.CsvConfig.DataColumnsEntryR\x0b\x64\x61taColumns\x12#\n\x08num_rows\x18\x07 \x01(\x04\x42\x03\xe0\x41\x01H\x01R\x07numRows\x88\x01\x01\x1a\x62\n\x10\x44\x61taColumnsEntry\x12\x10\n\x03key\x18\x01 \x01(\rR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x05value:\x02\x38\x01\x42\x0e\n\x0c_time_columnB\x0b\n\t_num_rows\"\xd7\x01\n\rCsvTimeColumn\x12#\n\rcolumn_number\x18\x01 \x01(\rR\x0c\x63olumnNumber\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"`\n\x13\x44\x65tectConfigRequest\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32!.sift.data_imports.v2.DataTypeKeyR\x04type\"\xa2\x01\n\x14\x44\x65tectConfigResponse\x12>\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigR\tcsvConfig\x12J\n\x0eparquet_config\x18\x02 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigR\rparquetConfig\"i\n\nCh10Config\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12!\n\x0cscale_values\x18\x03 \x01(\x08R\x0bscaleValues\"\xc2\x01\n\nTDMSConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12J\n\x13start_time_override\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x11startTimeOverride\x12 \n\tfile_size\x18\x04 \x01(\x04H\x00R\x08\x66ileSize\x88\x01\x01\x42\x0c\n\n_file_size\"\xca\x01\n\x11ParquetTimeColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"r\n\x11ParquetDataColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12I\n\x0e\x63hannel_config\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\"\xb0\x01\n\x18ParquetFlatDatasetConfig\x12H\n\x0btime_column\x18\x01 \x01(\x0b\x32\'.sift.data_imports.v2.ParquetTimeColumnR\ntimeColumn\x12J\n\x0c\x64\x61ta_columns\x18\x02 \x03(\x0b\x32\'.sift.data_imports.v2.ParquetDataColumnR\x0b\x64\x61taColumns\"\xf9\x02\n\rParquetConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12S\n\x0c\x66lat_dataset\x18\x04 \x01(\x0b\x32..sift.data_imports.v2.ParquetFlatDatasetConfigH\x00R\x0b\x66latDataset\x12#\n\rfooter_offset\x18\x05 \x01(\x04R\x0c\x66ooterOffset\x12#\n\rfooter_length\x18\x06 \x01(\rR\x0c\x66ooterLength\x12n\n\x19\x63omplex_types_import_mode\x18\x07 \x01(\x0e\x32\x33.sift.data_imports.v2.ParquetComplexTypesImportModeR\x16\x63omplexTypesImportModeB\x08\n\x06\x63onfig\"\xc4\x07\n\nDataImport\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\x12\x1d\n\nsource_url\x18\x03 \x01(\tR\tsourceUrl\x12\x43\n\x06status\x18\x04 \x01(\x0e\x32&.sift.data_imports.v2.DataImportStatusB\x03\xe0\x41\x02R\x06status\x12#\n\rerror_message\x18\x05 \x01(\tR\x0c\x65rrorMessage\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x43\n\ncsv_config\x18\x06 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\t \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\n \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x10 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x1f\n\x06run_id\x18\x0b \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12%\n\treport_id\x18\x0c \x01(\tB\x03\xe0\x41\x01H\x01R\x08reportId\x88\x01\x01\x12#\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x02R\x07\x61ssetId\x88\x01\x01\x12L\n\x0f\x64\x61ta_start_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\rdataStartTime\x88\x01\x01\x12J\n\x0e\x64\x61ta_stop_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x04R\x0c\x64\x61taStopTime\x88\x01\x01\x42\t\n\x07_run_idB\x0c\n\n_report_idB\x0b\n\t_asset_idB\x12\n\x10_data_start_timeB\x11\n\x0f_data_stop_time\"\x9b\x01\n\x16ListDataImportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x86\x01\n\x17ListDataImportsResponse\x12\x43\n\x0c\x64\x61ta_imports\x18\x01 \x03(\x0b\x32 .sift.data_imports.v2.DataImportR\x0b\x64\x61taImports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"C\n\x16RetryDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"\x19\n\x17RetryDataImportResponse*\xf0\x03\n\nTimeFormat\x12\x1b\n\x17TIME_FORMAT_UNSPECIFIED\x10\x00\x12$\n TIME_FORMAT_RELATIVE_NANOSECONDS\x10\x01\x12%\n!TIME_FORMAT_RELATIVE_MICROSECONDS\x10\x02\x12%\n!TIME_FORMAT_RELATIVE_MILLISECONDS\x10\x03\x12 \n\x1cTIME_FORMAT_RELATIVE_SECONDS\x10\x04\x12 \n\x1cTIME_FORMAT_RELATIVE_MINUTES\x10\x05\x12\x1e\n\x1aTIME_FORMAT_RELATIVE_HOURS\x10\x06\x12 \n\x1cTIME_FORMAT_ABSOLUTE_RFC3339\x10\n\x12!\n\x1dTIME_FORMAT_ABSOLUTE_DATETIME\x10\x0b\x12%\n!TIME_FORMAT_ABSOLUTE_UNIX_SECONDS\x10\x0c\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MILLISECONDS\x10\r\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MICROSECONDS\x10\x0e\x12)\n%TIME_FORMAT_ABSOLUTE_UNIX_NANOSECONDS\x10\x0f*\x9e\x01\n\x0b\x44\x61taTypeKey\x12!\n\x19\x44\x41TA_TYPE_KEY_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\x11\x44\x41TA_TYPE_KEY_CSV\x10\x01\x12\x16\n\x12\x44\x41TA_TYPE_KEY_TDMS\x10\x02\x12\x16\n\x12\x44\x41TA_TYPE_KEY_CH10\x10\x03\x12%\n!DATA_TYPE_KEY_PARQUET_FLATDATASET\x10\x04*\x8b\x02\n\x1dParquetComplexTypesImportMode\x12\x35\n-PARQUET_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_IGNORE\x10\x01\x12*\n&PARQUET_COMPLEX_TYPES_IMPORT_MODE_BOTH\x10\x02\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_STRING\x10\x03\x12+\n\'PARQUET_COMPLEX_TYPES_IMPORT_MODE_BYTES\x10\x04*\xbf\x01\n\x10\x44\x61taImportStatus\x12&\n\x1e\x44\x41TA_IMPORT_STATUS_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1e\n\x1a\x44\x41TA_IMPORT_STATUS_PENDING\x10\x01\x12\"\n\x1e\x44\x41TA_IMPORT_STATUS_IN_PROGRESS\x10\x02\x12 \n\x1c\x44\x41TA_IMPORT_STATUS_SUCCEEDED\x10\x03\x12\x1d\n\x19\x44\x41TA_IMPORT_STATUS_FAILED\x10\x04\x32\x92\x0c\n\x11\x44\x61taImportService\x12\x98\x02\n\x17\x43reateDataImportFromUrl\x12\x34.sift.data_imports.v2.CreateDataImportFromUrlRequest\x1a\x35.sift.data_imports.v2.CreateDataImportFromUrlResponse\"\x8f\x01\x92\x41i\x12\x17\x43reateDataImportFromUrl\x1a!Creates a data import from a url.*+DataImportService_CreateDataImportFromUrlV2\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v2/data-imports:url:\x01*\x12\xb2\x02\n\x1a\x43reateDataImportFromUpload\x12\x37.sift.data_imports.v2.CreateDataImportFromUploadRequest\x1a\x38.sift.data_imports.v2.CreateDataImportFromUploadResponse\"\xa0\x01\x92\x41w\x12\x1a\x43reateDataImportFromUpload\x1a)Creates a data import from a file upload.*.DataImportService_CreateDataImportFromUploadV2\x82\xd3\xe4\x93\x02 \"\x1b/api/v2/data-imports:upload:\x01*\x12\xef\x01\n\x0c\x44\x65tectConfig\x12).sift.data_imports.v2.DetectConfigRequest\x1a*.sift.data_imports.v2.DetectConfigResponse\"\x87\x01\x92\x41W\x12\x0c\x44\x65tectConfig\x1a%Detects the config for a data import.* DataImportService_DetectConfigV2\x82\xd3\xe4\x93\x02\'\"\"/api/v2/data-imports:detect-config:\x01*\x12\xde\x01\n\x0fListDataImports\x12,.sift.data_imports.v2.ListDataImportsRequest\x1a-.sift.data_imports.v2.ListDataImportsResponse\"n\x92\x41O\x12\x0fListDataImports\x1a\x17Lists all data imports.*#DataImportService_ListDataImportsV2\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v2/data-imports\x12\xf5\x01\n\x0fRetryDataImport\x12,.sift.data_imports.v2.RetryDataImportRequest\x1a-.sift.data_imports.v2.RetryDataImportResponse\"\x84\x01\x92\x41N\x12\x0fRetryDataImport\x1a\x16Retries a data import.*#DataImportService_RetryDataImportV2\x82\xd3\xe4\x93\x02-\"+/api/v2/data-imports/{data_import_id}:retry\x12\xe1\x01\n\rGetDataImport\x12*.sift.data_imports.v2.GetDataImportRequest\x1a+.sift.data_imports.v2.GetDataImportResponse\"w\x92\x41G\x12\rGetDataImport\x1a\x13Gets a data import.*!DataImportService_GetDataImportV2\x82\xd3\xe4\x93\x02\'\x12%/api/v2/data-imports/{data_import_id}B\xb4\x01\n\x18\x63om.sift.data_imports.v2B\x10\x44\x61taImportsProtoP\x01\xa2\x02\x03SDX\xaa\x02\x13Sift.DataImports.V2\xca\x02\x13Sift\\DataImports\\V2\xe2\x02\x1fSift\\DataImports\\V2\\GPBMetadata\xea\x02\x15Sift::DataImports::V2\x92\x41\x17\x12\x15\n\x13\x44\x61ta import serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'sift/data_imports/v2/data_imports.proto\x12\x14sift.data_imports.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a(sift/common/type/v1/channel_config.proto\"\xdd\x02\n\x1e\x43reateDataImportFromUrlRequest\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\x43\n\ncsv_config\x18\x02 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\"G\n\x1f\x43reateDataImportFromUrlResponse\x12$\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tR\x0c\x64\x61taImportId\"A\n\x14GetDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"Z\n\x15GetDataImportResponse\x12\x41\n\x0b\x64\x61ta_import\x18\x01 \x01(\x0b\x32 .sift.data_imports.v2.DataImportR\ndataImport\"\xc9\x02\n!CreateDataImportFromUploadRequest\x12\x43\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\"i\n\"CreateDataImportFromUploadResponse\x12\x1d\n\nupload_url\x18\x01 \x01(\tR\tuploadUrl\x12$\n\x0e\x64\x61ta_import_id\x18\x02 \x01(\tR\x0c\x64\x61taImportId\"\xc8\x03\n\tCsvConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12$\n\x0e\x66irst_data_row\x18\x04 \x01(\rR\x0c\x66irstDataRow\x12I\n\x0btime_column\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.CsvTimeColumnH\x00R\ntimeColumn\x88\x01\x01\x12S\n\x0c\x64\x61ta_columns\x18\x06 \x03(\x0b\x32\x30.sift.data_imports.v2.CsvConfig.DataColumnsEntryR\x0b\x64\x61taColumns\x12#\n\x08num_rows\x18\x07 \x01(\x04\x42\x03\xe0\x41\x01H\x01R\x07numRows\x88\x01\x01\x1a\x62\n\x10\x44\x61taColumnsEntry\x12\x10\n\x03key\x18\x01 \x01(\rR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x05value:\x02\x38\x01\x42\x0e\n\x0c_time_columnB\x0b\n\t_num_rows\"\xd7\x01\n\rCsvTimeColumn\x12#\n\rcolumn_number\x18\x01 \x01(\rR\x0c\x63olumnNumber\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"`\n\x13\x44\x65tectConfigRequest\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32!.sift.data_imports.v2.DataTypeKeyR\x04type\"\xa2\x01\n\x14\x44\x65tectConfigResponse\x12>\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigR\tcsvConfig\x12J\n\x0eparquet_config\x18\x02 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigR\rparquetConfig\"i\n\nCh10Config\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12!\n\x0cscale_values\x18\x03 \x01(\x08R\x0bscaleValues\"\xd9\x01\n\nTDMSConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12J\n\x13start_time_override\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x11startTimeOverride\x12 \n\tfile_size\x18\x04 \x01(\x04H\x00R\x08\x66ileSize\x88\x01\x01\x12\x15\n\x06run_id\x18\x05 \x01(\tR\x05runIdB\x0c\n\n_file_size\"\xca\x01\n\x11ParquetTimeColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"r\n\x11ParquetDataColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12I\n\x0e\x63hannel_config\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\"\xb0\x01\n\x18ParquetFlatDatasetConfig\x12H\n\x0btime_column\x18\x01 \x01(\x0b\x32\'.sift.data_imports.v2.ParquetTimeColumnR\ntimeColumn\x12J\n\x0c\x64\x61ta_columns\x18\x02 \x03(\x0b\x32\'.sift.data_imports.v2.ParquetDataColumnR\x0b\x64\x61taColumns\"\xf9\x02\n\rParquetConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12S\n\x0c\x66lat_dataset\x18\x04 \x01(\x0b\x32..sift.data_imports.v2.ParquetFlatDatasetConfigH\x00R\x0b\x66latDataset\x12#\n\rfooter_offset\x18\x05 \x01(\x04R\x0c\x66ooterOffset\x12#\n\rfooter_length\x18\x06 \x01(\rR\x0c\x66ooterLength\x12n\n\x19\x63omplex_types_import_mode\x18\x07 \x01(\x0e\x32\x33.sift.data_imports.v2.ParquetComplexTypesImportModeR\x16\x63omplexTypesImportModeB\x08\n\x06\x63onfig\"\xc4\x07\n\nDataImport\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\x12\x1d\n\nsource_url\x18\x03 \x01(\tR\tsourceUrl\x12\x43\n\x06status\x18\x04 \x01(\x0e\x32&.sift.data_imports.v2.DataImportStatusB\x03\xe0\x41\x02R\x06status\x12#\n\rerror_message\x18\x05 \x01(\tR\x0c\x65rrorMessage\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x43\n\ncsv_config\x18\x06 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\t \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\n \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x10 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x1f\n\x06run_id\x18\x0b \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12%\n\treport_id\x18\x0c \x01(\tB\x03\xe0\x41\x01H\x01R\x08reportId\x88\x01\x01\x12#\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x02R\x07\x61ssetId\x88\x01\x01\x12L\n\x0f\x64\x61ta_start_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\rdataStartTime\x88\x01\x01\x12J\n\x0e\x64\x61ta_stop_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x04R\x0c\x64\x61taStopTime\x88\x01\x01\x42\t\n\x07_run_idB\x0c\n\n_report_idB\x0b\n\t_asset_idB\x12\n\x10_data_start_timeB\x11\n\x0f_data_stop_time\"\x9b\x01\n\x16ListDataImportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x86\x01\n\x17ListDataImportsResponse\x12\x43\n\x0c\x64\x61ta_imports\x18\x01 \x03(\x0b\x32 .sift.data_imports.v2.DataImportR\x0b\x64\x61taImports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"C\n\x16RetryDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"\x19\n\x17RetryDataImportResponse*\xf0\x03\n\nTimeFormat\x12\x1b\n\x17TIME_FORMAT_UNSPECIFIED\x10\x00\x12$\n TIME_FORMAT_RELATIVE_NANOSECONDS\x10\x01\x12%\n!TIME_FORMAT_RELATIVE_MICROSECONDS\x10\x02\x12%\n!TIME_FORMAT_RELATIVE_MILLISECONDS\x10\x03\x12 \n\x1cTIME_FORMAT_RELATIVE_SECONDS\x10\x04\x12 \n\x1cTIME_FORMAT_RELATIVE_MINUTES\x10\x05\x12\x1e\n\x1aTIME_FORMAT_RELATIVE_HOURS\x10\x06\x12 \n\x1cTIME_FORMAT_ABSOLUTE_RFC3339\x10\n\x12!\n\x1dTIME_FORMAT_ABSOLUTE_DATETIME\x10\x0b\x12%\n!TIME_FORMAT_ABSOLUTE_UNIX_SECONDS\x10\x0c\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MILLISECONDS\x10\r\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MICROSECONDS\x10\x0e\x12)\n%TIME_FORMAT_ABSOLUTE_UNIX_NANOSECONDS\x10\x0f*\x9e\x01\n\x0b\x44\x61taTypeKey\x12!\n\x19\x44\x41TA_TYPE_KEY_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\x11\x44\x41TA_TYPE_KEY_CSV\x10\x01\x12\x16\n\x12\x44\x41TA_TYPE_KEY_TDMS\x10\x02\x12\x16\n\x12\x44\x41TA_TYPE_KEY_CH10\x10\x03\x12%\n!DATA_TYPE_KEY_PARQUET_FLATDATASET\x10\x04*\x8b\x02\n\x1dParquetComplexTypesImportMode\x12\x35\n-PARQUET_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_IGNORE\x10\x01\x12*\n&PARQUET_COMPLEX_TYPES_IMPORT_MODE_BOTH\x10\x02\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_STRING\x10\x03\x12+\n\'PARQUET_COMPLEX_TYPES_IMPORT_MODE_BYTES\x10\x04*\xbf\x01\n\x10\x44\x61taImportStatus\x12&\n\x1e\x44\x41TA_IMPORT_STATUS_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1e\n\x1a\x44\x41TA_IMPORT_STATUS_PENDING\x10\x01\x12\"\n\x1e\x44\x41TA_IMPORT_STATUS_IN_PROGRESS\x10\x02\x12 \n\x1c\x44\x41TA_IMPORT_STATUS_SUCCEEDED\x10\x03\x12\x1d\n\x19\x44\x41TA_IMPORT_STATUS_FAILED\x10\x04\x32\x92\x0c\n\x11\x44\x61taImportService\x12\x98\x02\n\x17\x43reateDataImportFromUrl\x12\x34.sift.data_imports.v2.CreateDataImportFromUrlRequest\x1a\x35.sift.data_imports.v2.CreateDataImportFromUrlResponse\"\x8f\x01\x92\x41i\x12\x17\x43reateDataImportFromUrl\x1a!Creates a data import from a url.*+DataImportService_CreateDataImportFromUrlV2\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v2/data-imports:url:\x01*\x12\xb2\x02\n\x1a\x43reateDataImportFromUpload\x12\x37.sift.data_imports.v2.CreateDataImportFromUploadRequest\x1a\x38.sift.data_imports.v2.CreateDataImportFromUploadResponse\"\xa0\x01\x92\x41w\x12\x1a\x43reateDataImportFromUpload\x1a)Creates a data import from a file upload.*.DataImportService_CreateDataImportFromUploadV2\x82\xd3\xe4\x93\x02 \"\x1b/api/v2/data-imports:upload:\x01*\x12\xef\x01\n\x0c\x44\x65tectConfig\x12).sift.data_imports.v2.DetectConfigRequest\x1a*.sift.data_imports.v2.DetectConfigResponse\"\x87\x01\x92\x41W\x12\x0c\x44\x65tectConfig\x1a%Detects the config for a data import.* DataImportService_DetectConfigV2\x82\xd3\xe4\x93\x02\'\"\"/api/v2/data-imports:detect-config:\x01*\x12\xde\x01\n\x0fListDataImports\x12,.sift.data_imports.v2.ListDataImportsRequest\x1a-.sift.data_imports.v2.ListDataImportsResponse\"n\x92\x41O\x12\x0fListDataImports\x1a\x17Lists all data imports.*#DataImportService_ListDataImportsV2\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v2/data-imports\x12\xf5\x01\n\x0fRetryDataImport\x12,.sift.data_imports.v2.RetryDataImportRequest\x1a-.sift.data_imports.v2.RetryDataImportResponse\"\x84\x01\x92\x41N\x12\x0fRetryDataImport\x1a\x16Retries a data import.*#DataImportService_RetryDataImportV2\x82\xd3\xe4\x93\x02-\"+/api/v2/data-imports/{data_import_id}:retry\x12\xe1\x01\n\rGetDataImport\x12*.sift.data_imports.v2.GetDataImportRequest\x1a+.sift.data_imports.v2.GetDataImportResponse\"w\x92\x41G\x12\rGetDataImport\x1a\x13Gets a data import.*!DataImportService_GetDataImportV2\x82\xd3\xe4\x93\x02\'\x12%/api/v2/data-imports/{data_import_id}B\xb4\x01\n\x18\x63om.sift.data_imports.v2B\x10\x44\x61taImportsProtoP\x01\xa2\x02\x03SDX\xaa\x02\x13Sift.DataImports.V2\xca\x02\x13Sift\\DataImports\\V2\xe2\x02\x1fSift\\DataImports\\V2\\GPBMetadata\xea\x02\x15Sift::DataImports::V2\x92\x41\x17\x12\x15\n\x13\x44\x61ta import serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -105,14 +105,14 @@ _globals['_DATAIMPORTSERVICE'].methods_by_name['RetryDataImport']._serialized_options = b'\222AN\022\017RetryDataImport\032\026Retries a data import.*#DataImportService_RetryDataImportV2\202\323\344\223\002-\"+/api/v2/data-imports/{data_import_id}:retry' _globals['_DATAIMPORTSERVICE'].methods_by_name['GetDataImport']._loaded_options = None _globals['_DATAIMPORTSERVICE'].methods_by_name['GetDataImport']._serialized_options = b'\222AG\022\rGetDataImport\032\023Gets a data import.*!DataImportService_GetDataImportV2\202\323\344\223\002\'\022%/api/v2/data-imports/{data_import_id}' - _globals['_TIMEFORMAT']._serialized_start=4757 - _globals['_TIMEFORMAT']._serialized_end=5253 - _globals['_DATATYPEKEY']._serialized_start=5256 - _globals['_DATATYPEKEY']._serialized_end=5414 - _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_start=5417 - _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_end=5684 - _globals['_DATAIMPORTSTATUS']._serialized_start=5687 - _globals['_DATAIMPORTSTATUS']._serialized_end=5878 + _globals['_TIMEFORMAT']._serialized_start=4780 + _globals['_TIMEFORMAT']._serialized_end=5276 + _globals['_DATATYPEKEY']._serialized_start=5279 + _globals['_DATATYPEKEY']._serialized_end=5437 + _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_start=5440 + _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_end=5707 + _globals['_DATAIMPORTSTATUS']._serialized_start=5710 + _globals['_DATAIMPORTSTATUS']._serialized_end=5901 _globals['_CREATEDATAIMPORTFROMURLREQUEST']._serialized_start=252 _globals['_CREATEDATAIMPORTFROMURLREQUEST']._serialized_end=601 _globals['_CREATEDATAIMPORTFROMURLRESPONSE']._serialized_start=603 @@ -138,25 +138,25 @@ _globals['_CH10CONFIG']._serialized_start=2214 _globals['_CH10CONFIG']._serialized_end=2319 _globals['_TDMSCONFIG']._serialized_start=2322 - _globals['_TDMSCONFIG']._serialized_end=2516 - _globals['_PARQUETTIMECOLUMN']._serialized_start=2519 - _globals['_PARQUETTIMECOLUMN']._serialized_end=2721 - _globals['_PARQUETDATACOLUMN']._serialized_start=2723 - _globals['_PARQUETDATACOLUMN']._serialized_end=2837 - _globals['_PARQUETFLATDATASETCONFIG']._serialized_start=2840 - _globals['_PARQUETFLATDATASETCONFIG']._serialized_end=3016 - _globals['_PARQUETCONFIG']._serialized_start=3019 - _globals['_PARQUETCONFIG']._serialized_end=3396 - _globals['_DATAIMPORT']._serialized_start=3399 - _globals['_DATAIMPORT']._serialized_end=4363 - _globals['_LISTDATAIMPORTSREQUEST']._serialized_start=4366 - _globals['_LISTDATAIMPORTSREQUEST']._serialized_end=4521 - _globals['_LISTDATAIMPORTSRESPONSE']._serialized_start=4524 - _globals['_LISTDATAIMPORTSRESPONSE']._serialized_end=4658 - _globals['_RETRYDATAIMPORTREQUEST']._serialized_start=4660 - _globals['_RETRYDATAIMPORTREQUEST']._serialized_end=4727 - _globals['_RETRYDATAIMPORTRESPONSE']._serialized_start=4729 - _globals['_RETRYDATAIMPORTRESPONSE']._serialized_end=4754 - _globals['_DATAIMPORTSERVICE']._serialized_start=5881 - _globals['_DATAIMPORTSERVICE']._serialized_end=7435 + _globals['_TDMSCONFIG']._serialized_end=2539 + _globals['_PARQUETTIMECOLUMN']._serialized_start=2542 + _globals['_PARQUETTIMECOLUMN']._serialized_end=2744 + _globals['_PARQUETDATACOLUMN']._serialized_start=2746 + _globals['_PARQUETDATACOLUMN']._serialized_end=2860 + _globals['_PARQUETFLATDATASETCONFIG']._serialized_start=2863 + _globals['_PARQUETFLATDATASETCONFIG']._serialized_end=3039 + _globals['_PARQUETCONFIG']._serialized_start=3042 + _globals['_PARQUETCONFIG']._serialized_end=3419 + _globals['_DATAIMPORT']._serialized_start=3422 + _globals['_DATAIMPORT']._serialized_end=4386 + _globals['_LISTDATAIMPORTSREQUEST']._serialized_start=4389 + _globals['_LISTDATAIMPORTSREQUEST']._serialized_end=4544 + _globals['_LISTDATAIMPORTSRESPONSE']._serialized_start=4547 + _globals['_LISTDATAIMPORTSRESPONSE']._serialized_end=4681 + _globals['_RETRYDATAIMPORTREQUEST']._serialized_start=4683 + _globals['_RETRYDATAIMPORTREQUEST']._serialized_end=4750 + _globals['_RETRYDATAIMPORTRESPONSE']._serialized_start=4752 + _globals['_RETRYDATAIMPORTRESPONSE']._serialized_end=4777 + _globals['_DATAIMPORTSERVICE']._serialized_start=5904 + _globals['_DATAIMPORTSERVICE']._serialized_end=7458 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/data_imports/v2/data_imports_pb2.pyi b/python/lib/sift/data_imports/v2/data_imports_pb2.pyi index 27a88b8e7..bbc9189dd 100644 --- a/python/lib/sift/data_imports/v2/data_imports_pb2.pyi +++ b/python/lib/sift/data_imports/v2/data_imports_pb2.pyi @@ -416,12 +416,15 @@ class TDMSConfig(google.protobuf.message.Message): RUN_NAME_FIELD_NUMBER: builtins.int START_TIME_OVERRIDE_FIELD_NUMBER: builtins.int FILE_SIZE_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int asset_name: builtins.str run_name: builtins.str file_size: builtins.int """The file size in bytes. If the file has truncated chunks, this will be required to pass validation. """ + run_id: builtins.str + """The id of the run to add this data to. If set, `run_name` is ignored.""" @property def start_time_override(self) -> google.protobuf.timestamp_pb2.Timestamp: """Override the wf_start_time metadata field for all channels. @@ -435,9 +438,10 @@ class TDMSConfig(google.protobuf.message.Message): run_name: builtins.str = ..., start_time_override: google.protobuf.timestamp_pb2.Timestamp | None = ..., file_size: builtins.int | None = ..., + run_id: builtins.str = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_file_size", b"_file_size", "file_size", b"file_size", "start_time_override", b"start_time_override"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_file_size", b"_file_size", "asset_name", b"asset_name", "file_size", b"file_size", "run_name", b"run_name", "start_time_override", b"start_time_override"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_file_size", b"_file_size", "asset_name", b"asset_name", "file_size", b"file_size", "run_id", b"run_id", "run_name", b"run_name", "start_time_override", b"start_time_override"]) -> None: ... def WhichOneof(self, oneof_group: typing.Literal["_file_size", b"_file_size"]) -> typing.Literal["file_size"] | None: ... global___TDMSConfig = TDMSConfig diff --git a/python/lib/sift/dlq_errors/v2/dlq_errors_pb2.pyi b/python/lib/sift/dlq_errors/v2/dlq_errors_pb2.pyi index 5d2d3ef3b..a33a9371e 100644 --- a/python/lib/sift/dlq_errors/v2/dlq_errors_pb2.pyi +++ b/python/lib/sift/dlq_errors/v2/dlq_errors_pb2.pyi @@ -30,7 +30,6 @@ class ListDlqErrorsRequest(google.protobuf.message.Message): page_token: builtins.str """A page token, received from a previous `ListDlqErrors` call. Provide this to retrieve the subsequent page. - When paginating, all other parameters provided to `ListDlqErrors` must match the call that provided the page token. """ diff --git a/python/lib/sift/external_sync/__init__.py b/python/lib/sift/external_sync/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/external_sync/v1/__init__.py b/python/lib/sift/external_sync/v1/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/external_sync/v1/external_sync_pb2.py b/python/lib/sift/external_sync/v1/external_sync_pb2.py new file mode 100644 index 000000000..51add8394 --- /dev/null +++ b/python/lib/sift/external_sync/v1/external_sync_pb2.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sift/external_sync/v1/external_sync.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 +from sift.common.type.v1 import user_pb2 as sift_dot_common_dot_type_dot_v1_dot_user__pb2 +from sift.user_groups.v2 import user_groups_pb2 as sift_dot_user__groups_dot_v2_dot_user__groups__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)sift/external_sync/v1/external_sync.proto\x12\x15sift.external_sync.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1esift/common/type/v1/user.proto\x1a%sift/user_groups/v2/user_groups.proto\"\xd3\x04\n\x0c\x45xternalSync\x12,\n\x0forganization_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12W\n\x15most_recent_sync_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\x12mostRecentSyncDate\x88\x01\x01\x12\x45\n\x1bmost_recent_sync_by_user_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x01R\x16mostRecentSyncByUserId\x88\x01\x01\x12+\n\x0fscim_server_url\x18\x04 \x01(\tB\x03\xe0\x41\x02R\rscimServerUrl\x12R\n\x12token_created_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x02R\x10tokenCreatedDate\x88\x01\x01\x12\x39\n\x16token_lifetime_seconds\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x14tokenLifetimeSeconds\x12G\n\x1cmost_recent_token_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x03R\x17mostRecentTokenByUserId\x88\x01\x01\x42\x18\n\x16_most_recent_sync_dateB\x1e\n\x1c_most_recent_sync_by_user_idB\x15\n\x13_token_created_dateB\x1f\n\x1d_most_recent_token_by_user_id\"\xd9\x01\n\x11\x45xternalSyncToken\x12\x1e\n\x08token_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07tokenId\x12.\n\x10lifetime_seconds\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x0flifetimeSeconds\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\"\x19\n\x17SyncOrganizationRequest\"\xad\x04\n\x18SyncOrganizationResponse\x12M\n\rexternal_sync\x18\x01 \x01(\x0b\x32#.sift.external_sync.v1.ExternalSyncB\x03\xe0\x41\x02R\x0c\x65xternalSync\x12\x33\n\x13\x65xisting_user_count\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x11\x65xistingUserCount\x12G\n\x1e\x61\x64\x64\x65\x64_to_organization_user_ids\x18\x03 \x03(\tB\x03\xe0\x41\x02R\x1a\x61\x64\x64\x65\x64ToOrganizationUserIds\x12\x43\n\rcreated_users\x18\x04 \x03(\x0b\x32\x19.sift.common.type.v1.UserB\x03\xe0\x41\x02R\x0c\x63reatedUsers\x12\x35\n\x14\x64\x65\x61\x63tivated_user_ids\x18\x05 \x03(\tB\x03\xe0\x41\x02R\x12\x64\x65\x61\x63tivatedUserIds\x12\x35\n\x14\x65xisting_group_count\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x12\x65xistingGroupCount\x12S\n\x13\x63reated_user_groups\x18\x07 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\x11\x63reatedUserGroups\x12<\n\x18\x64\x65leted_user_group_names\x18\x08 \x03(\tB\x03\xe0\x41\x02R\x15\x64\x65letedUserGroupNames\"\x16\n\x14GenerateTokenRequest\"\x81\x01\n\x15GenerateTokenResponse\x12M\n\rexternal_sync\x18\x01 \x01(\x0b\x32#.sift.external_sync.v1.ExternalSyncB\x03\xe0\x41\x02R\x0c\x65xternalSync\x12\x19\n\x05token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x05token\"\x18\n\x16GetExternalSyncRequest\"\x87\x01\n\x17GetExternalSyncResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12M\n\rexternal_sync\x18\x02 \x01(\x0b\x32#.sift.external_sync.v1.ExternalSyncB\x03\xe0\x41\x02R\x0c\x65xternalSync\"\xa2\x01\n\x1dListExternalSyncTokensRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xae\x01\n\x1eListExternalSyncTokensResponse\x12_\n\x14\x65xternal_sync_tokens\x18\x01 \x03(\x0b\x32(.sift.external_sync.v1.ExternalSyncTokenB\x03\xe0\x41\x02R\x12\x65xternalSyncTokens\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xd7\x07\n\x13\x45xternalSyncService\x12\xdb\x01\n\x10SyncOrganization\x12..sift.external_sync.v1.SyncOrganizationRequest\x1a/.sift.external_sync.v1.SyncOrganizationResponse\"f\x92\x41\x43\x12\x10SyncOrganization\x1a/Synchronizes an organization\'s users and groups\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/external-sync:\x01*\x12\xf6\x01\n\rGenerateToken\x12+.sift.external_sync.v1.GenerateTokenRequest\x1a,.sift.external_sync.v1.GenerateTokenResponse\"\x89\x01\x92\x41W\x12\rGenerateToken\x1a\x46Generates a token for synchronizing an organization\'s users and groups\x82\xd3\xe4\x93\x02)\"$/api/v1/external-sync:generate-token:\x01*\x12\xfa\x01\n\x0fGetExternalSync\x12-.sift.external_sync.v1.GetExternalSyncRequest\x1a..sift.external_sync.v1.GetExternalSyncResponse\"\x87\x01\x92\x41g\x12\x0fGetTokenDetails\x1aTGet details about the most recent token generated, does not include the token itself\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/external-sync\x12\xeb\x01\n\x16ListExternalSyncTokens\x12\x34.sift.external_sync.v1.ListExternalSyncTokensRequest\x1a\x35.sift.external_sync.v1.ListExternalSyncTokensResponse\"d\x92\x41\x38\x12\x16ListExternalSyncTokens\x1a\x1eList all tokens created by org\x82\xd3\xe4\x93\x02#\x12!/api/v1/external-sync:list-tokensB\xa0\x01\n\x19\x63om.sift.external_sync.v1B\x11\x45xternalSyncProtoP\x01\xa2\x02\x03SEX\xaa\x02\x14Sift.ExternalSync.V1\xca\x02\x14Sift\\ExternalSync\\V1\xe2\x02 Sift\\ExternalSync\\V1\\GPBMetadata\xea\x02\x16Sift::ExternalSync::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.external_sync.v1.external_sync_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.sift.external_sync.v1B\021ExternalSyncProtoP\001\242\002\003SEX\252\002\024Sift.ExternalSync.V1\312\002\024Sift\\ExternalSync\\V1\342\002 Sift\\ExternalSync\\V1\\GPBMetadata\352\002\026Sift::ExternalSync::V1' + _globals['_EXTERNALSYNC'].fields_by_name['organization_id']._loaded_options = None + _globals['_EXTERNALSYNC'].fields_by_name['organization_id']._serialized_options = b'\340A\001' + _globals['_EXTERNALSYNC'].fields_by_name['most_recent_sync_date']._loaded_options = None + _globals['_EXTERNALSYNC'].fields_by_name['most_recent_sync_date']._serialized_options = b'\340A\001' + _globals['_EXTERNALSYNC'].fields_by_name['most_recent_sync_by_user_id']._loaded_options = None + _globals['_EXTERNALSYNC'].fields_by_name['most_recent_sync_by_user_id']._serialized_options = b'\340A\001' + _globals['_EXTERNALSYNC'].fields_by_name['scim_server_url']._loaded_options = None + _globals['_EXTERNALSYNC'].fields_by_name['scim_server_url']._serialized_options = b'\340A\002' + _globals['_EXTERNALSYNC'].fields_by_name['token_created_date']._loaded_options = None + _globals['_EXTERNALSYNC'].fields_by_name['token_created_date']._serialized_options = b'\340A\001' + _globals['_EXTERNALSYNC'].fields_by_name['token_lifetime_seconds']._loaded_options = None + _globals['_EXTERNALSYNC'].fields_by_name['token_lifetime_seconds']._serialized_options = b'\340A\002' + _globals['_EXTERNALSYNC'].fields_by_name['most_recent_token_by_user_id']._loaded_options = None + _globals['_EXTERNALSYNC'].fields_by_name['most_recent_token_by_user_id']._serialized_options = b'\340A\001' + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['token_id']._loaded_options = None + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['token_id']._serialized_options = b'\340A\002' + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['lifetime_seconds']._loaded_options = None + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['lifetime_seconds']._serialized_options = b'\340A\002' + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['created_date']._loaded_options = None + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['created_date']._serialized_options = b'\340A\002' + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['created_by_user_id']._loaded_options = None + _globals['_EXTERNALSYNCTOKEN'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['external_sync']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['external_sync']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['existing_user_count']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['existing_user_count']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['added_to_organization_user_ids']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['added_to_organization_user_ids']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['created_users']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['created_users']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['deactivated_user_ids']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['deactivated_user_ids']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['existing_group_count']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['existing_group_count']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['created_user_groups']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['created_user_groups']._serialized_options = b'\340A\002' + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['deleted_user_group_names']._loaded_options = None + _globals['_SYNCORGANIZATIONRESPONSE'].fields_by_name['deleted_user_group_names']._serialized_options = b'\340A\002' + _globals['_GENERATETOKENRESPONSE'].fields_by_name['external_sync']._loaded_options = None + _globals['_GENERATETOKENRESPONSE'].fields_by_name['external_sync']._serialized_options = b'\340A\002' + _globals['_GENERATETOKENRESPONSE'].fields_by_name['token']._loaded_options = None + _globals['_GENERATETOKENRESPONSE'].fields_by_name['token']._serialized_options = b'\340A\002' + _globals['_GETEXTERNALSYNCRESPONSE'].fields_by_name['success']._loaded_options = None + _globals['_GETEXTERNALSYNCRESPONSE'].fields_by_name['success']._serialized_options = b'\340A\002' + _globals['_GETEXTERNALSYNCRESPONSE'].fields_by_name['external_sync']._loaded_options = None + _globals['_GETEXTERNALSYNCRESPONSE'].fields_by_name['external_sync']._serialized_options = b'\340A\002' + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['page_size']._loaded_options = None + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['page_token']._loaded_options = None + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001' + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['filter']._loaded_options = None + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001' + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['order_by']._loaded_options = None + _globals['_LISTEXTERNALSYNCTOKENSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_LISTEXTERNALSYNCTOKENSRESPONSE'].fields_by_name['external_sync_tokens']._loaded_options = None + _globals['_LISTEXTERNALSYNCTOKENSRESPONSE'].fields_by_name['external_sync_tokens']._serialized_options = b'\340A\002' + _globals['_LISTEXTERNALSYNCTOKENSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None + _globals['_LISTEXTERNALSYNCTOKENSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\001' + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['SyncOrganization']._loaded_options = None + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['SyncOrganization']._serialized_options = b'\222AC\022\020SyncOrganization\032/Synchronizes an organization\'s users and groups\202\323\344\223\002\032\"\025/api/v1/external-sync:\001*' + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['GenerateToken']._loaded_options = None + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['GenerateToken']._serialized_options = b'\222AW\022\rGenerateToken\032FGenerates a token for synchronizing an organization\'s users and groups\202\323\344\223\002)\"$/api/v1/external-sync:generate-token:\001*' + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['GetExternalSync']._loaded_options = None + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['GetExternalSync']._serialized_options = b'\222Ag\022\017GetTokenDetails\032TGet details about the most recent token generated, does not include the token itself\202\323\344\223\002\027\022\025/api/v1/external-sync' + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['ListExternalSyncTokens']._loaded_options = None + _globals['_EXTERNALSYNCSERVICE'].methods_by_name['ListExternalSyncTokens']._serialized_options = b'\222A8\022\026ListExternalSyncTokens\032\036List all tokens created by org\202\323\344\223\002#\022!/api/v1/external-sync:list-tokens' + _globals['_EXTERNALSYNC']._serialized_start=284 + _globals['_EXTERNALSYNC']._serialized_end=879 + _globals['_EXTERNALSYNCTOKEN']._serialized_start=882 + _globals['_EXTERNALSYNCTOKEN']._serialized_end=1099 + _globals['_SYNCORGANIZATIONREQUEST']._serialized_start=1101 + _globals['_SYNCORGANIZATIONREQUEST']._serialized_end=1126 + _globals['_SYNCORGANIZATIONRESPONSE']._serialized_start=1129 + _globals['_SYNCORGANIZATIONRESPONSE']._serialized_end=1686 + _globals['_GENERATETOKENREQUEST']._serialized_start=1688 + _globals['_GENERATETOKENREQUEST']._serialized_end=1710 + _globals['_GENERATETOKENRESPONSE']._serialized_start=1713 + _globals['_GENERATETOKENRESPONSE']._serialized_end=1842 + _globals['_GETEXTERNALSYNCREQUEST']._serialized_start=1844 + _globals['_GETEXTERNALSYNCREQUEST']._serialized_end=1868 + _globals['_GETEXTERNALSYNCRESPONSE']._serialized_start=1871 + _globals['_GETEXTERNALSYNCRESPONSE']._serialized_end=2006 + _globals['_LISTEXTERNALSYNCTOKENSREQUEST']._serialized_start=2009 + _globals['_LISTEXTERNALSYNCTOKENSREQUEST']._serialized_end=2171 + _globals['_LISTEXTERNALSYNCTOKENSRESPONSE']._serialized_start=2174 + _globals['_LISTEXTERNALSYNCTOKENSRESPONSE']._serialized_end=2348 + _globals['_EXTERNALSYNCSERVICE']._serialized_start=2351 + _globals['_EXTERNALSYNCSERVICE']._serialized_end=3334 +# @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/external_sync/v1/external_sync_pb2.pyi b/python/lib/sift/external_sync/v1/external_sync_pb2.pyi new file mode 100644 index 000000000..cbd638c3b --- /dev/null +++ b/python/lib/sift/external_sync/v1/external_sync_pb2.pyi @@ -0,0 +1,263 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sift.common.type.v1.user_pb2 +import sift.user_groups.v2.user_groups_pb2 +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class ExternalSync(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + MOST_RECENT_SYNC_DATE_FIELD_NUMBER: builtins.int + MOST_RECENT_SYNC_BY_USER_ID_FIELD_NUMBER: builtins.int + SCIM_SERVER_URL_FIELD_NUMBER: builtins.int + TOKEN_CREATED_DATE_FIELD_NUMBER: builtins.int + TOKEN_LIFETIME_SECONDS_FIELD_NUMBER: builtins.int + MOST_RECENT_TOKEN_BY_USER_ID_FIELD_NUMBER: builtins.int + organization_id: builtins.str + most_recent_sync_by_user_id: builtins.str + scim_server_url: builtins.str + token_lifetime_seconds: builtins.int + most_recent_token_by_user_id: builtins.str + @property + def most_recent_sync_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def token_created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + organization_id: builtins.str = ..., + most_recent_sync_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + most_recent_sync_by_user_id: builtins.str | None = ..., + scim_server_url: builtins.str = ..., + token_created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + token_lifetime_seconds: builtins.int = ..., + most_recent_token_by_user_id: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_most_recent_sync_by_user_id", b"_most_recent_sync_by_user_id", "_most_recent_sync_date", b"_most_recent_sync_date", "_most_recent_token_by_user_id", b"_most_recent_token_by_user_id", "_token_created_date", b"_token_created_date", "most_recent_sync_by_user_id", b"most_recent_sync_by_user_id", "most_recent_sync_date", b"most_recent_sync_date", "most_recent_token_by_user_id", b"most_recent_token_by_user_id", "token_created_date", b"token_created_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_most_recent_sync_by_user_id", b"_most_recent_sync_by_user_id", "_most_recent_sync_date", b"_most_recent_sync_date", "_most_recent_token_by_user_id", b"_most_recent_token_by_user_id", "_token_created_date", b"_token_created_date", "most_recent_sync_by_user_id", b"most_recent_sync_by_user_id", "most_recent_sync_date", b"most_recent_sync_date", "most_recent_token_by_user_id", b"most_recent_token_by_user_id", "organization_id", b"organization_id", "scim_server_url", b"scim_server_url", "token_created_date", b"token_created_date", "token_lifetime_seconds", b"token_lifetime_seconds"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_most_recent_sync_by_user_id", b"_most_recent_sync_by_user_id"]) -> typing.Literal["most_recent_sync_by_user_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_most_recent_sync_date", b"_most_recent_sync_date"]) -> typing.Literal["most_recent_sync_date"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_most_recent_token_by_user_id", b"_most_recent_token_by_user_id"]) -> typing.Literal["most_recent_token_by_user_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_token_created_date", b"_token_created_date"]) -> typing.Literal["token_created_date"] | None: ... + +global___ExternalSync = ExternalSync + +@typing.final +class ExternalSyncToken(google.protobuf.message.Message): + """The actual token value is not returned after it is first generated.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TOKEN_ID_FIELD_NUMBER: builtins.int + LIFETIME_SECONDS_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + token_id: builtins.str + lifetime_seconds: builtins.int + created_by_user_id: builtins.str + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + token_id: builtins.str = ..., + lifetime_seconds: builtins.int = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["created_date", b"created_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "lifetime_seconds", b"lifetime_seconds", "token_id", b"token_id"]) -> None: ... + +global___ExternalSyncToken = ExternalSyncToken + +@typing.final +class SyncOrganizationRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___SyncOrganizationRequest = SyncOrganizationRequest + +@typing.final +class SyncOrganizationResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXTERNAL_SYNC_FIELD_NUMBER: builtins.int + EXISTING_USER_COUNT_FIELD_NUMBER: builtins.int + ADDED_TO_ORGANIZATION_USER_IDS_FIELD_NUMBER: builtins.int + CREATED_USERS_FIELD_NUMBER: builtins.int + DEACTIVATED_USER_IDS_FIELD_NUMBER: builtins.int + EXISTING_GROUP_COUNT_FIELD_NUMBER: builtins.int + CREATED_USER_GROUPS_FIELD_NUMBER: builtins.int + DELETED_USER_GROUP_NAMES_FIELD_NUMBER: builtins.int + existing_user_count: builtins.int + existing_group_count: builtins.int + @property + def external_sync(self) -> global___ExternalSync: ... + @property + def added_to_organization_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def created_users(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.user_pb2.User]: ... + @property + def deactivated_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def created_user_groups(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.user_groups.v2.user_groups_pb2.UserGroup]: ... + @property + def deleted_user_group_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + external_sync: global___ExternalSync | None = ..., + existing_user_count: builtins.int = ..., + added_to_organization_user_ids: collections.abc.Iterable[builtins.str] | None = ..., + created_users: collections.abc.Iterable[sift.common.type.v1.user_pb2.User] | None = ..., + deactivated_user_ids: collections.abc.Iterable[builtins.str] | None = ..., + existing_group_count: builtins.int = ..., + created_user_groups: collections.abc.Iterable[sift.user_groups.v2.user_groups_pb2.UserGroup] | None = ..., + deleted_user_group_names: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["external_sync", b"external_sync"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["added_to_organization_user_ids", b"added_to_organization_user_ids", "created_user_groups", b"created_user_groups", "created_users", b"created_users", "deactivated_user_ids", b"deactivated_user_ids", "deleted_user_group_names", b"deleted_user_group_names", "existing_group_count", b"existing_group_count", "existing_user_count", b"existing_user_count", "external_sync", b"external_sync"]) -> None: ... + +global___SyncOrganizationResponse = SyncOrganizationResponse + +@typing.final +class GenerateTokenRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___GenerateTokenRequest = GenerateTokenRequest + +@typing.final +class GenerateTokenResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXTERNAL_SYNC_FIELD_NUMBER: builtins.int + TOKEN_FIELD_NUMBER: builtins.int + token: builtins.str + @property + def external_sync(self) -> global___ExternalSync: ... + def __init__( + self, + *, + external_sync: global___ExternalSync | None = ..., + token: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["external_sync", b"external_sync"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["external_sync", b"external_sync", "token", b"token"]) -> None: ... + +global___GenerateTokenResponse = GenerateTokenResponse + +@typing.final +class GetExternalSyncRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___GetExternalSyncRequest = GetExternalSyncRequest + +@typing.final +class GetExternalSyncResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SUCCESS_FIELD_NUMBER: builtins.int + EXTERNAL_SYNC_FIELD_NUMBER: builtins.int + success: builtins.bool + @property + def external_sync(self) -> global___ExternalSync: ... + def __init__( + self, + *, + success: builtins.bool = ..., + external_sync: global___ExternalSync | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["external_sync", b"external_sync"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["external_sync", b"external_sync", "success", b"success"]) -> None: ... + +global___GetExternalSyncResponse = GetExternalSyncResponse + +@typing.final +class ListExternalSyncTokensRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of tokens to return. The service may return fewer than this value. + If unspecified, at most 50 tokens will be returned. The maximum value is 1000; values above + 1000 will be coerced to 1000. Optional. + """ + page_token: builtins.str + """A page token, received from a previous `ListExternalSyncTokens` call. + Provide this to retrieve the subsequent page. + When paginating, all other parameters provided to `ListExternalSyncTokens` must match + the call that provided the page token. Optional. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + There are currently no available fields. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + """ + order_by: builtins.str + """How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available field to order_by is `created_date`. + If left empty, items are ordered by `created_date` in descending order (newest-first). + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date asc". + """ + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + filter: builtins.str = ..., + order_by: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListExternalSyncTokensRequest = ListExternalSyncTokensRequest + +@typing.final +class ListExternalSyncTokensResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXTERNAL_SYNC_TOKENS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + @property + def external_sync_tokens(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExternalSyncToken]: ... + def __init__( + self, + *, + external_sync_tokens: collections.abc.Iterable[global___ExternalSyncToken] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["external_sync_tokens", b"external_sync_tokens", "next_page_token", b"next_page_token"]) -> None: ... + +global___ListExternalSyncTokensResponse = ListExternalSyncTokensResponse diff --git a/python/lib/sift/external_sync/v1/external_sync_pb2_grpc.py b/python/lib/sift/external_sync/v1/external_sync_pb2_grpc.py new file mode 100644 index 000000000..8f6a889e7 --- /dev/null +++ b/python/lib/sift/external_sync/v1/external_sync_pb2_grpc.py @@ -0,0 +1,165 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from sift.external_sync.v1 import external_sync_pb2 as sift_dot_external__sync_dot_v1_dot_external__sync__pb2 + + +class ExternalSyncServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SyncOrganization = channel.unary_unary( + '/sift.external_sync.v1.ExternalSyncService/SyncOrganization', + request_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.SyncOrganizationRequest.SerializeToString, + response_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.SyncOrganizationResponse.FromString, + ) + self.GenerateToken = channel.unary_unary( + '/sift.external_sync.v1.ExternalSyncService/GenerateToken', + request_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GenerateTokenRequest.SerializeToString, + response_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GenerateTokenResponse.FromString, + ) + self.GetExternalSync = channel.unary_unary( + '/sift.external_sync.v1.ExternalSyncService/GetExternalSync', + request_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GetExternalSyncRequest.SerializeToString, + response_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GetExternalSyncResponse.FromString, + ) + self.ListExternalSyncTokens = channel.unary_unary( + '/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens', + request_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.ListExternalSyncTokensRequest.SerializeToString, + response_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.ListExternalSyncTokensResponse.FromString, + ) + + +class ExternalSyncServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def SyncOrganization(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateToken(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetExternalSync(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListExternalSyncTokens(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ExternalSyncServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SyncOrganization': grpc.unary_unary_rpc_method_handler( + servicer.SyncOrganization, + request_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.SyncOrganizationRequest.FromString, + response_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.SyncOrganizationResponse.SerializeToString, + ), + 'GenerateToken': grpc.unary_unary_rpc_method_handler( + servicer.GenerateToken, + request_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GenerateTokenRequest.FromString, + response_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GenerateTokenResponse.SerializeToString, + ), + 'GetExternalSync': grpc.unary_unary_rpc_method_handler( + servicer.GetExternalSync, + request_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GetExternalSyncRequest.FromString, + response_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GetExternalSyncResponse.SerializeToString, + ), + 'ListExternalSyncTokens': grpc.unary_unary_rpc_method_handler( + servicer.ListExternalSyncTokens, + request_deserializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.ListExternalSyncTokensRequest.FromString, + response_serializer=sift_dot_external__sync_dot_v1_dot_external__sync__pb2.ListExternalSyncTokensResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sift.external_sync.v1.ExternalSyncService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ExternalSyncService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def SyncOrganization(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.external_sync.v1.ExternalSyncService/SyncOrganization', + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.SyncOrganizationRequest.SerializeToString, + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.SyncOrganizationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateToken(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.external_sync.v1.ExternalSyncService/GenerateToken', + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GenerateTokenRequest.SerializeToString, + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GenerateTokenResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetExternalSync(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.external_sync.v1.ExternalSyncService/GetExternalSync', + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GetExternalSyncRequest.SerializeToString, + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.GetExternalSyncResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListExternalSyncTokens(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens', + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.ListExternalSyncTokensRequest.SerializeToString, + sift_dot_external__sync_dot_v1_dot_external__sync__pb2.ListExternalSyncTokensResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/lib/sift/external_sync/v1/external_sync_pb2_grpc.pyi b/python/lib/sift/external_sync/v1/external_sync_pb2_grpc.pyi new file mode 100644 index 000000000..7d185b9c5 --- /dev/null +++ b/python/lib/sift/external_sync/v1/external_sync_pb2_grpc.pyi @@ -0,0 +1,92 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sift.external_sync.v1.external_sync_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class ExternalSyncServiceStub: + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + SyncOrganization: grpc.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.SyncOrganizationRequest, + sift.external_sync.v1.external_sync_pb2.SyncOrganizationResponse, + ] + + GenerateToken: grpc.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.GenerateTokenRequest, + sift.external_sync.v1.external_sync_pb2.GenerateTokenResponse, + ] + + GetExternalSync: grpc.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.GetExternalSyncRequest, + sift.external_sync.v1.external_sync_pb2.GetExternalSyncResponse, + ] + + ListExternalSyncTokens: grpc.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.ListExternalSyncTokensRequest, + sift.external_sync.v1.external_sync_pb2.ListExternalSyncTokensResponse, + ] + +class ExternalSyncServiceAsyncStub: + SyncOrganization: grpc.aio.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.SyncOrganizationRequest, + sift.external_sync.v1.external_sync_pb2.SyncOrganizationResponse, + ] + + GenerateToken: grpc.aio.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.GenerateTokenRequest, + sift.external_sync.v1.external_sync_pb2.GenerateTokenResponse, + ] + + GetExternalSync: grpc.aio.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.GetExternalSyncRequest, + sift.external_sync.v1.external_sync_pb2.GetExternalSyncResponse, + ] + + ListExternalSyncTokens: grpc.aio.UnaryUnaryMultiCallable[ + sift.external_sync.v1.external_sync_pb2.ListExternalSyncTokensRequest, + sift.external_sync.v1.external_sync_pb2.ListExternalSyncTokensResponse, + ] + +class ExternalSyncServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def SyncOrganization( + self, + request: sift.external_sync.v1.external_sync_pb2.SyncOrganizationRequest, + context: _ServicerContext, + ) -> typing.Union[sift.external_sync.v1.external_sync_pb2.SyncOrganizationResponse, collections.abc.Awaitable[sift.external_sync.v1.external_sync_pb2.SyncOrganizationResponse]]: ... + + @abc.abstractmethod + def GenerateToken( + self, + request: sift.external_sync.v1.external_sync_pb2.GenerateTokenRequest, + context: _ServicerContext, + ) -> typing.Union[sift.external_sync.v1.external_sync_pb2.GenerateTokenResponse, collections.abc.Awaitable[sift.external_sync.v1.external_sync_pb2.GenerateTokenResponse]]: ... + + @abc.abstractmethod + def GetExternalSync( + self, + request: sift.external_sync.v1.external_sync_pb2.GetExternalSyncRequest, + context: _ServicerContext, + ) -> typing.Union[sift.external_sync.v1.external_sync_pb2.GetExternalSyncResponse, collections.abc.Awaitable[sift.external_sync.v1.external_sync_pb2.GetExternalSyncResponse]]: ... + + @abc.abstractmethod + def ListExternalSyncTokens( + self, + request: sift.external_sync.v1.external_sync_pb2.ListExternalSyncTokensRequest, + context: _ServicerContext, + ) -> typing.Union[sift.external_sync.v1.external_sync_pb2.ListExternalSyncTokensResponse, collections.abc.Awaitable[sift.external_sync.v1.external_sync_pb2.ListExternalSyncTokensResponse]]: ... + +def add_ExternalSyncServiceServicer_to_server(servicer: ExternalSyncServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/python/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.pyi b/python/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.pyi index 7299ec1e9..35115db77 100644 --- a/python/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.pyi +++ b/python/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.pyi @@ -128,7 +128,7 @@ global___GetIngestionConfigResponse = GetIngestionConfigResponse @typing.final class CreateIngestionConfigRequest(google.protobuf.message.Message): - """The request for a call to `IngestionConfigService_ListIngestionConfigs` to retrieve ingestion configs.""" + """The request for a call to `IngestionConfigService_CreateIngestionConfig` to create an ingestion configs.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/python/lib/sift/ingestion_configs/v2/ingestion_configs_pb2.pyi b/python/lib/sift/ingestion_configs/v2/ingestion_configs_pb2.pyi index c67ad8d9d..572654af0 100644 --- a/python/lib/sift/ingestion_configs/v2/ingestion_configs_pb2.pyi +++ b/python/lib/sift/ingestion_configs/v2/ingestion_configs_pb2.pyi @@ -125,7 +125,7 @@ global___GetIngestionConfigResponse = GetIngestionConfigResponse @typing.final class CreateIngestionConfigRequest(google.protobuf.message.Message): - """The request for a call to `IngestionConfigService_ListIngestionConfigs` to retrieve ingestion configs.""" + """The request for a call to `IngestionConfigService_CreateIngestionConfig` to retrieve ingestion configs.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/python/lib/sift/jobs/v1/jobs_pb2.py b/python/lib/sift/jobs/v1/jobs_pb2.py index cb92fe0cc..0f61e24af 100644 --- a/python/lib/sift/jobs/v1/jobs_pb2.py +++ b/python/lib/sift/jobs/v1/jobs_pb2.py @@ -16,9 +16,10 @@ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 +from sift.exports.v1 import exports_pb2 as sift_dot_exports_dot_v1_dot_exports__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/jobs/v1/jobs.proto\x12\x0csift.jobs.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xbf\x04\n\x03Job\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x05R\x0eorganizationId\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x03R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x03R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0cmodifiedDate\x12\x42\n\x0cstarted_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0bstartedDate\x12\x46\n\x0e\x63ompleted_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\rcompletedDate\x12\x35\n\x08job_type\x18\n \x01(\x0e\x32\x15.sift.jobs.v1.JobTypeB\x03\xe0\x41\x03R\x07jobType\x12;\n\njob_status\x18\x0b \x01(\x0e\x32\x17.sift.jobs.v1.JobStatusB\x03\xe0\x41\x03R\tjobStatus\"\xc2\x01\n\x0fListJobsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"a\n\x10ListJobsResponse\x12%\n\x04jobs\x18\x01 \x03(\x0b\x32\x11.sift.jobs.v1.JobR\x04jobs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\".\n\x10\x43\x61ncelJobRequest\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\"\x13\n\x11\x43\x61ncelJobResponse*_\n\x07JobType\x12\x1c\n\x14JOB_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1c\n\x18JOB_TYPE_RULE_EVALUATION\x10\x01\x12\x18\n\x14JOB_TYPE_DATA_IMPORT\x10\x02*\xc6\x01\n\tJobStatus\x12\x1e\n\x16JOB_STATUS_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x16\n\x12JOB_STATUS_CREATED\x10\x01\x12\x16\n\x12JOB_STATUS_RUNNING\x10\x02\x12\x17\n\x13JOB_STATUS_FINISHED\x10\x03\x12\x15\n\x11JOB_STATUS_FAILED\x10\x04\x12\x18\n\x14JOB_STATUS_CANCELLED\x10\x05\x12\x1f\n\x1bJOB_STATUS_CANCEL_REQUESTED\x10\x06\x32\xaa\x02\n\nJobService\x12x\n\x08ListJobs\x12\x1d.sift.jobs.v1.ListJobsRequest\x1a\x1e.sift.jobs.v1.ListJobsResponse\"-\x92\x41\x16\x12\x08ListJobs\x1a\nList jobs.\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/jobs\x12\xa1\x01\n\tCancelJob\x12\x1e.sift.jobs.v1.CancelJobRequest\x1a\x1f.sift.jobs.v1.CancelJobResponse\"S\x92\x41,\x12\tCancelJob\x1a\x1fRequests cancellation of a job.\x82\xd3\xe4\x93\x02\x1e\"\x1c/api/v1/jobs/{job_id}:cancelB\x82\x01\n\x10\x63om.sift.jobs.v1B\tJobsProtoP\x01\xa2\x02\x03SJX\xaa\x02\x0cSift.Jobs.V1\xca\x02\x0cSift\\Jobs\\V1\xe2\x02\x18Sift\\Jobs\\V1\\GPBMetadata\xea\x02\x0eSift::Jobs::V1\x92\x41\x10\x12\x0e\n\x0cJobs serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/jobs/v1/jobs.proto\x12\x0csift.jobs.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1dsift/exports/v1/exports.proto\"\xe4\x05\n\x03Job\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x05R\x0eorganizationId\x12\x33\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x35\n\x13modified_by_user_id\x18\x05 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x45\n\x0c\x63reated_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0b\x63reatedDate\x12G\n\rmodified_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x42\n\x0cstarted_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0bstartedDate\x12\x46\n\x0e\x63ompleted_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\rcompletedDate\x12\x38\n\x08job_type\x18\n \x01(\x0e\x32\x15.sift.jobs.v1.JobTypeB\x06\xe0\x41\x03\xe0\x41\x02R\x07jobType\x12>\n\njob_status\x18\x0b \x01(\x0e\x32\x17.sift.jobs.v1.JobStatusB\x06\xe0\x41\x03\xe0\x41\x02R\tjobStatus\x12Q\n\x12job_status_details\x18\x0c \x01(\x0b\x32\x1e.sift.jobs.v1.JobStatusDetailsB\x03\xe0\x41\x03R\x10jobStatusDetails\x12>\n\x0bjob_details\x18\r \x01(\x0b\x32\x18.sift.jobs.v1.JobDetailsB\x03\xe0\x41\x03R\njobDetails\"\x86\x02\n\x10JobStatusDetails\x12T\n\x0frule_evaluation\x18\x01 \x01(\x0b\x32).sift.jobs.v1.RuleEvaluationStatusDetailsH\x00R\x0eruleEvaluation\x12H\n\x0b\x64\x61ta_import\x18\x02 \x01(\x0b\x32%.sift.jobs.v1.DataImportStatusDetailsH\x00R\ndataImport\x12H\n\x0b\x64\x61ta_export\x18\x03 \x01(\x0b\x32%.sift.jobs.v1.DataExportStatusDetailsH\x00R\ndataExportB\x08\n\x06status\"\x1d\n\x1bRuleEvaluationStatusDetails\"q\n\x17\x44\x61taImportStatusDetails\x12.\n\x10points_processed\x18\x01 \x01(\x04\x42\x03\xe0\x41\x02R\x0fpointsProcessed\x12&\n\x0cpoints_total\x18\x02 \x01(\x04\x42\x03\xe0\x41\x02R\x0bpointsTotal\"C\n\x17\x44\x61taExportStatusDetails\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0c\x65rrorMessage\"u\n\x14\x44\x61taExportJobDetails\x12<\n\x07request\x18\x01 \x01(\x0b\x32\".sift.exports.v1.ExportDataRequestR\x07request\x12\x1f\n\x0bstorage_key\x18\x02 \x01(\tR\nstorageKey\"\xf8\x01\n\nJobDetails\x12Q\n\x0frule_evaluation\x18\x01 \x01(\x0b\x32&.sift.jobs.v1.RuleEvaluationJobDetailsH\x00R\x0eruleEvaluation\x12\x45\n\x0b\x64\x61ta_import\x18\x02 \x01(\x0b\x32\".sift.jobs.v1.DataImportJobDetailsH\x00R\ndataImport\x12\x45\n\x0b\x64\x61ta_export\x18\x03 \x01(\x0b\x32\".sift.jobs.v1.DataExportJobDetailsH\x00R\ndataExportB\t\n\x07\x64\x65tails\"<\n\x18RuleEvaluationJobDetails\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"A\n\x14\x44\x61taImportJobDetails\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"\xc2\x01\n\x0fListJobsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"a\n\x10ListJobsResponse\x12%\n\x04jobs\x18\x01 \x03(\x0b\x32\x11.sift.jobs.v1.JobR\x04jobs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\".\n\x10\x43\x61ncelJobRequest\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\"\x13\n\x11\x43\x61ncelJobResponse\"-\n\x0fRetryJobRequest\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\"7\n\x10RetryJobResponse\x12#\n\x03job\x18\x01 \x01(\x0b\x32\x11.sift.jobs.v1.JobR\x03job*y\n\x07JobType\x12\x1c\n\x14JOB_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1c\n\x18JOB_TYPE_RULE_EVALUATION\x10\x01\x12\x18\n\x14JOB_TYPE_DATA_IMPORT\x10\x02\x12\x18\n\x14JOB_TYPE_DATA_EXPORT\x10\x03*\xc6\x01\n\tJobStatus\x12\x1e\n\x16JOB_STATUS_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x16\n\x12JOB_STATUS_CREATED\x10\x01\x12\x16\n\x12JOB_STATUS_RUNNING\x10\x02\x12\x17\n\x13JOB_STATUS_FINISHED\x10\x03\x12\x15\n\x11JOB_STATUS_FAILED\x10\x04\x12\x18\n\x14JOB_STATUS_CANCELLED\x10\x05\x12\x1f\n\x1bJOB_STATUS_CANCEL_REQUESTED\x10\x06\x32\xc1\x03\n\nJobService\x12x\n\x08ListJobs\x12\x1d.sift.jobs.v1.ListJobsRequest\x1a\x1e.sift.jobs.v1.ListJobsResponse\"-\x92\x41\x16\x12\x08ListJobs\x1a\nList jobs.\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/jobs\x12\xa1\x01\n\tCancelJob\x12\x1e.sift.jobs.v1.CancelJobRequest\x1a\x1f.sift.jobs.v1.CancelJobResponse\"S\x92\x41,\x12\tCancelJob\x1a\x1fRequests cancellation of a job.\x82\xd3\xe4\x93\x02\x1e\"\x1c/api/v1/jobs/{job_id}:cancel\x12\x94\x01\n\x08RetryJob\x12\x1d.sift.jobs.v1.RetryJobRequest\x1a\x1e.sift.jobs.v1.RetryJobResponse\"I\x92\x41#\x12\x08RetryJob\x1a\x17Manually retries a job.\x82\xd3\xe4\x93\x02\x1d\"\x1b/api/v1/jobs/{job_id}:retryB\x82\x01\n\x10\x63om.sift.jobs.v1B\tJobsProtoP\x01\xa2\x02\x03SJX\xaa\x02\x0cSift.Jobs.V1\xca\x02\x0cSift\\Jobs\\V1\xe2\x02\x18Sift\\Jobs\\V1\\GPBMetadata\xea\x02\x0eSift::Jobs::V1\x92\x41\x10\x12\x0e\n\x0cJobs serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,21 +36,35 @@ _globals['_JOB'].fields_by_name['organization_id']._loaded_options = None _globals['_JOB'].fields_by_name['organization_id']._serialized_options = b'\340A\005' _globals['_JOB'].fields_by_name['created_by_user_id']._loaded_options = None - _globals['_JOB'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\003' + _globals['_JOB'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\003\340A\002' _globals['_JOB'].fields_by_name['modified_by_user_id']._loaded_options = None - _globals['_JOB'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\003' + _globals['_JOB'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\003\340A\002' _globals['_JOB'].fields_by_name['created_date']._loaded_options = None - _globals['_JOB'].fields_by_name['created_date']._serialized_options = b'\340A\003' + _globals['_JOB'].fields_by_name['created_date']._serialized_options = b'\340A\003\340A\002' _globals['_JOB'].fields_by_name['modified_date']._loaded_options = None - _globals['_JOB'].fields_by_name['modified_date']._serialized_options = b'\340A\003' + _globals['_JOB'].fields_by_name['modified_date']._serialized_options = b'\340A\003\340A\002' _globals['_JOB'].fields_by_name['started_date']._loaded_options = None _globals['_JOB'].fields_by_name['started_date']._serialized_options = b'\340A\003' _globals['_JOB'].fields_by_name['completed_date']._loaded_options = None _globals['_JOB'].fields_by_name['completed_date']._serialized_options = b'\340A\003' _globals['_JOB'].fields_by_name['job_type']._loaded_options = None - _globals['_JOB'].fields_by_name['job_type']._serialized_options = b'\340A\003' + _globals['_JOB'].fields_by_name['job_type']._serialized_options = b'\340A\003\340A\002' _globals['_JOB'].fields_by_name['job_status']._loaded_options = None - _globals['_JOB'].fields_by_name['job_status']._serialized_options = b'\340A\003' + _globals['_JOB'].fields_by_name['job_status']._serialized_options = b'\340A\003\340A\002' + _globals['_JOB'].fields_by_name['job_status_details']._loaded_options = None + _globals['_JOB'].fields_by_name['job_status_details']._serialized_options = b'\340A\003' + _globals['_JOB'].fields_by_name['job_details']._loaded_options = None + _globals['_JOB'].fields_by_name['job_details']._serialized_options = b'\340A\003' + _globals['_DATAIMPORTSTATUSDETAILS'].fields_by_name['points_processed']._loaded_options = None + _globals['_DATAIMPORTSTATUSDETAILS'].fields_by_name['points_processed']._serialized_options = b'\340A\002' + _globals['_DATAIMPORTSTATUSDETAILS'].fields_by_name['points_total']._loaded_options = None + _globals['_DATAIMPORTSTATUSDETAILS'].fields_by_name['points_total']._serialized_options = b'\340A\002' + _globals['_DATAEXPORTSTATUSDETAILS'].fields_by_name['error_message']._loaded_options = None + _globals['_DATAEXPORTSTATUSDETAILS'].fields_by_name['error_message']._serialized_options = b'\340A\001' + _globals['_RULEEVALUATIONJOBDETAILS'].fields_by_name['report_id']._loaded_options = None + _globals['_RULEEVALUATIONJOBDETAILS'].fields_by_name['report_id']._serialized_options = b'\340A\002' + _globals['_DATAIMPORTJOBDETAILS'].fields_by_name['data_import_id']._loaded_options = None + _globals['_DATAIMPORTJOBDETAILS'].fields_by_name['data_import_id']._serialized_options = b'\340A\002' _globals['_LISTJOBSREQUEST'].fields_by_name['page_size']._loaded_options = None _globals['_LISTJOBSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' _globals['_LISTJOBSREQUEST'].fields_by_name['page_token']._loaded_options = None @@ -62,24 +77,48 @@ _globals['_LISTJOBSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' _globals['_CANCELJOBREQUEST'].fields_by_name['job_id']._loaded_options = None _globals['_CANCELJOBREQUEST'].fields_by_name['job_id']._serialized_options = b'\340A\002' + _globals['_RETRYJOBREQUEST'].fields_by_name['job_id']._loaded_options = None + _globals['_RETRYJOBREQUEST'].fields_by_name['job_id']._serialized_options = b'\340A\002' _globals['_JOBSERVICE'].methods_by_name['ListJobs']._loaded_options = None _globals['_JOBSERVICE'].methods_by_name['ListJobs']._serialized_options = b'\222A\026\022\010ListJobs\032\nList jobs.\202\323\344\223\002\016\022\014/api/v1/jobs' _globals['_JOBSERVICE'].methods_by_name['CancelJob']._loaded_options = None _globals['_JOBSERVICE'].methods_by_name['CancelJob']._serialized_options = b'\222A,\022\tCancelJob\032\037Requests cancellation of a job.\202\323\344\223\002\036\"\034/api/v1/jobs/{job_id}:cancel' - _globals['_JOBTYPE']._serialized_start=1128 - _globals['_JOBTYPE']._serialized_end=1223 - _globals['_JOBSTATUS']._serialized_start=1226 - _globals['_JOBSTATUS']._serialized_end=1424 - _globals['_JOB']._serialized_start=186 - _globals['_JOB']._serialized_end=761 - _globals['_LISTJOBSREQUEST']._serialized_start=764 - _globals['_LISTJOBSREQUEST']._serialized_end=958 - _globals['_LISTJOBSRESPONSE']._serialized_start=960 - _globals['_LISTJOBSRESPONSE']._serialized_end=1057 - _globals['_CANCELJOBREQUEST']._serialized_start=1059 - _globals['_CANCELJOBREQUEST']._serialized_end=1105 - _globals['_CANCELJOBRESPONSE']._serialized_start=1107 - _globals['_CANCELJOBRESPONSE']._serialized_end=1126 - _globals['_JOBSERVICE']._serialized_start=1427 - _globals['_JOBSERVICE']._serialized_end=1725 + _globals['_JOBSERVICE'].methods_by_name['RetryJob']._loaded_options = None + _globals['_JOBSERVICE'].methods_by_name['RetryJob']._serialized_options = b'\222A#\022\010RetryJob\032\027Manually retries a job.\202\323\344\223\002\035\"\033/api/v1/jobs/{job_id}:retry' + _globals['_JOBTYPE']._serialized_start=2407 + _globals['_JOBTYPE']._serialized_end=2528 + _globals['_JOBSTATUS']._serialized_start=2531 + _globals['_JOBSTATUS']._serialized_end=2729 + _globals['_JOB']._serialized_start=217 + _globals['_JOB']._serialized_end=957 + _globals['_JOBSTATUSDETAILS']._serialized_start=960 + _globals['_JOBSTATUSDETAILS']._serialized_end=1222 + _globals['_RULEEVALUATIONSTATUSDETAILS']._serialized_start=1224 + _globals['_RULEEVALUATIONSTATUSDETAILS']._serialized_end=1253 + _globals['_DATAIMPORTSTATUSDETAILS']._serialized_start=1255 + _globals['_DATAIMPORTSTATUSDETAILS']._serialized_end=1368 + _globals['_DATAEXPORTSTATUSDETAILS']._serialized_start=1370 + _globals['_DATAEXPORTSTATUSDETAILS']._serialized_end=1437 + _globals['_DATAEXPORTJOBDETAILS']._serialized_start=1439 + _globals['_DATAEXPORTJOBDETAILS']._serialized_end=1556 + _globals['_JOBDETAILS']._serialized_start=1559 + _globals['_JOBDETAILS']._serialized_end=1807 + _globals['_RULEEVALUATIONJOBDETAILS']._serialized_start=1809 + _globals['_RULEEVALUATIONJOBDETAILS']._serialized_end=1869 + _globals['_DATAIMPORTJOBDETAILS']._serialized_start=1871 + _globals['_DATAIMPORTJOBDETAILS']._serialized_end=1936 + _globals['_LISTJOBSREQUEST']._serialized_start=1939 + _globals['_LISTJOBSREQUEST']._serialized_end=2133 + _globals['_LISTJOBSRESPONSE']._serialized_start=2135 + _globals['_LISTJOBSRESPONSE']._serialized_end=2232 + _globals['_CANCELJOBREQUEST']._serialized_start=2234 + _globals['_CANCELJOBREQUEST']._serialized_end=2280 + _globals['_CANCELJOBRESPONSE']._serialized_start=2282 + _globals['_CANCELJOBRESPONSE']._serialized_end=2301 + _globals['_RETRYJOBREQUEST']._serialized_start=2303 + _globals['_RETRYJOBREQUEST']._serialized_end=2348 + _globals['_RETRYJOBRESPONSE']._serialized_start=2350 + _globals['_RETRYJOBRESPONSE']._serialized_end=2405 + _globals['_JOBSERVICE']._serialized_start=2732 + _globals['_JOBSERVICE']._serialized_end=3181 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/jobs/v1/jobs_pb2.pyi b/python/lib/sift/jobs/v1/jobs_pb2.pyi index ffd6148a6..04e41c7d0 100644 --- a/python/lib/sift/jobs/v1/jobs_pb2.pyi +++ b/python/lib/sift/jobs/v1/jobs_pb2.pyi @@ -10,6 +10,7 @@ import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message import google.protobuf.timestamp_pb2 +import sift.exports.v1.exports_pb2 import sys import typing @@ -29,12 +30,14 @@ class _JobTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTy JOB_TYPE_UNSPECIFIED: _JobType.ValueType # 0 JOB_TYPE_RULE_EVALUATION: _JobType.ValueType # 1 JOB_TYPE_DATA_IMPORT: _JobType.ValueType # 2 + JOB_TYPE_DATA_EXPORT: _JobType.ValueType # 3 class JobType(_JobType, metaclass=_JobTypeEnumTypeWrapper): ... JOB_TYPE_UNSPECIFIED: JobType.ValueType # 0 JOB_TYPE_RULE_EVALUATION: JobType.ValueType # 1 JOB_TYPE_DATA_IMPORT: JobType.ValueType # 2 +JOB_TYPE_DATA_EXPORT: JobType.ValueType # 3 global___JobType = JobType class _JobStatus: @@ -76,6 +79,8 @@ class Job(google.protobuf.message.Message): COMPLETED_DATE_FIELD_NUMBER: builtins.int JOB_TYPE_FIELD_NUMBER: builtins.int JOB_STATUS_FIELD_NUMBER: builtins.int + JOB_STATUS_DETAILS_FIELD_NUMBER: builtins.int + JOB_DETAILS_FIELD_NUMBER: builtins.int job_id: builtins.str organization_id: builtins.str created_by_user_id: builtins.str @@ -90,6 +95,10 @@ class Job(google.protobuf.message.Message): def started_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property def completed_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def job_status_details(self) -> global___JobStatusDetails: ... + @property + def job_details(self) -> global___JobDetails: ... def __init__( self, *, @@ -103,12 +112,159 @@ class Job(google.protobuf.message.Message): completed_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., job_type: global___JobType.ValueType = ..., job_status: global___JobStatus.ValueType = ..., + job_status_details: global___JobStatusDetails | None = ..., + job_details: global___JobDetails | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["completed_date", b"completed_date", "created_date", b"created_date", "modified_date", b"modified_date", "started_date", b"started_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["completed_date", b"completed_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "job_id", b"job_id", "job_status", b"job_status", "job_type", b"job_type", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "organization_id", b"organization_id", "started_date", b"started_date"]) -> None: ... + def HasField(self, field_name: typing.Literal["completed_date", b"completed_date", "created_date", b"created_date", "job_details", b"job_details", "job_status_details", b"job_status_details", "modified_date", b"modified_date", "started_date", b"started_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["completed_date", b"completed_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "job_details", b"job_details", "job_id", b"job_id", "job_status", b"job_status", "job_status_details", b"job_status_details", "job_type", b"job_type", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "organization_id", b"organization_id", "started_date", b"started_date"]) -> None: ... global___Job = Job +@typing.final +class JobStatusDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_EVALUATION_FIELD_NUMBER: builtins.int + DATA_IMPORT_FIELD_NUMBER: builtins.int + DATA_EXPORT_FIELD_NUMBER: builtins.int + @property + def rule_evaluation(self) -> global___RuleEvaluationStatusDetails: ... + @property + def data_import(self) -> global___DataImportStatusDetails: ... + @property + def data_export(self) -> global___DataExportStatusDetails: ... + def __init__( + self, + *, + rule_evaluation: global___RuleEvaluationStatusDetails | None = ..., + data_import: global___DataImportStatusDetails | None = ..., + data_export: global___DataExportStatusDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data_export", b"data_export", "data_import", b"data_import", "rule_evaluation", b"rule_evaluation", "status", b"status"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data_export", b"data_export", "data_import", b"data_import", "rule_evaluation", b"rule_evaluation", "status", b"status"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["status", b"status"]) -> typing.Literal["rule_evaluation", "data_import", "data_export"] | None: ... + +global___JobStatusDetails = JobStatusDetails + +@typing.final +class RuleEvaluationStatusDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___RuleEvaluationStatusDetails = RuleEvaluationStatusDetails + +@typing.final +class DataImportStatusDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + POINTS_PROCESSED_FIELD_NUMBER: builtins.int + POINTS_TOTAL_FIELD_NUMBER: builtins.int + points_processed: builtins.int + points_total: builtins.int + def __init__( + self, + *, + points_processed: builtins.int = ..., + points_total: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["points_processed", b"points_processed", "points_total", b"points_total"]) -> None: ... + +global___DataImportStatusDetails = DataImportStatusDetails + +@typing.final +class DataExportStatusDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ERROR_MESSAGE_FIELD_NUMBER: builtins.int + error_message: builtins.str + def __init__( + self, + *, + error_message: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["error_message", b"error_message"]) -> None: ... + +global___DataExportStatusDetails = DataExportStatusDetails + +@typing.final +class DataExportJobDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REQUEST_FIELD_NUMBER: builtins.int + STORAGE_KEY_FIELD_NUMBER: builtins.int + storage_key: builtins.str + @property + def request(self) -> sift.exports.v1.exports_pb2.ExportDataRequest: ... + def __init__( + self, + *, + request: sift.exports.v1.exports_pb2.ExportDataRequest | None = ..., + storage_key: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["request", b"request"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["request", b"request", "storage_key", b"storage_key"]) -> None: ... + +global___DataExportJobDetails = DataExportJobDetails + +@typing.final +class JobDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_EVALUATION_FIELD_NUMBER: builtins.int + DATA_IMPORT_FIELD_NUMBER: builtins.int + DATA_EXPORT_FIELD_NUMBER: builtins.int + @property + def rule_evaluation(self) -> global___RuleEvaluationJobDetails: ... + @property + def data_import(self) -> global___DataImportJobDetails: ... + @property + def data_export(self) -> global___DataExportJobDetails: ... + def __init__( + self, + *, + rule_evaluation: global___RuleEvaluationJobDetails | None = ..., + data_import: global___DataImportJobDetails | None = ..., + data_export: global___DataExportJobDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["data_export", b"data_export", "data_import", b"data_import", "details", b"details", "rule_evaluation", b"rule_evaluation"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["data_export", b"data_export", "data_import", b"data_import", "details", b"details", "rule_evaluation", b"rule_evaluation"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["details", b"details"]) -> typing.Literal["rule_evaluation", "data_import", "data_export"] | None: ... + +global___JobDetails = JobDetails + +@typing.final +class RuleEvaluationJobDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REPORT_ID_FIELD_NUMBER: builtins.int + report_id: builtins.str + def __init__( + self, + *, + report_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["report_id", b"report_id"]) -> None: ... + +global___RuleEvaluationJobDetails = RuleEvaluationJobDetails + +@typing.final +class DataImportJobDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DATA_IMPORT_ID_FIELD_NUMBER: builtins.int + data_import_id: builtins.str + def __init__( + self, + *, + data_import_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["data_import_id", b"data_import_id"]) -> None: ... + +global___DataImportJobDetails = DataImportJobDetails + @typing.final class ListJobsRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -132,7 +288,7 @@ class ListJobsRequest(google.protobuf.message.Message): filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are: - `job_id`, `created_by_user_id`, `modified_by_user_id`, `created_date`, `modified_date`, `started_date`, `completed_date` + `job_id`, `created_by_user_id`, `modified_by_user_id`, `created_date`, `modified_date`, `started_date`, `completed_date`, and `job_status` For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to this definition. Optional. """ @@ -201,3 +357,35 @@ class CancelJobResponse(google.protobuf.message.Message): ) -> None: ... global___CancelJobResponse = CancelJobResponse + +@typing.final +class RetryJobRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOB_ID_FIELD_NUMBER: builtins.int + job_id: builtins.str + def __init__( + self, + *, + job_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["job_id", b"job_id"]) -> None: ... + +global___RetryJobRequest = RetryJobRequest + +@typing.final +class RetryJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOB_FIELD_NUMBER: builtins.int + @property + def job(self) -> global___Job: ... + def __init__( + self, + *, + job: global___Job | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["job", b"job"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["job", b"job"]) -> None: ... + +global___RetryJobResponse = RetryJobResponse diff --git a/python/lib/sift/jobs/v1/jobs_pb2_grpc.py b/python/lib/sift/jobs/v1/jobs_pb2_grpc.py index fd7b997e4..31b8ce25d 100644 --- a/python/lib/sift/jobs/v1/jobs_pb2_grpc.py +++ b/python/lib/sift/jobs/v1/jobs_pb2_grpc.py @@ -24,6 +24,11 @@ def __init__(self, channel): request_serializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.CancelJobRequest.SerializeToString, response_deserializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.CancelJobResponse.FromString, ) + self.RetryJob = channel.unary_unary( + '/sift.jobs.v1.JobService/RetryJob', + request_serializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.RetryJobRequest.SerializeToString, + response_deserializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.RetryJobResponse.FromString, + ) class JobServiceServicer(object): @@ -45,6 +50,14 @@ def CancelJob(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def RetryJob(self, request, context): + """Requests a retry of a job. + Jobs that are finished, in progress or in the process of being cancelled are not affected. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_JobServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -58,6 +71,11 @@ def add_JobServiceServicer_to_server(servicer, server): request_deserializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.CancelJobRequest.FromString, response_serializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.CancelJobResponse.SerializeToString, ), + 'RetryJob': grpc.unary_unary_rpc_method_handler( + servicer.RetryJob, + request_deserializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.RetryJobRequest.FromString, + response_serializer=sift_dot_jobs_dot_v1_dot_jobs__pb2.RetryJobResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'sift.jobs.v1.JobService', rpc_method_handlers) @@ -101,3 +119,20 @@ def CancelJob(request, sift_dot_jobs_dot_v1_dot_jobs__pb2.CancelJobResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RetryJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.jobs.v1.JobService/RetryJob', + sift_dot_jobs_dot_v1_dot_jobs__pb2.RetryJobRequest.SerializeToString, + sift_dot_jobs_dot_v1_dot_jobs__pb2.RetryJobResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/lib/sift/jobs/v1/jobs_pb2_grpc.pyi b/python/lib/sift/jobs/v1/jobs_pb2_grpc.pyi index 875e90a3c..928a6e270 100644 --- a/python/lib/sift/jobs/v1/jobs_pb2_grpc.pyi +++ b/python/lib/sift/jobs/v1/jobs_pb2_grpc.pyi @@ -34,6 +34,14 @@ class JobServiceStub: Cancelled jobs have implementation-based behavior, but in every case it's valid to cancel a job at any time. """ + RetryJob: grpc.UnaryUnaryMultiCallable[ + sift.jobs.v1.jobs_pb2.RetryJobRequest, + sift.jobs.v1.jobs_pb2.RetryJobResponse, + ] + """Requests a retry of a job. + Jobs that are finished, in progress or in the process of being cancelled are not affected. + """ + class JobServiceAsyncStub: ListJobs: grpc.aio.UnaryUnaryMultiCallable[ sift.jobs.v1.jobs_pb2.ListJobsRequest, @@ -50,6 +58,14 @@ class JobServiceAsyncStub: Cancelled jobs have implementation-based behavior, but in every case it's valid to cancel a job at any time. """ + RetryJob: grpc.aio.UnaryUnaryMultiCallable[ + sift.jobs.v1.jobs_pb2.RetryJobRequest, + sift.jobs.v1.jobs_pb2.RetryJobResponse, + ] + """Requests a retry of a job. + Jobs that are finished, in progress or in the process of being cancelled are not affected. + """ + class JobServiceServicer(metaclass=abc.ABCMeta): @abc.abstractmethod def ListJobs( @@ -70,4 +86,14 @@ class JobServiceServicer(metaclass=abc.ABCMeta): Cancelled jobs have implementation-based behavior, but in every case it's valid to cancel a job at any time. """ + @abc.abstractmethod + def RetryJob( + self, + request: sift.jobs.v1.jobs_pb2.RetryJobRequest, + context: _ServicerContext, + ) -> typing.Union[sift.jobs.v1.jobs_pb2.RetryJobResponse, collections.abc.Awaitable[sift.jobs.v1.jobs_pb2.RetryJobResponse]]: + """Requests a retry of a job. + Jobs that are finished, in progress or in the process of being cancelled are not affected. + """ + def add_JobServiceServicer_to_server(servicer: JobServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/python/lib/sift/metadata/v1/metadata_pb2.py b/python/lib/sift/metadata/v1/metadata_pb2.py index 055442fa2..e833afe1b 100644 --- a/python/lib/sift/metadata/v1/metadata_pb2.py +++ b/python/lib/sift/metadata/v1/metadata_pb2.py @@ -18,7 +18,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/metadata/v1/metadata.proto\x12\x10sift.metadata.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xa8\x01\n\x0bMetadataKey\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12:\n\x04type\x18\x02 \x01(\x0e\x32!.sift.metadata.v1.MetadataKeyTypeB\x03\xe0\x41\x02R\x04type\x12\x44\n\rarchived_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\"\x85\x02\n\rMetadataValue\x12\x34\n\x03key\x18\x01 \x01(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x03key\x12#\n\x0cstring_value\x18\x02 \x01(\tH\x00R\x0bstringValue\x12#\n\x0cnumber_value\x18\x03 \x01(\x01H\x00R\x0bnumberValue\x12%\n\rboolean_value\x18\x04 \x01(\x08H\x00R\x0c\x62ooleanValue\x12\x44\n\rarchived_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDateB\x07\n\x05value\"a\n\x18\x43reateMetadataKeyRequest\x12\x45\n\x0cmetadata_key\x18\x01 \x01(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0bmetadataKey\"b\n\x19\x43reateMetadataKeyResponse\x12\x45\n\x0cmetadata_key\x18\x01 \x01(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0bmetadataKey\"i\n\x1a\x43reateMetadataValueRequest\x12K\n\x0emetadata_value\x18\x01 \x01(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\rmetadataValue\"j\n\x1b\x43reateMetadataValueResponse\x12K\n\x0emetadata_value\x18\x01 \x01(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\rmetadataValue\"\x9c\x01\n\x17ListMetadataKeysRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x86\x01\n\x18ListMetadataKeysResponse\x12\x42\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyR\x0cmetadataKeys\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xcf\x01\n\x19ListMetadataValuesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\x12/\n\x11metadata_key_name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0fmetadataKeyName\"\x8e\x01\n\x1aListMetadataValuesResponse\x12H\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x0emetadataValues\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"e\n\x1a\x41rchiveMetadataKeysRequest\x12G\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0cmetadataKeys\"\x1d\n\x1b\x41rchiveMetadataKeysResponse\"m\n\x1c\x41rchiveMetadataValuesRequest\x12M\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x0emetadataValues\"\x1f\n\x1d\x41rchiveMetadataValuesResponse\"\x97\x01\n\x1cUnarchiveMetadataKeysRequest\x12G\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0cmetadataKeys\x12.\n\x10unarchive_values\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01R\x0funarchiveValues\"\x1f\n\x1dUnarchiveMetadataKeysResponse\"o\n\x1eUnarchiveMetadataValuesRequest\x12M\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x0emetadataValues\"!\n\x1fUnarchiveMetadataValuesResponse\"d\n\x19\x44\x65leteMetadataKeysRequest\x12G\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0cmetadataKeys\"\x1c\n\x1a\x44\x65leteMetadataKeysResponse\"l\n\x1b\x44\x65leteMetadataValuesRequest\x12M\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x0emetadataValues\"\x1e\n\x1c\x44\x65leteMetadataValuesResponse\"\x93\x01\n\rMetadataUsage\x12 \n\tentity_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x65ntityId\x12$\n\x0b\x65ntity_type\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nentityType\x12:\n\x05value\x18\x03 \x01(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x05value\"\x9d\x01\n\x18ListMetadataUsageRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8d\x01\n\x19ListMetadataUsageResponse\x12H\n\x0fmetadata_usages\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataUsageR\x0emetadataUsages\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*\x8f\x01\n\x0fMetadataKeyType\x12!\n\x1dMETADATA_KEY_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18METADATA_KEY_TYPE_STRING\x10\x01\x12\x1c\n\x18METADATA_KEY_TYPE_NUMBER\x10\x02\x12\x1d\n\x19METADATA_KEY_TYPE_BOOLEAN\x10\x03\x32\xac\x11\n\x0fMetadataService\x12\xbc\x01\n\x11\x43reateMetadataKey\x12*.sift.metadata.v1.CreateMetadataKeyRequest\x1a+.sift.metadata.v1.CreateMetadataKeyResponse\"N\x92\x41+\x12\x11\x43reateMetadataKey\x1a\x16\x43reate a metadata key.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/metadata-keys:\x01*\x12\x96\x01\n\x13\x43reateMetadataValue\x12,.sift.metadata.v1.CreateMetadataValueRequest\x1a-.sift.metadata.v1.CreateMetadataValueResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/api/v1/metadata-values:\x01*\x12\xb2\x01\n\x10ListMetadataKeys\x12).sift.metadata.v1.ListMetadataKeysRequest\x1a*.sift.metadata.v1.ListMetadataKeysResponse\"G\x92\x41\'\x12\x10ListMetadataKeys\x1a\x13List metadata keys.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/metadata-keys\x12\xbe\x01\n\x12ListMetadataValues\x12+.sift.metadata.v1.ListMetadataValuesRequest\x1a,.sift.metadata.v1.ListMetadataValuesResponse\"M\x92\x41+\x12\x12ListMetadataValues\x1a\x15List metadata values.\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/metadata-values\x12\xcc\x01\n\x13\x41rchiveMetadataKeys\x12,.sift.metadata.v1.ArchiveMetadataKeysRequest\x1a-.sift.metadata.v1.ArchiveMetadataKeysResponse\"X\x92\x41-\x12\x13\x41rchiveMetadataKeys\x1a\x16\x41rchive metadata keys.\x82\xd3\xe4\x93\x02\"\"\x1d/api/v1/metadata-keys/archive:\x01*\x12\xd8\x01\n\x15\x41rchiveMetadataValues\x12..sift.metadata.v1.ArchiveMetadataValuesRequest\x1a/.sift.metadata.v1.ArchiveMetadataValuesResponse\"^\x92\x41\x31\x12\x15\x41rchiveMetadataValues\x1a\x18\x41rchive metadata values.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/metadata-values/archive:\x01*\x12\xd8\x01\n\x15UnarchiveMetadataKeys\x12..sift.metadata.v1.UnarchiveMetadataKeysRequest\x1a/.sift.metadata.v1.UnarchiveMetadataKeysResponse\"^\x92\x41\x31\x12\x15UnarchiveMetadataKeys\x1a\x18Unarchive metadata keys.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/metadata-keys/unarchive:\x01*\x12\xe4\x01\n\x17UnarchiveMetadataValues\x12\x30.sift.metadata.v1.UnarchiveMetadataValuesRequest\x1a\x31.sift.metadata.v1.UnarchiveMetadataValuesResponse\"d\x92\x41\x35\x12\x17UnarchiveMetadataValues\x1a\x1aUnarchive metadata values.\x82\xd3\xe4\x93\x02&\"!/api/v1/metadata-values/unarchive:\x01*\x12\xc6\x01\n\x12\x44\x65leteMetadataKeys\x12+.sift.metadata.v1.DeleteMetadataKeysRequest\x1a,.sift.metadata.v1.DeleteMetadataKeysResponse\"U\x92\x41+\x12\x12\x44\x65leteMetadataKeys\x1a\x15\x44\x65lete metadata keys.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/metadata-keys/delete:\x01*\x12\xd2\x01\n\x14\x44\x65leteMetadataValues\x12-.sift.metadata.v1.DeleteMetadataValuesRequest\x1a..sift.metadata.v1.DeleteMetadataValuesResponse\"[\x92\x41/\x12\x14\x44\x65leteMetadataValues\x1a\x17\x44\x65lete metadata values.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/metadata-values/delete:\x01*\x12\xc0\x01\n\x11ListMetadataUsage\x12*.sift.metadata.v1.ListMetadataUsageRequest\x1a+.sift.metadata.v1.ListMetadataUsageResponse\"R\x92\x41-\x12\x11ListMetadataUsage\x1a\x18List metadata key usage.\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/metadata-key-usageB\x9e\x01\n\x14\x63om.sift.metadata.v1B\rMetadataProtoP\x01\xa2\x02\x03SMX\xaa\x02\x10Sift.Metadata.V1\xca\x02\x10Sift\\Metadata\\V1\xe2\x02\x1cSift\\Metadata\\V1\\GPBMetadata\xea\x02\x12Sift::Metadata::V1\x92\x41\x14\x12\x12\n\x10Metadata serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/metadata/v1/metadata.proto\x12\x10sift.metadata.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xce\x01\n\x0bMetadataKey\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12:\n\x04type\x18\x02 \x01(\x0e\x32!.sift.metadata.v1.MetadataKeyTypeB\x03\xe0\x41\x02R\x04type\x12\x44\n\rarchived_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01R\nisArchived\"\xab\x02\n\rMetadataValue\x12\x34\n\x03key\x18\x01 \x01(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x03key\x12#\n\x0cstring_value\x18\x02 \x01(\tH\x00R\x0bstringValue\x12#\n\x0cnumber_value\x18\x03 \x01(\x01H\x00R\x0bnumberValue\x12%\n\rboolean_value\x18\x04 \x01(\x08H\x00R\x0c\x62ooleanValue\x12\x44\n\rarchived_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01R\nisArchivedB\x07\n\x05value\"a\n\x18\x43reateMetadataKeyRequest\x12\x45\n\x0cmetadata_key\x18\x01 \x01(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0bmetadataKey\"b\n\x19\x43reateMetadataKeyResponse\x12\x45\n\x0cmetadata_key\x18\x01 \x01(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0bmetadataKey\"i\n\x1a\x43reateMetadataValueRequest\x12K\n\x0emetadata_value\x18\x01 \x01(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\rmetadataValue\"j\n\x1b\x43reateMetadataValueResponse\x12K\n\x0emetadata_value\x18\x01 \x01(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\rmetadataValue\"\x9c\x01\n\x17ListMetadataKeysRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x86\x01\n\x18ListMetadataKeysResponse\x12\x42\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyR\x0cmetadataKeys\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xcf\x01\n\x19ListMetadataValuesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\x12/\n\x11metadata_key_name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0fmetadataKeyName\"\x8e\x01\n\x1aListMetadataValuesResponse\x12H\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x0emetadataValues\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"e\n\x1a\x41rchiveMetadataKeysRequest\x12G\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0cmetadataKeys\"\x1d\n\x1b\x41rchiveMetadataKeysResponse\"m\n\x1c\x41rchiveMetadataValuesRequest\x12M\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x0emetadataValues\"\x1f\n\x1d\x41rchiveMetadataValuesResponse\"\x97\x01\n\x1cUnarchiveMetadataKeysRequest\x12G\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0cmetadataKeys\x12.\n\x10unarchive_values\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01R\x0funarchiveValues\"\x1f\n\x1dUnarchiveMetadataKeysResponse\"o\n\x1eUnarchiveMetadataValuesRequest\x12M\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x0emetadataValues\"!\n\x1fUnarchiveMetadataValuesResponse\"d\n\x19\x44\x65leteMetadataKeysRequest\x12G\n\rmetadata_keys\x18\x01 \x03(\x0b\x32\x1d.sift.metadata.v1.MetadataKeyB\x03\xe0\x41\x02R\x0cmetadataKeys\"\x1c\n\x1a\x44\x65leteMetadataKeysResponse\"l\n\x1b\x44\x65leteMetadataValuesRequest\x12M\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x0emetadataValues\"\x1e\n\x1c\x44\x65leteMetadataValuesResponse\"\x93\x01\n\rMetadataUsage\x12 \n\tentity_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x65ntityId\x12$\n\x0b\x65ntity_type\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nentityType\x12:\n\x05value\x18\x03 \x01(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x05value\"\x9d\x01\n\x18ListMetadataUsageRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8d\x01\n\x19ListMetadataUsageResponse\x12H\n\x0fmetadata_usages\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataUsageR\x0emetadataUsages\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*\x8f\x01\n\x0fMetadataKeyType\x12!\n\x1dMETADATA_KEY_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18METADATA_KEY_TYPE_STRING\x10\x01\x12\x1c\n\x18METADATA_KEY_TYPE_NUMBER\x10\x02\x12\x1d\n\x19METADATA_KEY_TYPE_BOOLEAN\x10\x03\x32\xac\x11\n\x0fMetadataService\x12\xbc\x01\n\x11\x43reateMetadataKey\x12*.sift.metadata.v1.CreateMetadataKeyRequest\x1a+.sift.metadata.v1.CreateMetadataKeyResponse\"N\x92\x41+\x12\x11\x43reateMetadataKey\x1a\x16\x43reate a metadata key.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/metadata-keys:\x01*\x12\x96\x01\n\x13\x43reateMetadataValue\x12,.sift.metadata.v1.CreateMetadataValueRequest\x1a-.sift.metadata.v1.CreateMetadataValueResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/api/v1/metadata-values:\x01*\x12\xb2\x01\n\x10ListMetadataKeys\x12).sift.metadata.v1.ListMetadataKeysRequest\x1a*.sift.metadata.v1.ListMetadataKeysResponse\"G\x92\x41\'\x12\x10ListMetadataKeys\x1a\x13List metadata keys.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/metadata-keys\x12\xbe\x01\n\x12ListMetadataValues\x12+.sift.metadata.v1.ListMetadataValuesRequest\x1a,.sift.metadata.v1.ListMetadataValuesResponse\"M\x92\x41+\x12\x12ListMetadataValues\x1a\x15List metadata values.\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/metadata-values\x12\xcc\x01\n\x13\x41rchiveMetadataKeys\x12,.sift.metadata.v1.ArchiveMetadataKeysRequest\x1a-.sift.metadata.v1.ArchiveMetadataKeysResponse\"X\x92\x41-\x12\x13\x41rchiveMetadataKeys\x1a\x16\x41rchive metadata keys.\x82\xd3\xe4\x93\x02\"\"\x1d/api/v1/metadata-keys/archive:\x01*\x12\xd8\x01\n\x15\x41rchiveMetadataValues\x12..sift.metadata.v1.ArchiveMetadataValuesRequest\x1a/.sift.metadata.v1.ArchiveMetadataValuesResponse\"^\x92\x41\x31\x12\x15\x41rchiveMetadataValues\x1a\x18\x41rchive metadata values.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/metadata-values/archive:\x01*\x12\xd8\x01\n\x15UnarchiveMetadataKeys\x12..sift.metadata.v1.UnarchiveMetadataKeysRequest\x1a/.sift.metadata.v1.UnarchiveMetadataKeysResponse\"^\x92\x41\x31\x12\x15UnarchiveMetadataKeys\x1a\x18Unarchive metadata keys.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/metadata-keys/unarchive:\x01*\x12\xe4\x01\n\x17UnarchiveMetadataValues\x12\x30.sift.metadata.v1.UnarchiveMetadataValuesRequest\x1a\x31.sift.metadata.v1.UnarchiveMetadataValuesResponse\"d\x92\x41\x35\x12\x17UnarchiveMetadataValues\x1a\x1aUnarchive metadata values.\x82\xd3\xe4\x93\x02&\"!/api/v1/metadata-values/unarchive:\x01*\x12\xc6\x01\n\x12\x44\x65leteMetadataKeys\x12+.sift.metadata.v1.DeleteMetadataKeysRequest\x1a,.sift.metadata.v1.DeleteMetadataKeysResponse\"U\x92\x41+\x12\x12\x44\x65leteMetadataKeys\x1a\x15\x44\x65lete metadata keys.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/metadata-keys/delete:\x01*\x12\xd2\x01\n\x14\x44\x65leteMetadataValues\x12-.sift.metadata.v1.DeleteMetadataValuesRequest\x1a..sift.metadata.v1.DeleteMetadataValuesResponse\"[\x92\x41/\x12\x14\x44\x65leteMetadataValues\x1a\x17\x44\x65lete metadata values.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/metadata-values/delete:\x01*\x12\xc0\x01\n\x11ListMetadataUsage\x12*.sift.metadata.v1.ListMetadataUsageRequest\x1a+.sift.metadata.v1.ListMetadataUsageResponse\"R\x92\x41-\x12\x11ListMetadataUsage\x1a\x18List metadata key usage.\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/metadata-key-usageB\x9e\x01\n\x14\x63om.sift.metadata.v1B\rMetadataProtoP\x01\xa2\x02\x03SMX\xaa\x02\x10Sift.Metadata.V1\xca\x02\x10Sift\\Metadata\\V1\xe2\x02\x1cSift\\Metadata\\V1\\GPBMetadata\xea\x02\x12Sift::Metadata::V1\x92\x41\x14\x12\x12\n\x10Metadata serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,10 +32,14 @@ _globals['_METADATAKEY'].fields_by_name['type']._serialized_options = b'\340A\002' _globals['_METADATAKEY'].fields_by_name['archived_date']._loaded_options = None _globals['_METADATAKEY'].fields_by_name['archived_date']._serialized_options = b'\340A\001' + _globals['_METADATAKEY'].fields_by_name['is_archived']._loaded_options = None + _globals['_METADATAKEY'].fields_by_name['is_archived']._serialized_options = b'\340A\001' _globals['_METADATAVALUE'].fields_by_name['key']._loaded_options = None _globals['_METADATAVALUE'].fields_by_name['key']._serialized_options = b'\340A\002' _globals['_METADATAVALUE'].fields_by_name['archived_date']._loaded_options = None _globals['_METADATAVALUE'].fields_by_name['archived_date']._serialized_options = b'\340A\001' + _globals['_METADATAVALUE'].fields_by_name['is_archived']._loaded_options = None + _globals['_METADATAVALUE'].fields_by_name['is_archived']._serialized_options = b'\340A\001' _globals['_CREATEMETADATAKEYREQUEST'].fields_by_name['metadata_key']._loaded_options = None _globals['_CREATEMETADATAKEYREQUEST'].fields_by_name['metadata_key']._serialized_options = b'\340A\002' _globals['_CREATEMETADATAKEYRESPONSE'].fields_by_name['metadata_key']._loaded_options = None @@ -112,58 +116,58 @@ _globals['_METADATASERVICE'].methods_by_name['DeleteMetadataValues']._serialized_options = b'\222A/\022\024DeleteMetadataValues\032\027Delete metadata values.\202\323\344\223\002#\"\036/api/v1/metadata-values/delete:\001*' _globals['_METADATASERVICE'].methods_by_name['ListMetadataUsage']._loaded_options = None _globals['_METADATASERVICE'].methods_by_name['ListMetadataUsage']._serialized_options = b'\222A-\022\021ListMetadataUsage\032\030List metadata key usage.\202\323\344\223\002\034\022\032/api/v1/metadata-key-usage' - _globals['_METADATAKEYTYPE']._serialized_start=3039 - _globals['_METADATAKEYTYPE']._serialized_end=3182 + _globals['_METADATAKEYTYPE']._serialized_start=3115 + _globals['_METADATAKEYTYPE']._serialized_end=3258 _globals['_METADATAKEY']._serialized_start=198 - _globals['_METADATAKEY']._serialized_end=366 - _globals['_METADATAVALUE']._serialized_start=369 - _globals['_METADATAVALUE']._serialized_end=630 - _globals['_CREATEMETADATAKEYREQUEST']._serialized_start=632 - _globals['_CREATEMETADATAKEYREQUEST']._serialized_end=729 - _globals['_CREATEMETADATAKEYRESPONSE']._serialized_start=731 - _globals['_CREATEMETADATAKEYRESPONSE']._serialized_end=829 - _globals['_CREATEMETADATAVALUEREQUEST']._serialized_start=831 - _globals['_CREATEMETADATAVALUEREQUEST']._serialized_end=936 - _globals['_CREATEMETADATAVALUERESPONSE']._serialized_start=938 - _globals['_CREATEMETADATAVALUERESPONSE']._serialized_end=1044 - _globals['_LISTMETADATAKEYSREQUEST']._serialized_start=1047 - _globals['_LISTMETADATAKEYSREQUEST']._serialized_end=1203 - _globals['_LISTMETADATAKEYSRESPONSE']._serialized_start=1206 - _globals['_LISTMETADATAKEYSRESPONSE']._serialized_end=1340 - _globals['_LISTMETADATAVALUESREQUEST']._serialized_start=1343 - _globals['_LISTMETADATAVALUESREQUEST']._serialized_end=1550 - _globals['_LISTMETADATAVALUESRESPONSE']._serialized_start=1553 - _globals['_LISTMETADATAVALUESRESPONSE']._serialized_end=1695 - _globals['_ARCHIVEMETADATAKEYSREQUEST']._serialized_start=1697 - _globals['_ARCHIVEMETADATAKEYSREQUEST']._serialized_end=1798 - _globals['_ARCHIVEMETADATAKEYSRESPONSE']._serialized_start=1800 - _globals['_ARCHIVEMETADATAKEYSRESPONSE']._serialized_end=1829 - _globals['_ARCHIVEMETADATAVALUESREQUEST']._serialized_start=1831 - _globals['_ARCHIVEMETADATAVALUESREQUEST']._serialized_end=1940 - _globals['_ARCHIVEMETADATAVALUESRESPONSE']._serialized_start=1942 - _globals['_ARCHIVEMETADATAVALUESRESPONSE']._serialized_end=1973 - _globals['_UNARCHIVEMETADATAKEYSREQUEST']._serialized_start=1976 - _globals['_UNARCHIVEMETADATAKEYSREQUEST']._serialized_end=2127 - _globals['_UNARCHIVEMETADATAKEYSRESPONSE']._serialized_start=2129 - _globals['_UNARCHIVEMETADATAKEYSRESPONSE']._serialized_end=2160 - _globals['_UNARCHIVEMETADATAVALUESREQUEST']._serialized_start=2162 - _globals['_UNARCHIVEMETADATAVALUESREQUEST']._serialized_end=2273 - _globals['_UNARCHIVEMETADATAVALUESRESPONSE']._serialized_start=2275 - _globals['_UNARCHIVEMETADATAVALUESRESPONSE']._serialized_end=2308 - _globals['_DELETEMETADATAKEYSREQUEST']._serialized_start=2310 - _globals['_DELETEMETADATAKEYSREQUEST']._serialized_end=2410 - _globals['_DELETEMETADATAKEYSRESPONSE']._serialized_start=2412 - _globals['_DELETEMETADATAKEYSRESPONSE']._serialized_end=2440 - _globals['_DELETEMETADATAVALUESREQUEST']._serialized_start=2442 - _globals['_DELETEMETADATAVALUESREQUEST']._serialized_end=2550 - _globals['_DELETEMETADATAVALUESRESPONSE']._serialized_start=2552 - _globals['_DELETEMETADATAVALUESRESPONSE']._serialized_end=2582 - _globals['_METADATAUSAGE']._serialized_start=2585 - _globals['_METADATAUSAGE']._serialized_end=2732 - _globals['_LISTMETADATAUSAGEREQUEST']._serialized_start=2735 - _globals['_LISTMETADATAUSAGEREQUEST']._serialized_end=2892 - _globals['_LISTMETADATAUSAGERESPONSE']._serialized_start=2895 - _globals['_LISTMETADATAUSAGERESPONSE']._serialized_end=3036 - _globals['_METADATASERVICE']._serialized_start=3185 - _globals['_METADATASERVICE']._serialized_end=5405 + _globals['_METADATAKEY']._serialized_end=404 + _globals['_METADATAVALUE']._serialized_start=407 + _globals['_METADATAVALUE']._serialized_end=706 + _globals['_CREATEMETADATAKEYREQUEST']._serialized_start=708 + _globals['_CREATEMETADATAKEYREQUEST']._serialized_end=805 + _globals['_CREATEMETADATAKEYRESPONSE']._serialized_start=807 + _globals['_CREATEMETADATAKEYRESPONSE']._serialized_end=905 + _globals['_CREATEMETADATAVALUEREQUEST']._serialized_start=907 + _globals['_CREATEMETADATAVALUEREQUEST']._serialized_end=1012 + _globals['_CREATEMETADATAVALUERESPONSE']._serialized_start=1014 + _globals['_CREATEMETADATAVALUERESPONSE']._serialized_end=1120 + _globals['_LISTMETADATAKEYSREQUEST']._serialized_start=1123 + _globals['_LISTMETADATAKEYSREQUEST']._serialized_end=1279 + _globals['_LISTMETADATAKEYSRESPONSE']._serialized_start=1282 + _globals['_LISTMETADATAKEYSRESPONSE']._serialized_end=1416 + _globals['_LISTMETADATAVALUESREQUEST']._serialized_start=1419 + _globals['_LISTMETADATAVALUESREQUEST']._serialized_end=1626 + _globals['_LISTMETADATAVALUESRESPONSE']._serialized_start=1629 + _globals['_LISTMETADATAVALUESRESPONSE']._serialized_end=1771 + _globals['_ARCHIVEMETADATAKEYSREQUEST']._serialized_start=1773 + _globals['_ARCHIVEMETADATAKEYSREQUEST']._serialized_end=1874 + _globals['_ARCHIVEMETADATAKEYSRESPONSE']._serialized_start=1876 + _globals['_ARCHIVEMETADATAKEYSRESPONSE']._serialized_end=1905 + _globals['_ARCHIVEMETADATAVALUESREQUEST']._serialized_start=1907 + _globals['_ARCHIVEMETADATAVALUESREQUEST']._serialized_end=2016 + _globals['_ARCHIVEMETADATAVALUESRESPONSE']._serialized_start=2018 + _globals['_ARCHIVEMETADATAVALUESRESPONSE']._serialized_end=2049 + _globals['_UNARCHIVEMETADATAKEYSREQUEST']._serialized_start=2052 + _globals['_UNARCHIVEMETADATAKEYSREQUEST']._serialized_end=2203 + _globals['_UNARCHIVEMETADATAKEYSRESPONSE']._serialized_start=2205 + _globals['_UNARCHIVEMETADATAKEYSRESPONSE']._serialized_end=2236 + _globals['_UNARCHIVEMETADATAVALUESREQUEST']._serialized_start=2238 + _globals['_UNARCHIVEMETADATAVALUESREQUEST']._serialized_end=2349 + _globals['_UNARCHIVEMETADATAVALUESRESPONSE']._serialized_start=2351 + _globals['_UNARCHIVEMETADATAVALUESRESPONSE']._serialized_end=2384 + _globals['_DELETEMETADATAKEYSREQUEST']._serialized_start=2386 + _globals['_DELETEMETADATAKEYSREQUEST']._serialized_end=2486 + _globals['_DELETEMETADATAKEYSRESPONSE']._serialized_start=2488 + _globals['_DELETEMETADATAKEYSRESPONSE']._serialized_end=2516 + _globals['_DELETEMETADATAVALUESREQUEST']._serialized_start=2518 + _globals['_DELETEMETADATAVALUESREQUEST']._serialized_end=2626 + _globals['_DELETEMETADATAVALUESRESPONSE']._serialized_start=2628 + _globals['_DELETEMETADATAVALUESRESPONSE']._serialized_end=2658 + _globals['_METADATAUSAGE']._serialized_start=2661 + _globals['_METADATAUSAGE']._serialized_end=2808 + _globals['_LISTMETADATAUSAGEREQUEST']._serialized_start=2811 + _globals['_LISTMETADATAUSAGEREQUEST']._serialized_end=2968 + _globals['_LISTMETADATAUSAGERESPONSE']._serialized_start=2971 + _globals['_LISTMETADATAUSAGERESPONSE']._serialized_end=3112 + _globals['_METADATASERVICE']._serialized_start=3261 + _globals['_METADATASERVICE']._serialized_end=5481 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/metadata/v1/metadata_pb2.pyi b/python/lib/sift/metadata/v1/metadata_pb2.pyi index 4c8cb49a7..6aacbdf0b 100644 --- a/python/lib/sift/metadata/v1/metadata_pb2.pyi +++ b/python/lib/sift/metadata/v1/metadata_pb2.pyi @@ -53,8 +53,11 @@ class MetadataKey(google.protobuf.message.Message): NAME_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int ARCHIVED_DATE_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int name: builtins.str type: global___MetadataKeyType.ValueType + is_archived: builtins.bool + """Whether the metadata key is archived. This is inferred from whether archived_date is set.""" @property def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... def __init__( @@ -63,9 +66,10 @@ class MetadataKey(google.protobuf.message.Message): name: builtins.str = ..., type: global___MetadataKeyType.ValueType = ..., archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["archived_date", b"archived_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "name", b"name", "type", b"type"]) -> None: ... + def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "is_archived", b"is_archived", "name", b"name", "type", b"type"]) -> None: ... global___MetadataKey = MetadataKey @@ -78,9 +82,12 @@ class MetadataValue(google.protobuf.message.Message): NUMBER_VALUE_FIELD_NUMBER: builtins.int BOOLEAN_VALUE_FIELD_NUMBER: builtins.int ARCHIVED_DATE_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int string_value: builtins.str number_value: builtins.float boolean_value: builtins.bool + is_archived: builtins.bool + """Whether the metadata value is archived. This is inferred from whether archived_date is set.""" @property def key(self) -> global___MetadataKey: ... @property @@ -93,9 +100,10 @@ class MetadataValue(google.protobuf.message.Message): number_value: builtins.float = ..., boolean_value: builtins.bool = ..., archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["archived_date", b"archived_date", "boolean_value", b"boolean_value", "key", b"key", "number_value", b"number_value", "string_value", b"string_value", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "boolean_value", b"boolean_value", "key", b"key", "number_value", b"number_value", "string_value", b"string_value", "value", b"value"]) -> None: ... + def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "boolean_value", b"boolean_value", "is_archived", b"is_archived", "key", b"key", "number_value", b"number_value", "string_value", b"string_value", "value", b"value"]) -> None: ... def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["string_value", "number_value", "boolean_value"] | None: ... global___MetadataValue = MetadataValue @@ -200,7 +208,7 @@ class ListMetadataKeysRequest(google.protobuf.message.Message): filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are: - `name`. + `name`, `archived_date`, and `is_archived`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to this definition. Optional. """ @@ -267,7 +275,7 @@ class ListMetadataValuesRequest(google.protobuf.message.Message): filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are: - `value_string`, `value_number`, and `value_boolean`. + `value_string`, `value_number`, `value_boolean`, `archived_date`, and `is_archived`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to this definition. Optional. """ diff --git a/python/lib/sift/notifications/v1/notifications_pb2.py b/python/lib/sift/notifications/v1/notifications_pb2.py index 1516e2fb0..1142378bd 100644 --- a/python/lib/sift/notifications/v1/notifications_pb2.py +++ b/python/lib/sift/notifications/v1/notifications_pb2.py @@ -19,7 +19,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)sift/notifications/v1/notifications.proto\x12\x15sift.notifications.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xad\x04\n\x0cNotification\x12\'\n\x0fnotification_id\x18\x01 \x01(\tR\x0enotificationId\x12=\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0b\x63reatedDate\x12?\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0cmodifiedDate\x12+\n\x12\x63reated_by_user_id\x18\x04 \x01(\tR\x0f\x63reatedByUserId\x12-\n\x13modified_by_user_id\x18\x05 \x01(\tR\x10modifiedByUserId\x12\'\n\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId\x12*\n\x11recipient_user_id\x18\x07 \x01(\tR\x0frecipientUserId\x12\x17\n\x07is_read\x18\x08 \x01(\x08R\x06isRead\x12\x1b\n\tfull_link\x18\t \x01(\tR\x08\x66ullLink\x12T\n\x11notification_type\x18\n \x01(\x0e\x32\'.sift.notifications.v1.NotificationKindR\x10notificationType\x12\x1a\n\x08\x63ontents\x18\x0b \x01(\tR\x08\x63ontents\x12\x1b\n\tentity_id\x18\x0c \x01(\tR\x08\x65ntityId\"}\n\x18ListNotificationsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\"\x8e\x01\n\x19ListNotificationsResponse\x12I\n\rnotifications\x18\x01 \x03(\x0b\x32#.sift.notifications.v1.NotificationR\rnotifications\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"t\n\x1f\x42\x61tchUpdateNotificationsRequest\x12Q\n\x08requests\x18\x01 \x03(\x0b\x32\x30.sift.notifications.v1.UpdateNotificationRequestB\x03\xe0\x41\x02R\x08requests\"\xab\x01\n\x19UpdateNotificationRequest\x12L\n\x0cnotification\x18\x01 \x01(\x0b\x32#.sift.notifications.v1.NotificationB\x03\xe0\x41\x02R\x0cnotification\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"m\n BatchUpdateNotificationsResponse\x12I\n\rnotifications\x18\x01 \x03(\x0b\x32#.sift.notifications.v1.NotificationR\rnotifications*\xb2\x02\n\x10NotificationKind\x12!\n\x1dNOTIFICATION_KIND_UNSPECIFIED\x10\x00\x12\x1a\n\x16NOTIFICATION_KIND_TEXT\x10\x01\x12)\n%NOTIFICATION_KIND_ANNOTATION_ASSIGNED\x10\x02\x12\x35\n1NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT\x10\x03\x12)\n%NOTIFICATION_KIND_CONDITION_TRIGGERED\x10\x04\x12.\n*NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED\x10\x05\x12\"\n\x1eNOTIFICATION_KIND_REPORT_READY\x10\x06\x32\x85\x05\n\x13NotificationService\x12\xde\x01\n\x11ListNotifications\x12/.sift.notifications.v1.ListNotificationsRequest\x1a\x30.sift.notifications.v1.ListNotificationsResponse\"f\x92\x41\x46\x12\x11ListNotifications\x1a\x31Retrieves notifications using an optional filter.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/notifications\x12\xc6\x02\n\x18\x42\x61tchUpdateNotifications\x12\x36.sift.notifications.v1.BatchUpdateNotificationsRequest\x1a\x37.sift.notifications.v1.BatchUpdateNotificationsResponse\"\xb8\x01\x92\x41\x88\x01\x12\x18\x42\x61tchUpdateNotifications\x1alBatch updates a list of notifications using the list of fields specified in their respective `update_mask`s.\x82\xd3\xe4\x93\x02&\"!/api/v1/notifications:batchUpdate:\x01*\x1a\x44\x92\x41\x41\x12?Service to programmatically interact with in-app notifications.B\xc0\x01\n\x19\x63om.sift.notifications.v1B\x12NotificationsProtoP\x01\xa2\x02\x03SNX\xaa\x02\x15Sift.Notifications.V1\xca\x02\x15Sift\\Notifications\\V1\xe2\x02!Sift\\Notifications\\V1\\GPBMetadata\xea\x02\x17Sift::Notifications::V1\x92\x41\x18\x12\x16\n\x14Notification Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)sift/notifications/v1/notifications.proto\x12\x15sift.notifications.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xad\x04\n\x0cNotification\x12\'\n\x0fnotification_id\x18\x01 \x01(\tR\x0enotificationId\x12=\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0b\x63reatedDate\x12?\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0cmodifiedDate\x12+\n\x12\x63reated_by_user_id\x18\x04 \x01(\tR\x0f\x63reatedByUserId\x12-\n\x13modified_by_user_id\x18\x05 \x01(\tR\x10modifiedByUserId\x12\'\n\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId\x12*\n\x11recipient_user_id\x18\x07 \x01(\tR\x0frecipientUserId\x12\x17\n\x07is_read\x18\x08 \x01(\x08R\x06isRead\x12\x1b\n\tfull_link\x18\t \x01(\tR\x08\x66ullLink\x12T\n\x11notification_type\x18\n \x01(\x0e\x32\'.sift.notifications.v1.NotificationKindR\x10notificationType\x12\x1a\n\x08\x63ontents\x18\x0b \x01(\tR\x08\x63ontents\x12\x1b\n\tentity_id\x18\x0c \x01(\tR\x08\x65ntityId\"}\n\x18ListNotificationsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\"\x8e\x01\n\x19ListNotificationsResponse\x12I\n\rnotifications\x18\x01 \x03(\x0b\x32#.sift.notifications.v1.NotificationR\rnotifications\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"t\n\x1f\x42\x61tchUpdateNotificationsRequest\x12Q\n\x08requests\x18\x01 \x03(\x0b\x32\x30.sift.notifications.v1.UpdateNotificationRequestB\x03\xe0\x41\x02R\x08requests\"\xab\x01\n\x19UpdateNotificationRequest\x12L\n\x0cnotification\x18\x01 \x01(\x0b\x32#.sift.notifications.v1.NotificationB\x03\xe0\x41\x02R\x0cnotification\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"m\n BatchUpdateNotificationsResponse\x12I\n\rnotifications\x18\x01 \x03(\x0b\x32#.sift.notifications.v1.NotificationR\rnotifications*\xdb\x02\n\x10NotificationKind\x12!\n\x1dNOTIFICATION_KIND_UNSPECIFIED\x10\x00\x12\x1a\n\x16NOTIFICATION_KIND_TEXT\x10\x01\x12)\n%NOTIFICATION_KIND_ANNOTATION_ASSIGNED\x10\x02\x12\x35\n1NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT\x10\x03\x12)\n%NOTIFICATION_KIND_CONDITION_TRIGGERED\x10\x04\x12.\n*NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED\x10\x05\x12\"\n\x1eNOTIFICATION_KIND_REPORT_READY\x10\x06\x12\'\n#NOTIFICATION_KIND_DATA_EXPORT_READY\x10\x07\x32\x85\x05\n\x13NotificationService\x12\xde\x01\n\x11ListNotifications\x12/.sift.notifications.v1.ListNotificationsRequest\x1a\x30.sift.notifications.v1.ListNotificationsResponse\"f\x92\x41\x46\x12\x11ListNotifications\x1a\x31Retrieves notifications using an optional filter.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/notifications\x12\xc6\x02\n\x18\x42\x61tchUpdateNotifications\x12\x36.sift.notifications.v1.BatchUpdateNotificationsRequest\x1a\x37.sift.notifications.v1.BatchUpdateNotificationsResponse\"\xb8\x01\x92\x41\x88\x01\x12\x18\x42\x61tchUpdateNotifications\x1alBatch updates a list of notifications using the list of fields specified in their respective `update_mask`s.\x82\xd3\xe4\x93\x02&\"!/api/v1/notifications:batchUpdate:\x01*\x1a\x44\x92\x41\x41\x12?Service to programmatically interact with in-app notifications.B\xc0\x01\n\x19\x63om.sift.notifications.v1B\x12NotificationsProtoP\x01\xa2\x02\x03SNX\xaa\x02\x15Sift.Notifications.V1\xca\x02\x15Sift\\Notifications\\V1\xe2\x02!Sift\\Notifications\\V1\\GPBMetadata\xea\x02\x17Sift::Notifications::V1\x92\x41\x18\x12\x16\n\x14Notification Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -46,7 +46,7 @@ _globals['_NOTIFICATIONSERVICE'].methods_by_name['BatchUpdateNotifications']._loaded_options = None _globals['_NOTIFICATIONSERVICE'].methods_by_name['BatchUpdateNotifications']._serialized_options = b'\222A\210\001\022\030BatchUpdateNotifications\032lBatch updates a list of notifications using the list of fields specified in their respective `update_mask`s.\202\323\344\223\002&\"!/api/v1/notifications:batchUpdate:\001*' _globals['_NOTIFICATIONKIND']._serialized_start=1482 - _globals['_NOTIFICATIONKIND']._serialized_end=1788 + _globals['_NOTIFICATIONKIND']._serialized_end=1829 _globals['_NOTIFICATION']._serialized_start=247 _globals['_NOTIFICATION']._serialized_end=804 _globals['_LISTNOTIFICATIONSREQUEST']._serialized_start=806 @@ -59,6 +59,6 @@ _globals['_UPDATENOTIFICATIONREQUEST']._serialized_end=1368 _globals['_BATCHUPDATENOTIFICATIONSRESPONSE']._serialized_start=1370 _globals['_BATCHUPDATENOTIFICATIONSRESPONSE']._serialized_end=1479 - _globals['_NOTIFICATIONSERVICE']._serialized_start=1791 - _globals['_NOTIFICATIONSERVICE']._serialized_end=2436 + _globals['_NOTIFICATIONSERVICE']._serialized_start=1832 + _globals['_NOTIFICATIONSERVICE']._serialized_end=2477 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/notifications/v1/notifications_pb2.pyi b/python/lib/sift/notifications/v1/notifications_pb2.pyi index c0040e764..b6a58a14f 100644 --- a/python/lib/sift/notifications/v1/notifications_pb2.pyi +++ b/python/lib/sift/notifications/v1/notifications_pb2.pyi @@ -34,6 +34,7 @@ class _NotificationKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrappe NOTIFICATION_KIND_CONDITION_TRIGGERED: _NotificationKind.ValueType # 4 NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED: _NotificationKind.ValueType # 5 NOTIFICATION_KIND_REPORT_READY: _NotificationKind.ValueType # 6 + NOTIFICATION_KIND_DATA_EXPORT_READY: _NotificationKind.ValueType # 7 class NotificationKind(_NotificationKind, metaclass=_NotificationKindEnumTypeWrapper): ... @@ -44,6 +45,7 @@ NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT: NotificationKind.ValueType # NOTIFICATION_KIND_CONDITION_TRIGGERED: NotificationKind.ValueType # 4 NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED: NotificationKind.ValueType # 5 NOTIFICATION_KIND_REPORT_READY: NotificationKind.ValueType # 6 +NOTIFICATION_KIND_DATA_EXPORT_READY: NotificationKind.ValueType # 7 global___NotificationKind = NotificationKind @typing.final diff --git a/python/lib/sift/options/__init__.py b/python/lib/sift/options/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/options/v1/__init__.py b/python/lib/sift/options/v1/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/options/v1/safe_to_log_pb2.py b/python/lib/sift/options/v1/safe_to_log_pb2.py new file mode 100644 index 000000000..3c569773c --- /dev/null +++ b/python/lib/sift/options/v1/safe_to_log_pb2.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sift/options/v1/safe_to_log.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sift/options/v1/safe_to_log.proto\x12\x0fsift.options.v1\x1a google/protobuf/descriptor.proto:A\n\x0bsafe_to_log\x12\x1f.google.protobuf.MessageOptions\x18\xf0\xa2\x04 \x01(\x08R\tsafeToLogB\x83\x01\n\x13\x63om.sift.options.v1B\x0eSafeToLogProtoP\x01\xa2\x02\x03SOX\xaa\x02\x0fSift.Options.V1\xca\x02\x0fSift\\Options\\V1\xe2\x02\x1bSift\\Options\\V1\\GPBMetadata\xea\x02\x11Sift::Options::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.options.v1.safe_to_log_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\023com.sift.options.v1B\016SafeToLogProtoP\001\242\002\003SOX\252\002\017Sift.Options.V1\312\002\017Sift\\Options\\V1\342\002\033Sift\\Options\\V1\\GPBMetadata\352\002\021Sift::Options::V1' +# @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/options/v1/safe_to_log_pb2.pyi b/python/lib/sift/options/v1/safe_to_log_pb2.pyi new file mode 100644 index 000000000..8151c5c9d --- /dev/null +++ b/python/lib/sift/options/v1/safe_to_log_pb2.pyi @@ -0,0 +1,14 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.descriptor_pb2 +import google.protobuf.internal.extension_dict + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +SAFE_TO_LOG_FIELD_NUMBER: builtins.int +safe_to_log: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.bool] diff --git a/python/lib/sift/options/v1/safe_to_log_pb2_grpc.py b/python/lib/sift/options/v1/safe_to_log_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/python/lib/sift/options/v1/safe_to_log_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/python/lib/sift/options/v1/safe_to_log_pb2_grpc.pyi b/python/lib/sift/options/v1/safe_to_log_pb2_grpc.pyi new file mode 100644 index 000000000..a6a9cff9d --- /dev/null +++ b/python/lib/sift/options/v1/safe_to_log_pb2_grpc.pyi @@ -0,0 +1,17 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... diff --git a/python/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2.py b/python/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2.py index 15f9014df..42d5236a5 100644 --- a/python/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2.py +++ b/python/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2.py @@ -18,7 +18,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n7sift/protobuf_descriptors/v2/protobuf_descriptors.proto\x12\x1csift.protobuf_descriptors.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xdc\x01\n DeleteProtobufDescriptorsRequest\x12\x37\n\x16message_type_full_name\x18\x01 \x01(\tB\x02\x18\x01R\x13messageTypeFullName\x12 \n\tnamespace\x18\x02 \x01(\tB\x02\x18\x01R\tnamespace\x12\'\n\x0forganization_id\x18\x03 \x01(\tR\x0eorganizationId\x12\x34\n\x16protobuf_descriptor_id\x18\x04 \x01(\tR\x14protobufDescriptorId\"#\n!DeleteProtobufDescriptorsResponse\"\xc3\x01\n\x1c\x41\x64\x64ProtobufDescriptorRequest\x12\x61\n\x13protobuf_descriptor\x18\x01 \x01(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x12protobufDescriptor\x12@\n\x1c\x66orce_duplicate_registration\x18\x02 \x01(\x08R\x1a\x66orceDuplicateRegistration\"\x82\x01\n\x1d\x41\x64\x64ProtobufDescriptorResponse\x12\x61\n\x13protobuf_descriptor\x18\x01 \x01(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x12protobufDescriptor\"\x90\x01\n+CheckProtobufDescriptorCompatibilityRequest\x12\x61\n\x13protobuf_descriptor\x18\x01 \x01(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x12protobufDescriptor\"\xcd\x02\n\x19IncompatibleProtobufField\x12\x34\n\x16protobuf_descriptor_id\x18\x01 \x01(\tR\x14protobufDescriptorId\x12*\n\x11message_full_name\x18\x02 \x01(\tR\x0fmessageFullName\x12,\n\x12\x64\x65sired_field_name\x18\x03 \x01(\tR\x10\x64\x65siredFieldName\x12,\n\x12\x63urrent_field_name\x18\x04 \x01(\tR\x10\x63urrentFieldName\x12!\n\x0c\x66ield_number\x18\x05 \x01(\tR\x0b\x66ieldNumber\x12\x16\n\x06reason\x18\x06 \x01(\tR\x06reason\x12\x18\n\x07\x64\x65tails\x18\x07 \x01(\tR\x07\x64\x65tails\x12\x1d\n\nfield_kind\x18\x08 \x01(\tR\tfieldKind\"\xda\x01\n,CheckProtobufDescriptorCompatibilityResponse\x12\x19\n\x08is_valid\x18\x01 \x01(\x08R\x07isValid\x12\x8e\x01\n\'incompatible_protobuf_descriptor_fields\x18\x02 \x03(\x0b\x32\x37.sift.protobuf_descriptors.v2.IncompatibleProtobufFieldR$incompatibleProtobufDescriptorFields\"\xb9\x02\n\x12ProtobufDescriptor\x12\x33\n\x16message_type_full_name\x18\x01 \x01(\tR\x13messageTypeFullName\x12.\n\x13\x66ile_descriptor_set\x18\x02 \x01(\x0cR\x11\x66ileDescriptorSet\x12&\n\x0fproto_file_name\x18\x03 \x01(\tR\rprotoFileName\x12\x1c\n\tnamespace\x18\x04 \x01(\tR\tnamespace\x12\x34\n\x16protobuf_descriptor_id\x18\x05 \x01(\tR\x14protobufDescriptorId\x12\x42\n\x0c\x63reated_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0b\x63reatedDate\"\xa3\x01\n\x1eListProtobufDescriptorsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xae\x01\n\x1fListProtobufDescriptorsResponse\x12\x63\n\x14protobuf_descriptors\x18\x01 \x03(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x13protobufDescriptors\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\x8f\r\n\x19ProtobufDescriptorService\x12\xbd\x02\n\x15\x41\x64\x64ProtobufDescriptor\x12:.sift.protobuf_descriptors.v2.AddProtobufDescriptorRequest\x1a;.sift.protobuf_descriptors.v2.AddProtobufDescriptorResponse\"\xaa\x01\x92\x41\x7f\x12\x15\x41\x64\x64ProtobufDescriptor\x1a\x33Used to register a protobuf message to be ingested.*1ProtobufDescriptorService_AddProtobufDescriptorV2\x82\xd3\xe4\x93\x02\"\" /api/v2/protobuf-descriptors:add\x12\xb9\x03\n$CheckProtobufDescriptorCompatibility\x12I.sift.protobuf_descriptors.v2.CheckProtobufDescriptorCompatibilityRequest\x1aJ.sift.protobuf_descriptors.v2.CheckProtobufDescriptorCompatibilityResponse\"\xf9\x01\x92\x41\xbd\x01\x12$CheckProtobufDescriptorCompatibility\x1aSUsed to check if a protobuf descriptor is compatible with the existing descriptors.*@ProtobufDescriptorService_CheckProtobufDescriptorCompatibilityV2\x82\xd3\xe4\x93\x02\x32\"0/api/v2/protobuf-descriptors:check-compatibility\x12\xfb\x02\n\x19\x44\x65leteProtobufDescriptors\x12>.sift.protobuf_descriptors.v2.DeleteProtobufDescriptorsRequest\x1a?.sift.protobuf_descriptors.v2.DeleteProtobufDescriptorsResponse\"\xdc\x01\x92\x41\xb4\x01\x12\x19\x44\x65leteProtobufDescriptors\x1a`Delete protobuf descriptors of that match the provided `namespace` and `message_type_full_name`.*5ProtobufDescriptorService_DeleteProtobufDescriptorsV2\x82\xd3\xe4\x93\x02\x1e*\x1c/api/v2/protobuf-descriptors\x12\xc8\x02\n\x17ListProtobufDescriptors\x12<.sift.protobuf_descriptors.v2.ListProtobufDescriptorsRequest\x1a=.sift.protobuf_descriptors.v2.ListProtobufDescriptorsResponse\"\xaf\x01\x92\x41\x87\x01\x12\x17ListProtobufDescriptors\x1a\x37Retrieve protobuf descriptors using an optional filter.*3ProtobufDescriptorService_ListProtobufDescriptorsV2\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v2/protobuf-descriptors\x1a\xac\x01\x92\x41\xa8\x01\x12[Service to programmatically interact with protobuf descriptors used for protobuf ingestion.\x1aI\n(Read more about what protobuf ingestion.\x12\x1d/ingestion/protobuf_ingestionB\xec\x01\n com.sift.protobuf_descriptors.v2B\x18ProtobufDescriptorsProtoP\x01\xa2\x02\x03SPX\xaa\x02\x1bSift.ProtobufDescriptors.V2\xca\x02\x1bSift\\ProtobufDescriptors\\V2\xe2\x02\'Sift\\ProtobufDescriptors\\V2\\GPBMetadata\xea\x02\x1dSift::ProtobufDescriptors::V2\x92\x41\x1f\x12\x1d\n\x1bProtobuf Descriptor Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n7sift/protobuf_descriptors/v2/protobuf_descriptors.proto\x12\x1csift.protobuf_descriptors.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xdc\x01\n DeleteProtobufDescriptorsRequest\x12\x37\n\x16message_type_full_name\x18\x01 \x01(\tB\x02\x18\x01R\x13messageTypeFullName\x12 \n\tnamespace\x18\x02 \x01(\tB\x02\x18\x01R\tnamespace\x12\'\n\x0forganization_id\x18\x03 \x01(\tR\x0eorganizationId\x12\x34\n\x16protobuf_descriptor_id\x18\x04 \x01(\tR\x14protobufDescriptorId\"#\n!DeleteProtobufDescriptorsResponse\"\xc3\x01\n\x1c\x41\x64\x64ProtobufDescriptorRequest\x12\x61\n\x13protobuf_descriptor\x18\x01 \x01(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x12protobufDescriptor\x12@\n\x1c\x66orce_duplicate_registration\x18\x02 \x01(\x08R\x1a\x66orceDuplicateRegistration\"\x82\x01\n\x1d\x41\x64\x64ProtobufDescriptorResponse\x12\x61\n\x13protobuf_descriptor\x18\x01 \x01(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x12protobufDescriptor\"\x90\x01\n+CheckProtobufDescriptorCompatibilityRequest\x12\x61\n\x13protobuf_descriptor\x18\x01 \x01(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x12protobufDescriptor\"\xcd\x02\n\x19IncompatibleProtobufField\x12\x34\n\x16protobuf_descriptor_id\x18\x01 \x01(\tR\x14protobufDescriptorId\x12*\n\x11message_full_name\x18\x02 \x01(\tR\x0fmessageFullName\x12,\n\x12\x64\x65sired_field_name\x18\x03 \x01(\tR\x10\x64\x65siredFieldName\x12,\n\x12\x63urrent_field_name\x18\x04 \x01(\tR\x10\x63urrentFieldName\x12!\n\x0c\x66ield_number\x18\x05 \x01(\tR\x0b\x66ieldNumber\x12\x16\n\x06reason\x18\x06 \x01(\tR\x06reason\x12\x18\n\x07\x64\x65tails\x18\x07 \x01(\tR\x07\x64\x65tails\x12\x1d\n\nfield_kind\x18\x08 \x01(\tR\tfieldKind\"\xda\x01\n,CheckProtobufDescriptorCompatibilityResponse\x12\x19\n\x08is_valid\x18\x01 \x01(\x08R\x07isValid\x12\x8e\x01\n\'incompatible_protobuf_descriptor_fields\x18\x02 \x03(\x0b\x32\x37.sift.protobuf_descriptors.v2.IncompatibleProtobufFieldR$incompatibleProtobufDescriptorFields\"\xb9\x02\n\x12ProtobufDescriptor\x12\x33\n\x16message_type_full_name\x18\x01 \x01(\tR\x13messageTypeFullName\x12.\n\x13\x66ile_descriptor_set\x18\x02 \x01(\x0cR\x11\x66ileDescriptorSet\x12&\n\x0fproto_file_name\x18\x03 \x01(\tR\rprotoFileName\x12\x1c\n\tnamespace\x18\x04 \x01(\tR\tnamespace\x12\x34\n\x16protobuf_descriptor_id\x18\x05 \x01(\tR\x14protobufDescriptorId\x12\x42\n\x0c\x63reated_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0b\x63reatedDate\"\xa3\x01\n\x1eListProtobufDescriptorsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xae\x01\n\x1fListProtobufDescriptorsResponse\x12\x63\n\x14protobuf_descriptors\x18\x01 \x03(\x0b\x32\x30.sift.protobuf_descriptors.v2.ProtobufDescriptorR\x13protobufDescriptors\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\x95\r\n\x19ProtobufDescriptorService\x12\xc0\x02\n\x15\x41\x64\x64ProtobufDescriptor\x12:.sift.protobuf_descriptors.v2.AddProtobufDescriptorRequest\x1a;.sift.protobuf_descriptors.v2.AddProtobufDescriptorResponse\"\xad\x01\x92\x41\x7f\x12\x15\x41\x64\x64ProtobufDescriptor\x1a\x33Used to register a protobuf message to be ingested.*1ProtobufDescriptorService_AddProtobufDescriptorV2\x82\xd3\xe4\x93\x02%\" /api/v2/protobuf-descriptors:add:\x01*\x12\xbc\x03\n$CheckProtobufDescriptorCompatibility\x12I.sift.protobuf_descriptors.v2.CheckProtobufDescriptorCompatibilityRequest\x1aJ.sift.protobuf_descriptors.v2.CheckProtobufDescriptorCompatibilityResponse\"\xfc\x01\x92\x41\xbd\x01\x12$CheckProtobufDescriptorCompatibility\x1aSUsed to check if a protobuf descriptor is compatible with the existing descriptors.*@ProtobufDescriptorService_CheckProtobufDescriptorCompatibilityV2\x82\xd3\xe4\x93\x02\x35\"0/api/v2/protobuf-descriptors:check-compatibility:\x01*\x12\xfb\x02\n\x19\x44\x65leteProtobufDescriptors\x12>.sift.protobuf_descriptors.v2.DeleteProtobufDescriptorsRequest\x1a?.sift.protobuf_descriptors.v2.DeleteProtobufDescriptorsResponse\"\xdc\x01\x92\x41\xb4\x01\x12\x19\x44\x65leteProtobufDescriptors\x1a`Delete protobuf descriptors of that match the provided `namespace` and `message_type_full_name`.*5ProtobufDescriptorService_DeleteProtobufDescriptorsV2\x82\xd3\xe4\x93\x02\x1e*\x1c/api/v2/protobuf-descriptors\x12\xc8\x02\n\x17ListProtobufDescriptors\x12<.sift.protobuf_descriptors.v2.ListProtobufDescriptorsRequest\x1a=.sift.protobuf_descriptors.v2.ListProtobufDescriptorsResponse\"\xaf\x01\x92\x41\x87\x01\x12\x17ListProtobufDescriptors\x1a\x37Retrieve protobuf descriptors using an optional filter.*3ProtobufDescriptorService_ListProtobufDescriptorsV2\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v2/protobuf-descriptors\x1a\xac\x01\x92\x41\xa8\x01\x12[Service to programmatically interact with protobuf descriptors used for protobuf ingestion.\x1aI\n(Read more about what protobuf ingestion.\x12\x1d/ingestion/protobuf_ingestionB\xec\x01\n com.sift.protobuf_descriptors.v2B\x18ProtobufDescriptorsProtoP\x01\xa2\x02\x03SPX\xaa\x02\x1bSift.ProtobufDescriptors.V2\xca\x02\x1bSift\\ProtobufDescriptors\\V2\xe2\x02\'Sift\\ProtobufDescriptors\\V2\\GPBMetadata\xea\x02\x1dSift::ProtobufDescriptors::V2\x92\x41\x1f\x12\x1d\n\x1bProtobuf Descriptor Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -43,9 +43,9 @@ _globals['_PROTOBUFDESCRIPTORSERVICE']._loaded_options = None _globals['_PROTOBUFDESCRIPTORSERVICE']._serialized_options = b'\222A\250\001\022[Service to programmatically interact with protobuf descriptors used for protobuf ingestion.\032I\n(Read more about what protobuf ingestion.\022\035/ingestion/protobuf_ingestion' _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['AddProtobufDescriptor']._loaded_options = None - _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['AddProtobufDescriptor']._serialized_options = b'\222A\177\022\025AddProtobufDescriptor\0323Used to register a protobuf message to be ingested.*1ProtobufDescriptorService_AddProtobufDescriptorV2\202\323\344\223\002\"\" /api/v2/protobuf-descriptors:add' + _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['AddProtobufDescriptor']._serialized_options = b'\222A\177\022\025AddProtobufDescriptor\0323Used to register a protobuf message to be ingested.*1ProtobufDescriptorService_AddProtobufDescriptorV2\202\323\344\223\002%\" /api/v2/protobuf-descriptors:add:\001*' _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['CheckProtobufDescriptorCompatibility']._loaded_options = None - _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['CheckProtobufDescriptorCompatibility']._serialized_options = b'\222A\275\001\022$CheckProtobufDescriptorCompatibility\032SUsed to check if a protobuf descriptor is compatible with the existing descriptors.*@ProtobufDescriptorService_CheckProtobufDescriptorCompatibilityV2\202\323\344\223\0022\"0/api/v2/protobuf-descriptors:check-compatibility' + _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['CheckProtobufDescriptorCompatibility']._serialized_options = b'\222A\275\001\022$CheckProtobufDescriptorCompatibility\032SUsed to check if a protobuf descriptor is compatible with the existing descriptors.*@ProtobufDescriptorService_CheckProtobufDescriptorCompatibilityV2\202\323\344\223\0025\"0/api/v2/protobuf-descriptors:check-compatibility:\001*' _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['DeleteProtobufDescriptors']._loaded_options = None _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['DeleteProtobufDescriptors']._serialized_options = b'\222A\264\001\022\031DeleteProtobufDescriptors\032`Delete protobuf descriptors of that match the provided `namespace` and `message_type_full_name`.*5ProtobufDescriptorService_DeleteProtobufDescriptorsV2\202\323\344\223\002\036*\034/api/v2/protobuf-descriptors' _globals['_PROTOBUFDESCRIPTORSERVICE'].methods_by_name['ListProtobufDescriptors']._loaded_options = None @@ -71,5 +71,5 @@ _globals['_LISTPROTOBUFDESCRIPTORSRESPONSE']._serialized_start=2011 _globals['_LISTPROTOBUFDESCRIPTORSRESPONSE']._serialized_end=2185 _globals['_PROTOBUFDESCRIPTORSERVICE']._serialized_start=2188 - _globals['_PROTOBUFDESCRIPTORSERVICE']._serialized_end=3867 + _globals['_PROTOBUFDESCRIPTORSERVICE']._serialized_end=3873 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/remote_files/v1/remote_files_pb2.py b/python/lib/sift/remote_files/v1/remote_files_pb2.py index 599a613c8..6e6e1ddf3 100644 --- a/python/lib/sift/remote_files/v1/remote_files_pb2.py +++ b/python/lib/sift/remote_files/v1/remote_files_pb2.py @@ -19,7 +19,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'sift/remote_files/v1/remote_files.proto\x12\x14sift.remote_files.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xce\x07\n\nRemoteFile\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12 \n\tentity_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x08\x65ntityId\x12\x46\n\x0b\x65ntity_type\x18\x04 \x01(\x0e\x32 .sift.remote_files.v1.EntityTypeB\x03\xe0\x41\x02R\nentityType\x12 \n\tfile_name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x08\x66ileName\x12)\n\x0e\x66ile_mime_type\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0c\x66ileMimeType\x12\x37\n\x15\x66ile_content_encoding\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x13\x66ileContentEncoding\x12$\n\x0bstorage_key\x18\x08 \x01(\tB\x03\xe0\x41\x02R\nstorageKey\x12 \n\tfile_size\x18\t \x01(\x04\x42\x03\xe0\x41\x02R\x08\x66ileSize\x12*\n\x0b\x64\x65scription\x18\n \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12Q\n\x0evideo_metadata\x18\x0b \x01(\x0b\x32#.sift.remote_files.v1.VideoMetadataB\x03\xe0\x41\x01H\x00R\rvideoMetadata\x12Q\n\x0eimage_metadata\x18\x0c \x01(\x0b\x32#.sift.remote_files.v1.ImageMetadataB\x03\xe0\x41\x01H\x00R\rimageMetadata\x12Q\n\x0e\x61udio_metadata\x18\x11 \x01(\x0b\x32#.sift.remote_files.v1.AudioMetadataB\x03\xe0\x41\x01H\x00R\raudioMetadata\x12\x30\n\x12\x63reated_by_user_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x0e \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDateB\n\n\x08metadataB\x0e\n\x0c_description\"\xb6\x01\n\rVideoMetadata\x12\x1b\n\x06height\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x06height\x12\x19\n\x05width\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x05width\x12.\n\x10\x64uration_seconds\x18\x03 \x01(\x02\x42\x03\xe0\x41\x01R\x0f\x64urationSeconds\x12=\n\ttimestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\ttimestamp\"G\n\rImageMetadata\x12\x1b\n\x06height\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x06height\x12\x19\n\x05width\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x05width\"~\n\rAudioMetadata\x12.\n\x10\x64uration_seconds\x18\x01 \x01(\x02\x42\x03\xe0\x41\x01R\x0f\x64urationSeconds\x12=\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\ttimestamp\"A\n\x14GetRemoteFileRequest\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\"_\n\x15GetRemoteFileResponse\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\"\xa9\x01\n\x16ListRemoteFilesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"\x86\x01\n\x17ListRemoteFilesResponse\x12\x43\n\x0cremote_files\x18\x01 \x03(\x0b\x32 .sift.remote_files.v1.RemoteFileR\x0bremoteFiles\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xd5\x05\n\x17\x43reateRemoteFileRequest\x12 \n\tfile_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x66ileName\x12 \n\tentity_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08\x65ntityId\x12\x46\n\x0b\x65ntity_type\x18\x03 \x01(\x0e\x32 .sift.remote_files.v1.EntityTypeB\x03\xe0\x41\x02R\nentityType\x12)\n\x0e\x66ile_mime_type\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0c\x66ileMimeType\x12\x37\n\x15\x66ile_content_encoding\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x13\x66ileContentEncoding\x12 \n\tfile_size\x18\x06 \x01(\x04\x42\x03\xe0\x41\x02R\x08\x66ileSize\x12*\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12,\n\x0forganization_id\x18\x08 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12Q\n\x0evideo_metadata\x18\t \x01(\x0b\x32#.sift.remote_files.v1.VideoMetadataB\x03\xe0\x41\x01H\x00R\rvideoMetadata\x12Q\n\x0eimage_metadata\x18\n \x01(\x0b\x32#.sift.remote_files.v1.ImageMetadataB\x03\xe0\x41\x01H\x00R\rimageMetadata\x12Q\n\x0e\x61udio_metadata\x18\x0c \x01(\x0b\x32#.sift.remote_files.v1.AudioMetadataB\x03\xe0\x41\x01H\x00R\raudioMetadata\x12)\n\x0b\x63ustom_uuid\x18\x0b \x01(\tB\x03\xe0\x41\x01H\x02R\ncustomUuid\x88\x01\x01\x42\n\n\x08metadataB\x0e\n\x0c_descriptionB\x0e\n\x0c_custom_uuid\"b\n\x18\x43reateRemoteFileResponse\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\"D\n\x17\x44\x65leteRemoteFileRequest\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\"\x1a\n\x18\x44\x65leteRemoteFileResponse\"G\n\x1d\x42\x61tchDeleteRemoteFilesRequest\x12&\n\x0fremote_file_ids\x18\x01 \x03(\tR\rremoteFileIds\" \n\x1e\x42\x61tchDeleteRemoteFilesResponse\"\xa3\x01\n\x17UpdateRemoteFileRequest\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"b\n\x18UpdateRemoteFileResponse\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\"L\n\x1fGetRemoteFileDownloadUrlRequest\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\"J\n GetRemoteFileDownloadUrlResponse\x12&\n\x0c\x64ownload_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0b\x64ownloadUrl*\x91\x01\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x45NTITY_TYPE_RUN\x10\x01\x12\x1a\n\x16\x45NTITY_TYPE_ANNOTATION\x10\x02\x12\x15\n\x11\x45NTITY_TYPE_ASSET\x10\x03\x12\x1e\n\x1a\x45NTITY_TYPE_ANNOTATION_LOG\x10\x04\x32\xbf\x0c\n\x11RemoteFileService\x12\xc2\x01\n\rGetRemoteFile\x12*.sift.remote_files.v1.GetRemoteFileRequest\x1a+.sift.remote_files.v1.GetRemoteFileResponse\"X\x92\x41(\x12\rGetRemoteFile\x1a\x17Retrieve a remote file.\x82\xd3\xe4\x93\x02\'\x12%/api/v1/remote-files/{remote_file_id}\x12\xbe\x01\n\x10\x43reateRemoteFile\x12-.sift.remote_files.v1.CreateRemoteFileRequest\x1a..sift.remote_files.v1.CreateRemoteFileResponse\"K\x92\x41)\x12\x10\x43reateRemoteFile\x1a\x15\x43reate a remote file.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/remote-files:\x01*\x12\xb4\x01\n\x0fListRemoteFiles\x12,.sift.remote_files.v1.ListRemoteFilesRequest\x1a-.sift.remote_files.v1.ListRemoteFilesResponse\"D\x92\x41%\x12\x0fListRemoteFiles\x1a\x12List remote files.\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/remote-files\x12\x84\x02\n\x10UpdateRemoteFile\x12-.sift.remote_files.v1.UpdateRemoteFileRequest\x1a..sift.remote_files.v1.UpdateRemoteFileResponse\"\x90\x01\x92\x41n\x12\x10UpdateRemoteFile\x1aZUpdates an existing remote file using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x19\x32\x14/api/v1/remote-files:\x01*\x12\xcc\x01\n\x10\x44\x65leteRemoteFile\x12-.sift.remote_files.v1.DeleteRemoteFileRequest\x1a..sift.remote_files.v1.DeleteRemoteFileResponse\"Y\x92\x41)\x12\x10\x44\x65leteRemoteFile\x1a\x15\x44\x65lete a remote file.\x82\xd3\xe4\x93\x02\'*%/api/v1/remote-files/{remote_file_id}\x12\x8f\x02\n\x16\x42\x61tchDeleteRemoteFiles\x12\x33.sift.remote_files.v1.BatchDeleteRemoteFilesRequest\x1a\x34.sift.remote_files.v1.BatchDeleteRemoteFilesResponse\"\x89\x01\x92\x41[\x12\x16\x42\x61tchDeleteRemoteFiles\x1a\x41\x42\x61tch delete remote files. Each batch is limited to 1000 records.\x82\xd3\xe4\x93\x02%\" /api/v1/remote-files:batchDelete:\x01*\x12\x84\x02\n\x18GetRemoteFileDownloadUrl\x12\x35.sift.remote_files.v1.GetRemoteFileDownloadUrlRequest\x1a\x36.sift.remote_files.v1.GetRemoteFileDownloadUrlResponse\"y\x92\x41<\x12\x10GetRemoteFileUrl\x1a(Gets a download URL for the remote file.\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v1/remote-files/{remote_file_id}/download-urlB\xb3\x01\n\x18\x63om.sift.remote_files.v1B\x10RemoteFilesProtoP\x01\xa2\x02\x03SRX\xaa\x02\x13Sift.RemoteFiles.V1\xca\x02\x13Sift\\RemoteFiles\\V1\xe2\x02\x1fSift\\RemoteFiles\\V1\\GPBMetadata\xea\x02\x15Sift::RemoteFiles::V1\x92\x41\x16\x12\x14\n\x12RemoteFile serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'sift/remote_files/v1/remote_files.proto\x12\x14sift.remote_files.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xce\x07\n\nRemoteFile\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12 \n\tentity_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x08\x65ntityId\x12\x46\n\x0b\x65ntity_type\x18\x04 \x01(\x0e\x32 .sift.remote_files.v1.EntityTypeB\x03\xe0\x41\x02R\nentityType\x12 \n\tfile_name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x08\x66ileName\x12)\n\x0e\x66ile_mime_type\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0c\x66ileMimeType\x12\x37\n\x15\x66ile_content_encoding\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x13\x66ileContentEncoding\x12$\n\x0bstorage_key\x18\x08 \x01(\tB\x03\xe0\x41\x02R\nstorageKey\x12 \n\tfile_size\x18\t \x01(\x04\x42\x03\xe0\x41\x02R\x08\x66ileSize\x12*\n\x0b\x64\x65scription\x18\n \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12Q\n\x0evideo_metadata\x18\x0b \x01(\x0b\x32#.sift.remote_files.v1.VideoMetadataB\x03\xe0\x41\x01H\x00R\rvideoMetadata\x12Q\n\x0eimage_metadata\x18\x0c \x01(\x0b\x32#.sift.remote_files.v1.ImageMetadataB\x03\xe0\x41\x01H\x00R\rimageMetadata\x12Q\n\x0e\x61udio_metadata\x18\x11 \x01(\x0b\x32#.sift.remote_files.v1.AudioMetadataB\x03\xe0\x41\x01H\x00R\raudioMetadata\x12\x30\n\x12\x63reated_by_user_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x0e \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDateB\n\n\x08metadataB\x0e\n\x0c_description\"\xb6\x01\n\rVideoMetadata\x12\x1b\n\x06height\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x06height\x12\x19\n\x05width\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x05width\x12.\n\x10\x64uration_seconds\x18\x03 \x01(\x02\x42\x03\xe0\x41\x01R\x0f\x64urationSeconds\x12=\n\ttimestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\ttimestamp\"G\n\rImageMetadata\x12\x1b\n\x06height\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x06height\x12\x19\n\x05width\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x05width\"~\n\rAudioMetadata\x12.\n\x10\x64uration_seconds\x18\x01 \x01(\x02\x42\x03\xe0\x41\x01R\x0f\x64urationSeconds\x12=\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\ttimestamp\"A\n\x14GetRemoteFileRequest\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\"_\n\x15GetRemoteFileResponse\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\"\xa9\x01\n\x16ListRemoteFilesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"\x86\x01\n\x17ListRemoteFilesResponse\x12\x43\n\x0cremote_files\x18\x01 \x03(\x0b\x32 .sift.remote_files.v1.RemoteFileR\x0bremoteFiles\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xd5\x05\n\x17\x43reateRemoteFileRequest\x12 \n\tfile_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x66ileName\x12 \n\tentity_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08\x65ntityId\x12\x46\n\x0b\x65ntity_type\x18\x03 \x01(\x0e\x32 .sift.remote_files.v1.EntityTypeB\x03\xe0\x41\x02R\nentityType\x12)\n\x0e\x66ile_mime_type\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0c\x66ileMimeType\x12\x37\n\x15\x66ile_content_encoding\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x13\x66ileContentEncoding\x12 \n\tfile_size\x18\x06 \x01(\x04\x42\x03\xe0\x41\x02R\x08\x66ileSize\x12*\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12,\n\x0forganization_id\x18\x08 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12Q\n\x0evideo_metadata\x18\t \x01(\x0b\x32#.sift.remote_files.v1.VideoMetadataB\x03\xe0\x41\x01H\x00R\rvideoMetadata\x12Q\n\x0eimage_metadata\x18\n \x01(\x0b\x32#.sift.remote_files.v1.ImageMetadataB\x03\xe0\x41\x01H\x00R\rimageMetadata\x12Q\n\x0e\x61udio_metadata\x18\x0c \x01(\x0b\x32#.sift.remote_files.v1.AudioMetadataB\x03\xe0\x41\x01H\x00R\raudioMetadata\x12)\n\x0b\x63ustom_uuid\x18\x0b \x01(\tB\x03\xe0\x41\x01H\x02R\ncustomUuid\x88\x01\x01\x42\n\n\x08metadataB\x0e\n\x0c_descriptionB\x0e\n\x0c_custom_uuid\"b\n\x18\x43reateRemoteFileResponse\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\"D\n\x17\x44\x65leteRemoteFileRequest\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\"\x1a\n\x18\x44\x65leteRemoteFileResponse\"G\n\x1d\x42\x61tchDeleteRemoteFilesRequest\x12&\n\x0fremote_file_ids\x18\x01 \x03(\tR\rremoteFileIds\" \n\x1e\x42\x61tchDeleteRemoteFilesResponse\"\xa3\x01\n\x17UpdateRemoteFileRequest\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"b\n\x18UpdateRemoteFileResponse\x12\x46\n\x0bremote_file\x18\x01 \x01(\x0b\x32 .sift.remote_files.v1.RemoteFileB\x03\xe0\x41\x02R\nremoteFile\"L\n\x1fGetRemoteFileDownloadUrlRequest\x12)\n\x0eremote_file_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cremoteFileId\"J\n GetRemoteFileDownloadUrlResponse\x12&\n\x0c\x64ownload_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0b\x64ownloadUrl*\xae\x01\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x45NTITY_TYPE_RUN\x10\x01\x12\x1a\n\x16\x45NTITY_TYPE_ANNOTATION\x10\x02\x12\x15\n\x11\x45NTITY_TYPE_ASSET\x10\x03\x12\x1e\n\x1a\x45NTITY_TYPE_ANNOTATION_LOG\x10\x04\x12\x1b\n\x17\x45NTITY_TYPE_TEST_REPORT\x10\x05\x32\xbf\x0c\n\x11RemoteFileService\x12\xc2\x01\n\rGetRemoteFile\x12*.sift.remote_files.v1.GetRemoteFileRequest\x1a+.sift.remote_files.v1.GetRemoteFileResponse\"X\x92\x41(\x12\rGetRemoteFile\x1a\x17Retrieve a remote file.\x82\xd3\xe4\x93\x02\'\x12%/api/v1/remote-files/{remote_file_id}\x12\xbe\x01\n\x10\x43reateRemoteFile\x12-.sift.remote_files.v1.CreateRemoteFileRequest\x1a..sift.remote_files.v1.CreateRemoteFileResponse\"K\x92\x41)\x12\x10\x43reateRemoteFile\x1a\x15\x43reate a remote file.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/remote-files:\x01*\x12\xb4\x01\n\x0fListRemoteFiles\x12,.sift.remote_files.v1.ListRemoteFilesRequest\x1a-.sift.remote_files.v1.ListRemoteFilesResponse\"D\x92\x41%\x12\x0fListRemoteFiles\x1a\x12List remote files.\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/remote-files\x12\x84\x02\n\x10UpdateRemoteFile\x12-.sift.remote_files.v1.UpdateRemoteFileRequest\x1a..sift.remote_files.v1.UpdateRemoteFileResponse\"\x90\x01\x92\x41n\x12\x10UpdateRemoteFile\x1aZUpdates an existing remote file using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x19\x32\x14/api/v1/remote-files:\x01*\x12\xcc\x01\n\x10\x44\x65leteRemoteFile\x12-.sift.remote_files.v1.DeleteRemoteFileRequest\x1a..sift.remote_files.v1.DeleteRemoteFileResponse\"Y\x92\x41)\x12\x10\x44\x65leteRemoteFile\x1a\x15\x44\x65lete a remote file.\x82\xd3\xe4\x93\x02\'*%/api/v1/remote-files/{remote_file_id}\x12\x8f\x02\n\x16\x42\x61tchDeleteRemoteFiles\x12\x33.sift.remote_files.v1.BatchDeleteRemoteFilesRequest\x1a\x34.sift.remote_files.v1.BatchDeleteRemoteFilesResponse\"\x89\x01\x92\x41[\x12\x16\x42\x61tchDeleteRemoteFiles\x1a\x41\x42\x61tch delete remote files. Each batch is limited to 1000 records.\x82\xd3\xe4\x93\x02%\" /api/v1/remote-files:batchDelete:\x01*\x12\x84\x02\n\x18GetRemoteFileDownloadUrl\x12\x35.sift.remote_files.v1.GetRemoteFileDownloadUrlRequest\x1a\x36.sift.remote_files.v1.GetRemoteFileDownloadUrlResponse\"y\x92\x41<\x12\x10GetRemoteFileUrl\x1a(Gets a download URL for the remote file.\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v1/remote-files/{remote_file_id}/download-urlB\xb3\x01\n\x18\x63om.sift.remote_files.v1B\x10RemoteFilesProtoP\x01\xa2\x02\x03SRX\xaa\x02\x13Sift.RemoteFiles.V1\xca\x02\x13Sift\\RemoteFiles\\V1\xe2\x02\x1fSift\\RemoteFiles\\V1\\GPBMetadata\xea\x02\x15Sift::RemoteFiles::V1\x92\x41\x16\x12\x14\n\x12RemoteFile serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -142,7 +142,7 @@ _globals['_REMOTEFILESERVICE'].methods_by_name['GetRemoteFileDownloadUrl']._loaded_options = None _globals['_REMOTEFILESERVICE'].methods_by_name['GetRemoteFileDownloadUrl']._serialized_options = b'\222A<\022\020GetRemoteFileUrl\032(Gets a download URL for the remote file.\202\323\344\223\0024\0222/api/v1/remote-files/{remote_file_id}/download-url' _globals['_ENTITYTYPE']._serialized_start=3533 - _globals['_ENTITYTYPE']._serialized_end=3678 + _globals['_ENTITYTYPE']._serialized_end=3707 _globals['_REMOTEFILE']._serialized_start=244 _globals['_REMOTEFILE']._serialized_end=1218 _globals['_VIDEOMETADATA']._serialized_start=1221 @@ -179,6 +179,6 @@ _globals['_GETREMOTEFILEDOWNLOADURLREQUEST']._serialized_end=3454 _globals['_GETREMOTEFILEDOWNLOADURLRESPONSE']._serialized_start=3456 _globals['_GETREMOTEFILEDOWNLOADURLRESPONSE']._serialized_end=3530 - _globals['_REMOTEFILESERVICE']._serialized_start=3681 - _globals['_REMOTEFILESERVICE']._serialized_end=5280 + _globals['_REMOTEFILESERVICE']._serialized_start=3710 + _globals['_REMOTEFILESERVICE']._serialized_end=5309 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/remote_files/v1/remote_files_pb2.pyi b/python/lib/sift/remote_files/v1/remote_files_pb2.pyi index 5594e1307..b6fd98b1c 100644 --- a/python/lib/sift/remote_files/v1/remote_files_pb2.pyi +++ b/python/lib/sift/remote_files/v1/remote_files_pb2.pyi @@ -32,6 +32,7 @@ class _EntityTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._Enu ENTITY_TYPE_ANNOTATION: _EntityType.ValueType # 2 ENTITY_TYPE_ASSET: _EntityType.ValueType # 3 ENTITY_TYPE_ANNOTATION_LOG: _EntityType.ValueType # 4 + ENTITY_TYPE_TEST_REPORT: _EntityType.ValueType # 5 class EntityType(_EntityType, metaclass=_EntityTypeEnumTypeWrapper): ... @@ -40,6 +41,7 @@ ENTITY_TYPE_RUN: EntityType.ValueType # 1 ENTITY_TYPE_ANNOTATION: EntityType.ValueType # 2 ENTITY_TYPE_ASSET: EntityType.ValueType # 3 ENTITY_TYPE_ANNOTATION_LOG: EntityType.ValueType # 4 +ENTITY_TYPE_TEST_REPORT: EntityType.ValueType # 5 global___EntityType = EntityType @typing.final diff --git a/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.py b/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.py index fc922ad5a..e38b4d54e 100644 --- a/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.py +++ b/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.py @@ -62,7 +62,7 @@ def GetRemoteFile(self, request, context): raise NotImplementedError('Method not implemented!') def CreateRemoteFile(self, request, context): - """Create a remote file. + """Create a remote file. Note that this does not perform the actual file upload. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') diff --git a/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.pyi b/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.pyi index 355dd59ba..e24a6f99d 100644 --- a/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.pyi +++ b/python/lib/sift/remote_files/v1/remote_files_pb2_grpc.pyi @@ -29,7 +29,7 @@ class RemoteFileServiceStub: sift.remote_files.v1.remote_files_pb2.CreateRemoteFileRequest, sift.remote_files.v1.remote_files_pb2.CreateRemoteFileResponse, ] - """Create a remote file.""" + """Create a remote file. Note that this does not perform the actual file upload.""" ListRemoteFiles: grpc.UnaryUnaryMultiCallable[ sift.remote_files.v1.remote_files_pb2.ListRemoteFilesRequest, @@ -72,7 +72,7 @@ class RemoteFileServiceAsyncStub: sift.remote_files.v1.remote_files_pb2.CreateRemoteFileRequest, sift.remote_files.v1.remote_files_pb2.CreateRemoteFileResponse, ] - """Create a remote file.""" + """Create a remote file. Note that this does not perform the actual file upload.""" ListRemoteFiles: grpc.aio.UnaryUnaryMultiCallable[ sift.remote_files.v1.remote_files_pb2.ListRemoteFilesRequest, @@ -119,7 +119,7 @@ class RemoteFileServiceServicer(metaclass=abc.ABCMeta): request: sift.remote_files.v1.remote_files_pb2.CreateRemoteFileRequest, context: _ServicerContext, ) -> typing.Union[sift.remote_files.v1.remote_files_pb2.CreateRemoteFileResponse, collections.abc.Awaitable[sift.remote_files.v1.remote_files_pb2.CreateRemoteFileResponse]]: - """Create a remote file.""" + """Create a remote file. Note that this does not perform the actual file upload.""" @abc.abstractmethod def ListRemoteFiles( diff --git a/python/lib/sift/report_templates/v1/report_templates_pb2.py b/python/lib/sift/report_templates/v1/report_templates_pb2.py index 8e7c9a6ec..e93c89dbc 100644 --- a/python/lib/sift/report_templates/v1/report_templates_pb2.py +++ b/python/lib/sift/report_templates/v1/report_templates_pb2.py @@ -20,7 +20,7 @@ from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/sift/report_templates/v1/report_templates.proto\x12\x18sift.report_templates.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x9c\x06\n\x0eReportTemplate\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10reportTemplateId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x12\x17\n\x04name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12I\n\rarchived_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x02R\x0c\x61rchivedDate\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12G\n\x05rules\x18\x0b \x03(\x0b\x32,.sift.report_templates.v1.ReportTemplateRuleB\x03\xe0\x41\x02R\x05rules\x12\x44\n\x04tags\x18\x0c \x03(\x0b\x32+.sift.report_templates.v1.ReportTemplateTagB\x03\xe0\x41\x02R\x04tags\x12@\n\x08metadata\x18\r \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\r\n\x0b_client_keyB\x0e\n\x0c_descriptionB\x10\n\x0e_archived_date\"\xb8\x01\n\x12ReportTemplateRule\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x33\n\x13rule_version_number\x18\x03 \x01(\rB\x03\xe0\x41\x02R\x11ruleVersionNumber\x12\"\n\nclient_key\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"3\n\x11ReportTemplateTag\x12\x1e\n\x08tag_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07tagName\"\x9f\x01\n\x18GetReportTemplateRequest\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"s\n\x19GetReportTemplateResponse\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate\"\xa2\x04\n\x1b\x43reateReportTemplateRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\'\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x01R\tclientKey\x88\x01\x01\x12*\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12 \n\ttag_names\x18\x04 \x03(\tB\x03\xe0\x41\x02R\x08tagNames\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12^\n\x08rule_ids\x18\x07 \x01(\x0b\x32<.sift.report_templates.v1.CreateReportTemplateRequestRuleIdsB\x03\xe0\x41\x01H\x00R\x07ruleIds\x12p\n\x10rule_client_keys\x18\x08 \x01(\x0b\x32?.sift.report_templates.v1.CreateReportTemplateRequestClientKeysB\x03\xe0\x41\x01H\x00R\x0eruleClientKeys\x12@\n\x08metadata\x18\t \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\x12\n\x10rule_identifiersB\r\n\x0b_client_keyB\x0e\n\x0c_description\"D\n\"CreateReportTemplateRequestRuleIds\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\"V\n%CreateReportTemplateRequestClientKeys\x12-\n\x10rule_client_keys\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleClientKeys\"v\n\x1c\x43reateReportTemplateResponse\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate\"\xfc\x01\n\x1aListReportTemplatesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12-\n\x10include_archived\x18\x05 \x01(\x08\x42\x02\x18\x01R\x0fincludeArchived\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x9a\x01\n\x1bListReportTemplatesResponse\x12S\n\x10report_templates\x18\x01 \x03(\x0b\x32(.sift.report_templates.v1.ReportTemplateR\x0freportTemplates\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb7\x01\n\x1bUpdateReportTemplateRequest\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"v\n\x1cUpdateReportTemplateResponse\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate2\x9f\x08\n\x15ReportTemplateService\x12\xac\x02\n\x11GetReportTemplate\x12\x32.sift.report_templates.v1.GetReportTemplateRequest\x1a\x33.sift.report_templates.v1.GetReportTemplateResponse\"\xad\x01\x92\x41\x30\x12\x11GetReportTemplate\x1a\x1bRetrieve a report template.\x82\xd3\xe4\x93\x02t\x12-/api/v1/report-templates/{report_template_id}ZC\x12\x41/v1/organizations/{organization_id}/report_templates/{client_key}\x12\xde\x01\n\x14\x43reateReportTemplate\x12\x35.sift.report_templates.v1.CreateReportTemplateRequest\x1a\x36.sift.report_templates.v1.CreateReportTemplateResponse\"W\x92\x41\x31\x12\x14\x43reateReportTemplate\x1a\x19\x43reate a report template.\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/report-templates:\x01*\x12\xd4\x01\n\x13ListReportTemplates\x12\x34.sift.report_templates.v1.ListReportTemplatesRequest\x1a\x35.sift.report_templates.v1.ListReportTemplatesResponse\"P\x92\x41-\x12\x13ListReportTemplates\x1a\x16List report templates.\x82\xd3\xe4\x93\x02\x1a\x12\x18/api/v1/report-templates\x12\x9e\x02\n\x14UpdateReportTemplate\x12\x35.sift.report_templates.v1.UpdateReportTemplateRequest\x1a\x36.sift.report_templates.v1.UpdateReportTemplateResponse\"\x96\x01\x92\x41p\x12\x14UpdateReportTemplate\x1aXUpdates an existing report template using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x1d\x32\x18/api/v1/report-templates:\x01*B\xcf\x01\n\x1c\x63om.sift.report_templates.v1B\x14ReportTemplatesProtoP\x01\xa2\x02\x03SRX\xaa\x02\x17Sift.ReportTemplates.V1\xca\x02\x17Sift\\ReportTemplates\\V1\xe2\x02#Sift\\ReportTemplates\\V1\\GPBMetadata\xea\x02\x19Sift::ReportTemplates::V1\x92\x41\x1a\x12\x18\n\x16ReportTemplate serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/sift/report_templates/v1/report_templates.proto\x12\x18sift.report_templates.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xc2\x06\n\x0eReportTemplate\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10reportTemplateId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x12\x17\n\x04name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12I\n\rarchived_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x02R\x0c\x61rchivedDate\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12G\n\x05rules\x18\x0b \x03(\x0b\x32,.sift.report_templates.v1.ReportTemplateRuleB\x03\xe0\x41\x02R\x05rules\x12\x44\n\x04tags\x18\x0c \x03(\x0b\x32+.sift.report_templates.v1.ReportTemplateTagB\x03\xe0\x41\x02R\x04tags\x12@\n\x08metadata\x18\r \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x0e \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\r\n\x0b_client_keyB\x0e\n\x0c_descriptionB\x10\n\x0e_archived_date\"\xb8\x01\n\x12ReportTemplateRule\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x33\n\x13rule_version_number\x18\x03 \x01(\rB\x03\xe0\x41\x02R\x11ruleVersionNumber\x12\"\n\nclient_key\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"3\n\x11ReportTemplateTag\x12\x1e\n\x08tag_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07tagName\"\x9f\x01\n\x18GetReportTemplateRequest\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"s\n\x19GetReportTemplateResponse\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate\"\xa2\x04\n\x1b\x43reateReportTemplateRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\'\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x01R\tclientKey\x88\x01\x01\x12*\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12 \n\ttag_names\x18\x04 \x03(\tB\x03\xe0\x41\x02R\x08tagNames\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12^\n\x08rule_ids\x18\x07 \x01(\x0b\x32<.sift.report_templates.v1.CreateReportTemplateRequestRuleIdsB\x03\xe0\x41\x01H\x00R\x07ruleIds\x12p\n\x10rule_client_keys\x18\x08 \x01(\x0b\x32?.sift.report_templates.v1.CreateReportTemplateRequestClientKeysB\x03\xe0\x41\x01H\x00R\x0eruleClientKeys\x12@\n\x08metadata\x18\t \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\x12\n\x10rule_identifiersB\r\n\x0b_client_keyB\x0e\n\x0c_description\"D\n\"CreateReportTemplateRequestRuleIds\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\"V\n%CreateReportTemplateRequestClientKeys\x12-\n\x10rule_client_keys\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleClientKeys\"v\n\x1c\x43reateReportTemplateResponse\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate\"\xfc\x01\n\x1aListReportTemplatesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12-\n\x10include_archived\x18\x05 \x01(\x08\x42\x02\x18\x01R\x0fincludeArchived\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x9a\x01\n\x1bListReportTemplatesResponse\x12S\n\x10report_templates\x18\x01 \x03(\x0b\x32(.sift.report_templates.v1.ReportTemplateR\x0freportTemplates\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb7\x01\n\x1bUpdateReportTemplateRequest\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"v\n\x1cUpdateReportTemplateResponse\x12V\n\x0freport_template\x18\x01 \x01(\x0b\x32(.sift.report_templates.v1.ReportTemplateB\x03\xe0\x41\x02R\x0ereportTemplate2\x9f\x08\n\x15ReportTemplateService\x12\xac\x02\n\x11GetReportTemplate\x12\x32.sift.report_templates.v1.GetReportTemplateRequest\x1a\x33.sift.report_templates.v1.GetReportTemplateResponse\"\xad\x01\x92\x41\x30\x12\x11GetReportTemplate\x1a\x1bRetrieve a report template.\x82\xd3\xe4\x93\x02t\x12-/api/v1/report-templates/{report_template_id}ZC\x12\x41/v1/organizations/{organization_id}/report_templates/{client_key}\x12\xde\x01\n\x14\x43reateReportTemplate\x12\x35.sift.report_templates.v1.CreateReportTemplateRequest\x1a\x36.sift.report_templates.v1.CreateReportTemplateResponse\"W\x92\x41\x31\x12\x14\x43reateReportTemplate\x1a\x19\x43reate a report template.\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/report-templates:\x01*\x12\xd4\x01\n\x13ListReportTemplates\x12\x34.sift.report_templates.v1.ListReportTemplatesRequest\x1a\x35.sift.report_templates.v1.ListReportTemplatesResponse\"P\x92\x41-\x12\x13ListReportTemplates\x1a\x16List report templates.\x82\xd3\xe4\x93\x02\x1a\x12\x18/api/v1/report-templates\x12\x9e\x02\n\x14UpdateReportTemplate\x12\x35.sift.report_templates.v1.UpdateReportTemplateRequest\x1a\x36.sift.report_templates.v1.UpdateReportTemplateResponse\"\x96\x01\x92\x41p\x12\x14UpdateReportTemplate\x1aXUpdates an existing report template using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x1d\x32\x18/api/v1/report-templates:\x01*B\xcf\x01\n\x1c\x63om.sift.report_templates.v1B\x14ReportTemplatesProtoP\x01\xa2\x02\x03SRX\xaa\x02\x17Sift.ReportTemplates.V1\xca\x02\x17Sift\\ReportTemplates\\V1\xe2\x02#Sift\\ReportTemplates\\V1\\GPBMetadata\xea\x02\x19Sift::ReportTemplates::V1\x92\x41\x1a\x12\x18\n\x16ReportTemplate serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -54,6 +54,8 @@ _globals['_REPORTTEMPLATE'].fields_by_name['tags']._serialized_options = b'\340A\002' _globals['_REPORTTEMPLATE'].fields_by_name['metadata']._loaded_options = None _globals['_REPORTTEMPLATE'].fields_by_name['metadata']._serialized_options = b'\340A\002' + _globals['_REPORTTEMPLATE'].fields_by_name['is_archived']._loaded_options = None + _globals['_REPORTTEMPLATE'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_REPORTTEMPLATERULE'].fields_by_name['rule_id']._loaded_options = None _globals['_REPORTTEMPLATERULE'].fields_by_name['rule_id']._serialized_options = b'\340A\002' _globals['_REPORTTEMPLATERULE'].fields_by_name['rule_version_id']._loaded_options = None @@ -121,31 +123,31 @@ _globals['_REPORTTEMPLATESERVICE'].methods_by_name['UpdateReportTemplate']._loaded_options = None _globals['_REPORTTEMPLATESERVICE'].methods_by_name['UpdateReportTemplate']._serialized_options = b'\222Ap\022\024UpdateReportTemplate\032XUpdates an existing report template using the list of fields specified in `update_mask`.\202\323\344\223\002\0352\030/api/v1/report-templates:\001*' _globals['_REPORTTEMPLATE']._serialized_start=289 - _globals['_REPORTTEMPLATE']._serialized_end=1085 - _globals['_REPORTTEMPLATERULE']._serialized_start=1088 - _globals['_REPORTTEMPLATERULE']._serialized_end=1272 - _globals['_REPORTTEMPLATETAG']._serialized_start=1274 - _globals['_REPORTTEMPLATETAG']._serialized_end=1325 - _globals['_GETREPORTTEMPLATEREQUEST']._serialized_start=1328 - _globals['_GETREPORTTEMPLATEREQUEST']._serialized_end=1487 - _globals['_GETREPORTTEMPLATERESPONSE']._serialized_start=1489 - _globals['_GETREPORTTEMPLATERESPONSE']._serialized_end=1604 - _globals['_CREATEREPORTTEMPLATEREQUEST']._serialized_start=1607 - _globals['_CREATEREPORTTEMPLATEREQUEST']._serialized_end=2153 - _globals['_CREATEREPORTTEMPLATEREQUESTRULEIDS']._serialized_start=2155 - _globals['_CREATEREPORTTEMPLATEREQUESTRULEIDS']._serialized_end=2223 - _globals['_CREATEREPORTTEMPLATEREQUESTCLIENTKEYS']._serialized_start=2225 - _globals['_CREATEREPORTTEMPLATEREQUESTCLIENTKEYS']._serialized_end=2311 - _globals['_CREATEREPORTTEMPLATERESPONSE']._serialized_start=2313 - _globals['_CREATEREPORTTEMPLATERESPONSE']._serialized_end=2431 - _globals['_LISTREPORTTEMPLATESREQUEST']._serialized_start=2434 - _globals['_LISTREPORTTEMPLATESREQUEST']._serialized_end=2686 - _globals['_LISTREPORTTEMPLATESRESPONSE']._serialized_start=2689 - _globals['_LISTREPORTTEMPLATESRESPONSE']._serialized_end=2843 - _globals['_UPDATEREPORTTEMPLATEREQUEST']._serialized_start=2846 - _globals['_UPDATEREPORTTEMPLATEREQUEST']._serialized_end=3029 - _globals['_UPDATEREPORTTEMPLATERESPONSE']._serialized_start=3031 - _globals['_UPDATEREPORTTEMPLATERESPONSE']._serialized_end=3149 - _globals['_REPORTTEMPLATESERVICE']._serialized_start=3152 - _globals['_REPORTTEMPLATESERVICE']._serialized_end=4207 + _globals['_REPORTTEMPLATE']._serialized_end=1123 + _globals['_REPORTTEMPLATERULE']._serialized_start=1126 + _globals['_REPORTTEMPLATERULE']._serialized_end=1310 + _globals['_REPORTTEMPLATETAG']._serialized_start=1312 + _globals['_REPORTTEMPLATETAG']._serialized_end=1363 + _globals['_GETREPORTTEMPLATEREQUEST']._serialized_start=1366 + _globals['_GETREPORTTEMPLATEREQUEST']._serialized_end=1525 + _globals['_GETREPORTTEMPLATERESPONSE']._serialized_start=1527 + _globals['_GETREPORTTEMPLATERESPONSE']._serialized_end=1642 + _globals['_CREATEREPORTTEMPLATEREQUEST']._serialized_start=1645 + _globals['_CREATEREPORTTEMPLATEREQUEST']._serialized_end=2191 + _globals['_CREATEREPORTTEMPLATEREQUESTRULEIDS']._serialized_start=2193 + _globals['_CREATEREPORTTEMPLATEREQUESTRULEIDS']._serialized_end=2261 + _globals['_CREATEREPORTTEMPLATEREQUESTCLIENTKEYS']._serialized_start=2263 + _globals['_CREATEREPORTTEMPLATEREQUESTCLIENTKEYS']._serialized_end=2349 + _globals['_CREATEREPORTTEMPLATERESPONSE']._serialized_start=2351 + _globals['_CREATEREPORTTEMPLATERESPONSE']._serialized_end=2469 + _globals['_LISTREPORTTEMPLATESREQUEST']._serialized_start=2472 + _globals['_LISTREPORTTEMPLATESREQUEST']._serialized_end=2724 + _globals['_LISTREPORTTEMPLATESRESPONSE']._serialized_start=2727 + _globals['_LISTREPORTTEMPLATESRESPONSE']._serialized_end=2881 + _globals['_UPDATEREPORTTEMPLATEREQUEST']._serialized_start=2884 + _globals['_UPDATEREPORTTEMPLATEREQUEST']._serialized_end=3067 + _globals['_UPDATEREPORTTEMPLATERESPONSE']._serialized_start=3069 + _globals['_UPDATEREPORTTEMPLATERESPONSE']._serialized_end=3187 + _globals['_REPORTTEMPLATESERVICE']._serialized_start=3190 + _globals['_REPORTTEMPLATESERVICE']._serialized_end=4245 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/report_templates/v1/report_templates_pb2.pyi b/python/lib/sift/report_templates/v1/report_templates_pb2.pyi index 33d8bcbf2..fc2d95cc9 100644 --- a/python/lib/sift/report_templates/v1/report_templates_pb2.pyi +++ b/python/lib/sift/report_templates/v1/report_templates_pb2.pyi @@ -32,6 +32,7 @@ class ReportTemplate(google.protobuf.message.Message): RULES_FIELD_NUMBER: builtins.int TAGS_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int report_template_id: builtins.str organization_id: builtins.str client_key: builtins.str @@ -39,6 +40,8 @@ class ReportTemplate(google.protobuf.message.Message): description: builtins.str created_by_user_id: builtins.str modified_by_user_id: builtins.str + is_archived: builtins.bool + """Whether the report template is archived. This is inferred from whether archived_date is set.""" @property def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -67,9 +70,10 @@ class ReportTemplate(google.protobuf.message.Message): rules: collections.abc.Iterable[global___ReportTemplateRule] | None = ..., tags: collections.abc.Iterable[global___ReportTemplateTag] | None = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_description", b"_description", "archived_date", b"archived_date", "client_key", b"client_key", "created_date", b"created_date", "description", b"description", "modified_date", b"modified_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_description", b"_description", "archived_date", b"archived_date", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_template_id", b"report_template_id", "rules", b"rules", "tags", b"tags"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_description", b"_description", "archived_date", b"archived_date", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "is_archived", b"is_archived", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_template_id", b"report_template_id", "rules", b"rules", "tags", b"tags"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... @typing.overload @@ -290,7 +294,7 @@ class ListReportTemplatesRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - Available fields to filter by are `report_template_id`, `tag_id`, `tag_name`, `client_key`, `metadata`, and `name`. + Available fields to filter by are `report_template_id`, `tag_id`, `tag_name`, `client_key`, `metadata`, `name` and 'is_archived'. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/report_templates#report_template). Optional. """ @@ -357,7 +361,7 @@ class UpdateReportTemplateRequest(google.protobuf.message.Message): @property def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: - """The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `tags`, `rules`, and `metadata`.""" + """The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `rules`, and `metadata`.""" def __init__( self, diff --git a/python/lib/sift/reports/v1/reports_pb2.py b/python/lib/sift/reports/v1/reports_pb2.py index cb5ed762a..e58ddc438 100644 --- a/python/lib/sift/reports/v1/reports_pb2.py +++ b/python/lib/sift/reports/v1/reports_pb2.py @@ -20,7 +20,7 @@ from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsift/reports/v1/reports.proto\x12\x0fsift.reports.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x87\x07\n\x06Report\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12\x31\n\x12report_template_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x45\n\tsummaries\x18\x0b \x03(\x0b\x32\".sift.reports.v1.ReportRuleSummaryB\x03\xe0\x41\x02R\tsummaries\x12\x33\n\x04tags\x18\x0c \x03(\x0b\x32\x1a.sift.reports.v1.ReportTagB\x03\xe0\x41\x02R\x04tags\x12\x39\n\x14rerun_from_report_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x01R\x11rerunFromReportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\x05jobId\x88\x01\x01\x12I\n\rarchived_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\x0e\n\x0c_descriptionB\x17\n\x15_rerun_from_report_idB\t\n\x07_job_idB\x10\n\x0e_archived_date\"\xe6\x05\n\x11ReportRuleSummary\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_client_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rruleClientKey\x12+\n\x0frule_version_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x33\n\x13rule_version_number\x18\x04 \x01(\rB\x03\xe0\x41\x02R\x11ruleVersionNumber\x12\x38\n\x16report_rule_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x13reportRuleVersionId\x12\x1e\n\x08num_open\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07numOpen\x12\"\n\nnum_failed\x18\x07 \x01(\rB\x03\xe0\x41\x02R\tnumFailed\x12\"\n\nnum_passed\x18\x08 \x01(\rB\x03\xe0\x41\x02R\tnumPassed\x12>\n\x06status\x18\t \x01(\x0e\x32!.sift.reports.v1.ReportRuleStatusB\x03\xe0\x41\x02R\x06status\x12T\n\x0estatus_details\x18\n \x01(\x0b\x32(.sift.reports.v1.ReportRuleStatusDetailsB\x03\xe0\x41\x02R\rstatusDetails\x12\x42\n\x0c\x63reated_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1e\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x42\n\x0c\x64\x65leted_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0b\x64\x65letedDate\"+\n\tReportTag\x12\x1e\n\x08tag_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07tagName\"\xe6\x03\n\x17ReportRuleStatusDetails\x12K\n\x07\x63reated\x18\x01 \x01(\x0b\x32/.sift.reports.v1.ReportRuleStatusDetailsCreatedH\x00R\x07\x63reated\x12\x42\n\x04live\x18\x02 \x01(\x0b\x32,.sift.reports.v1.ReportRuleStatusDetailsLiveH\x00R\x04live\x12N\n\x08\x66inished\x18\x03 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsFinishedH\x00R\x08\x66inished\x12H\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32..sift.reports.v1.ReportRuleStatusDetailsFailedH\x00R\x06\x66\x61iled\x12N\n\x08\x63\x61nceled\x18\x05 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsCanceledH\x00R\x08\x63\x61nceled\x12\x45\n\x05\x65rror\x18\x06 \x01(\x0b\x32-.sift.reports.v1.ReportRuleStatusDetailsErrorH\x00R\x05\x65rrorB\t\n\x07\x64\x65tails\" \n\x1eReportRuleStatusDetailsCreated\"\x1d\n\x1bReportRuleStatusDetailsLive\"q\n\x1fReportRuleStatusDetailsFinished\x12\x1b\n\x06stdout\x18\x01 \x01(\tH\x00R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x02 \x01(\tH\x01R\x06stderr\x88\x01\x01\x42\t\n\x07_stdoutB\t\n\x07_stderr\"\xc9\x01\n\x1dReportRuleStatusDetailsFailed\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"!\n\x1fReportRuleStatusDetailsCanceled\"\xc8\x01\n\x1cReportRuleStatusDetailsError\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"\xd2\x03\n\x13\x43reateReportRequest\x12\x8b\x01\n#report_from_report_template_request\x18\x01 \x01(\x0b\x32\x36.sift.reports.v1.CreateReportFromReportTemplateRequestB\x03\xe0\x41\x01H\x00R\x1freportFromReportTemplateRequest\x12o\n\x19report_from_rules_request\x18\x02 \x01(\x0b\x32-.sift.reports.v1.CreateReportFromRulesRequestB\x03\xe0\x41\x01H\x00R\x16reportFromRulesRequest\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x1a\n\x06run_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x1c\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02H\x01R\x04name\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\t\n\x07requestB\x07\n\x05_name\"L\n\x14\x43reateReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"Z\n%CreateReportFromReportTemplateRequest\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10reportTemplateId\"\xd9\x02\n\x1c\x43reateReportFromRulesRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02H\x01R\x0b\x64\x65scription\x88\x01\x01\x12 \n\ttag_names\x18\x03 \x03(\tB\x03\xe0\x41\x02R\x08tagNames\x12M\n\x08rule_ids\x18\x04 \x01(\x0b\x32+.sift.reports.v1.CreateReportRequestRuleIdsB\x03\xe0\x41\x01H\x00R\x07ruleIds\x12_\n\x10rule_client_keys\x18\x05 \x01(\x0b\x32..sift.reports.v1.CreateReportRequestClientKeysB\x03\xe0\x41\x01H\x00R\x0eruleClientKeysB\x12\n\x10rule_identifiersB\x0e\n\x0c_description\"<\n\x1a\x43reateReportRequestRuleIds\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\"N\n\x1d\x43reateReportRequestClientKeys\x12-\n\x10rule_client_keys\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleClientKeys\"4\n\x10GetReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x08reportId\"I\n\x11GetReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"\xc5\x01\n\x12ListReportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"p\n\x13ListReportsResponse\x12\x31\n\x07reports\x18\x01 \x03(\x0b\x32\x17.sift.reports.v1.ReportR\x07reports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"6\n\x12RerunReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"S\n\x13RerunReportResponse\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\x12 \n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"7\n\x13\x43\x61ncelReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"\x16\n\x14\x43\x61ncelReportResponse\"\x8d\x01\n\x13UpdateReportRequest\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x16\n\x14UpdateReportResponse*\xf2\x01\n\x10ReportRuleStatus\x12\"\n\x1eREPORT_RULE_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n\x1aREPORT_RULE_STATUS_CREATED\x10\x01\x12\x1b\n\x17REPORT_RULE_STATUS_LIVE\x10\x02\x12\x1f\n\x1bREPORT_RULE_STATUS_FINISHED\x10\x03\x12\x1d\n\x19REPORT_RULE_STATUS_FAILED\x10\x04\x12\x1f\n\x1bREPORT_RULE_STATUS_CANCELED\x10\x05\x12\x1c\n\x18REPORT_RULE_STATUS_ERROR\x10\x06\x32\x84\n\n\rReportService\x12\x99\x01\n\tGetReport\x12!.sift.reports.v1.GetReportRequest\x1a\".sift.reports.v1.GetReportResponse\"E\x92\x41\x1f\x12\tGetReport\x1a\x12Retrieve a report.\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/reports/{report_id}\x12\x9a\x01\n\x0c\x43reateReport\x12$.sift.reports.v1.CreateReportRequest\x1a%.sift.reports.v1.CreateReportResponse\"=\x92\x41 \x12\x0c\x43reateReport\x1a\x10\x43reate a report.\x82\xd3\xe4\x93\x02\x14\"\x0f/api/v1/reports:\x01*\x12\x9a\x01\n\x0cUpdateReport\x12$.sift.reports.v1.UpdateReportRequest\x1a%.sift.reports.v1.UpdateReportResponse\"=\x92\x41 \x12\x0cUpdateReport\x1a\x10Update a report.\x82\xd3\xe4\x93\x02\x14\x1a\x0f/api/v1/reports:\x01*\x12\x90\x01\n\x0bListReports\x12#.sift.reports.v1.ListReportsRequest\x1a$.sift.reports.v1.ListReportsResponse\"6\x92\x41\x1c\x12\x0bListReports\x1a\rList reports.\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/reports\x12\xc2\x02\n\x0bRerunReport\x12#.sift.reports.v1.RerunReportRequest\x1a$.sift.reports.v1.RerunReportResponse\"\xe7\x01\x92\x41\xba\x01\x12\x0bRerunReport\x1a\xaa\x01Rerunning a report will create a new report with the same rule versions and run as the original report and run the evaluation again using the most up-to-date set of data.\x82\xd3\xe4\x93\x02#\"!/api/v1/reports/{report_id}:rerun\x12\xc4\x02\n\x0c\x43\x61ncelReport\x12$.sift.reports.v1.CancelReportRequest\x1a%.sift.reports.v1.CancelReportResponse\"\xe6\x01\x92\x41\xb8\x01\x12\x0c\x43\x61ncelReport\x1a\xa7\x01\x43\x61nceling a report will stop the evaluation of the report and mark it as canceled. Any results that have been calculated up to the point of cancellation will be saved.\x82\xd3\xe4\x93\x02$\"\"/api/v1/reports/{report_id}:cancelB\x96\x01\n\x13\x63om.sift.reports.v1B\x0cReportsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0fSift.Reports.V1\xca\x02\x0fSift\\Reports\\V1\xe2\x02\x1bSift\\Reports\\V1\\GPBMetadata\xea\x02\x11Sift::Reports::V1\x92\x41\x12\x12\x10\n\x0eReport serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsift/reports/v1/reports.proto\x12\x0fsift.reports.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xad\x07\n\x06Report\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12\x31\n\x12report_template_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x45\n\tsummaries\x18\x0b \x03(\x0b\x32\".sift.reports.v1.ReportRuleSummaryB\x03\xe0\x41\x02R\tsummaries\x12\x33\n\x04tags\x18\x0c \x03(\x0b\x32\x1a.sift.reports.v1.ReportTagB\x03\xe0\x41\x02R\x04tags\x12\x39\n\x14rerun_from_report_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x01R\x11rerunFromReportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\x05jobId\x88\x01\x01\x12I\n\rarchived_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x11 \x01(\x08\x42\x03\xe0\x41\x01R\nisArchivedB\x0e\n\x0c_descriptionB\x17\n\x15_rerun_from_report_idB\t\n\x07_job_idB\x10\n\x0e_archived_date\"\xe6\x05\n\x11ReportRuleSummary\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_client_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rruleClientKey\x12+\n\x0frule_version_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x33\n\x13rule_version_number\x18\x04 \x01(\rB\x03\xe0\x41\x02R\x11ruleVersionNumber\x12\x38\n\x16report_rule_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x13reportRuleVersionId\x12\x1e\n\x08num_open\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07numOpen\x12\"\n\nnum_failed\x18\x07 \x01(\rB\x03\xe0\x41\x02R\tnumFailed\x12\"\n\nnum_passed\x18\x08 \x01(\rB\x03\xe0\x41\x02R\tnumPassed\x12>\n\x06status\x18\t \x01(\x0e\x32!.sift.reports.v1.ReportRuleStatusB\x03\xe0\x41\x02R\x06status\x12T\n\x0estatus_details\x18\n \x01(\x0b\x32(.sift.reports.v1.ReportRuleStatusDetailsB\x03\xe0\x41\x02R\rstatusDetails\x12\x42\n\x0c\x63reated_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1e\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x42\n\x0c\x64\x65leted_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0b\x64\x65letedDate\"+\n\tReportTag\x12\x1e\n\x08tag_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07tagName\"\xe6\x03\n\x17ReportRuleStatusDetails\x12K\n\x07\x63reated\x18\x01 \x01(\x0b\x32/.sift.reports.v1.ReportRuleStatusDetailsCreatedH\x00R\x07\x63reated\x12\x42\n\x04live\x18\x02 \x01(\x0b\x32,.sift.reports.v1.ReportRuleStatusDetailsLiveH\x00R\x04live\x12N\n\x08\x66inished\x18\x03 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsFinishedH\x00R\x08\x66inished\x12H\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32..sift.reports.v1.ReportRuleStatusDetailsFailedH\x00R\x06\x66\x61iled\x12N\n\x08\x63\x61nceled\x18\x05 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsCanceledH\x00R\x08\x63\x61nceled\x12\x45\n\x05\x65rror\x18\x06 \x01(\x0b\x32-.sift.reports.v1.ReportRuleStatusDetailsErrorH\x00R\x05\x65rrorB\t\n\x07\x64\x65tails\" \n\x1eReportRuleStatusDetailsCreated\"\x1d\n\x1bReportRuleStatusDetailsLive\"q\n\x1fReportRuleStatusDetailsFinished\x12\x1b\n\x06stdout\x18\x01 \x01(\tH\x00R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x02 \x01(\tH\x01R\x06stderr\x88\x01\x01\x42\t\n\x07_stdoutB\t\n\x07_stderr\"\xc9\x01\n\x1dReportRuleStatusDetailsFailed\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"!\n\x1fReportRuleStatusDetailsCanceled\"\xc8\x01\n\x1cReportRuleStatusDetailsError\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"\xd2\x03\n\x13\x43reateReportRequest\x12\x8b\x01\n#report_from_report_template_request\x18\x01 \x01(\x0b\x32\x36.sift.reports.v1.CreateReportFromReportTemplateRequestB\x03\xe0\x41\x01H\x00R\x1freportFromReportTemplateRequest\x12o\n\x19report_from_rules_request\x18\x02 \x01(\x0b\x32-.sift.reports.v1.CreateReportFromRulesRequestB\x03\xe0\x41\x01H\x00R\x16reportFromRulesRequest\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x1a\n\x06run_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x1c\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02H\x01R\x04name\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\t\n\x07requestB\x07\n\x05_name\"L\n\x14\x43reateReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"Z\n%CreateReportFromReportTemplateRequest\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10reportTemplateId\"\xd9\x02\n\x1c\x43reateReportFromRulesRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02H\x01R\x0b\x64\x65scription\x88\x01\x01\x12 \n\ttag_names\x18\x03 \x03(\tB\x03\xe0\x41\x02R\x08tagNames\x12M\n\x08rule_ids\x18\x04 \x01(\x0b\x32+.sift.reports.v1.CreateReportRequestRuleIdsB\x03\xe0\x41\x01H\x00R\x07ruleIds\x12_\n\x10rule_client_keys\x18\x05 \x01(\x0b\x32..sift.reports.v1.CreateReportRequestClientKeysB\x03\xe0\x41\x01H\x00R\x0eruleClientKeysB\x12\n\x10rule_identifiersB\x0e\n\x0c_description\"<\n\x1a\x43reateReportRequestRuleIds\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\"N\n\x1d\x43reateReportRequestClientKeys\x12-\n\x10rule_client_keys\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleClientKeys\"4\n\x10GetReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x08reportId\"I\n\x11GetReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"\xc5\x01\n\x12ListReportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"p\n\x13ListReportsResponse\x12\x31\n\x07reports\x18\x01 \x03(\x0b\x32\x17.sift.reports.v1.ReportR\x07reports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"6\n\x12RerunReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"S\n\x13RerunReportResponse\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\x12 \n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"7\n\x13\x43\x61ncelReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"\x16\n\x14\x43\x61ncelReportResponse\"\x8d\x01\n\x13UpdateReportRequest\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x16\n\x14UpdateReportResponse*\xf2\x01\n\x10ReportRuleStatus\x12\"\n\x1eREPORT_RULE_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n\x1aREPORT_RULE_STATUS_CREATED\x10\x01\x12\x1b\n\x17REPORT_RULE_STATUS_LIVE\x10\x02\x12\x1f\n\x1bREPORT_RULE_STATUS_FINISHED\x10\x03\x12\x1d\n\x19REPORT_RULE_STATUS_FAILED\x10\x04\x12\x1f\n\x1bREPORT_RULE_STATUS_CANCELED\x10\x05\x12\x1c\n\x18REPORT_RULE_STATUS_ERROR\x10\x06\x32\x84\n\n\rReportService\x12\x99\x01\n\tGetReport\x12!.sift.reports.v1.GetReportRequest\x1a\".sift.reports.v1.GetReportResponse\"E\x92\x41\x1f\x12\tGetReport\x1a\x12Retrieve a report.\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/reports/{report_id}\x12\x9a\x01\n\x0c\x43reateReport\x12$.sift.reports.v1.CreateReportRequest\x1a%.sift.reports.v1.CreateReportResponse\"=\x92\x41 \x12\x0c\x43reateReport\x1a\x10\x43reate a report.\x82\xd3\xe4\x93\x02\x14\"\x0f/api/v1/reports:\x01*\x12\x9a\x01\n\x0cUpdateReport\x12$.sift.reports.v1.UpdateReportRequest\x1a%.sift.reports.v1.UpdateReportResponse\"=\x92\x41 \x12\x0cUpdateReport\x1a\x10Update a report.\x82\xd3\xe4\x93\x02\x14\x1a\x0f/api/v1/reports:\x01*\x12\x90\x01\n\x0bListReports\x12#.sift.reports.v1.ListReportsRequest\x1a$.sift.reports.v1.ListReportsResponse\"6\x92\x41\x1c\x12\x0bListReports\x1a\rList reports.\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/reports\x12\xc2\x02\n\x0bRerunReport\x12#.sift.reports.v1.RerunReportRequest\x1a$.sift.reports.v1.RerunReportResponse\"\xe7\x01\x92\x41\xba\x01\x12\x0bRerunReport\x1a\xaa\x01Rerunning a report will create a new report with the same rule versions and run as the original report and run the evaluation again using the most up-to-date set of data.\x82\xd3\xe4\x93\x02#\"!/api/v1/reports/{report_id}:rerun\x12\xc4\x02\n\x0c\x43\x61ncelReport\x12$.sift.reports.v1.CancelReportRequest\x1a%.sift.reports.v1.CancelReportResponse\"\xe6\x01\x92\x41\xb8\x01\x12\x0c\x43\x61ncelReport\x1a\xa7\x01\x43\x61nceling a report will stop the evaluation of the report and mark it as canceled. Any results that have been calculated up to the point of cancellation will be saved.\x82\xd3\xe4\x93\x02$\"\"/api/v1/reports/{report_id}:cancelB\x96\x01\n\x13\x63om.sift.reports.v1B\x0cReportsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0fSift.Reports.V1\xca\x02\x0fSift\\Reports\\V1\xe2\x02\x1bSift\\Reports\\V1\\GPBMetadata\xea\x02\x11Sift::Reports::V1\x92\x41\x12\x12\x10\n\x0eReport serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -60,6 +60,8 @@ _globals['_REPORT'].fields_by_name['archived_date']._serialized_options = b'\340A\001' _globals['_REPORT'].fields_by_name['metadata']._loaded_options = None _globals['_REPORT'].fields_by_name['metadata']._serialized_options = b'\340A\002' + _globals['_REPORT'].fields_by_name['is_archived']._loaded_options = None + _globals['_REPORT'].fields_by_name['is_archived']._serialized_options = b'\340A\001' _globals['_REPORTRULESUMMARY'].fields_by_name['rule_id']._loaded_options = None _globals['_REPORTRULESUMMARY'].fields_by_name['rule_id']._serialized_options = b'\340A\002' _globals['_REPORTRULESUMMARY'].fields_by_name['rule_client_key']._loaded_options = None @@ -162,60 +164,60 @@ _globals['_REPORTSERVICE'].methods_by_name['RerunReport']._serialized_options = b'\222A\272\001\022\013RerunReport\032\252\001Rerunning a report will create a new report with the same rule versions and run as the original report and run the evaluation again using the most up-to-date set of data.\202\323\344\223\002#\"!/api/v1/reports/{report_id}:rerun' _globals['_REPORTSERVICE'].methods_by_name['CancelReport']._loaded_options = None _globals['_REPORTSERVICE'].methods_by_name['CancelReport']._serialized_options = b'\222A\270\001\022\014CancelReport\032\247\001Canceling a report will stop the evaluation of the report and mark it as canceled. Any results that have been calculated up to the point of cancellation will be saved.\202\323\344\223\002$\"\"/api/v1/reports/{report_id}:cancel' - _globals['_REPORTRULESTATUS']._serialized_start=5031 - _globals['_REPORTRULESTATUS']._serialized_end=5273 + _globals['_REPORTRULESTATUS']._serialized_start=5069 + _globals['_REPORTRULESTATUS']._serialized_end=5311 _globals['_REPORT']._serialized_start=262 - _globals['_REPORT']._serialized_end=1165 - _globals['_REPORTRULESUMMARY']._serialized_start=1168 - _globals['_REPORTRULESUMMARY']._serialized_end=1910 - _globals['_REPORTTAG']._serialized_start=1912 - _globals['_REPORTTAG']._serialized_end=1955 - _globals['_REPORTRULESTATUSDETAILS']._serialized_start=1958 - _globals['_REPORTRULESTATUSDETAILS']._serialized_end=2444 - _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_start=2446 - _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_end=2478 - _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_start=2480 - _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_end=2509 - _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_start=2511 - _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_end=2624 - _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_start=2627 - _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_end=2828 - _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_start=2830 - _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_end=2863 - _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_start=2866 - _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_end=3066 - _globals['_CREATEREPORTREQUEST']._serialized_start=3069 - _globals['_CREATEREPORTREQUEST']._serialized_end=3535 - _globals['_CREATEREPORTRESPONSE']._serialized_start=3537 - _globals['_CREATEREPORTRESPONSE']._serialized_end=3613 - _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_start=3615 - _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_end=3705 - _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_start=3708 - _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_end=4053 - _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_start=4055 - _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_end=4115 - _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_start=4117 - _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_end=4195 - _globals['_GETREPORTREQUEST']._serialized_start=4197 - _globals['_GETREPORTREQUEST']._serialized_end=4249 - _globals['_GETREPORTRESPONSE']._serialized_start=4251 - _globals['_GETREPORTRESPONSE']._serialized_end=4324 - _globals['_LISTREPORTSREQUEST']._serialized_start=4327 - _globals['_LISTREPORTSREQUEST']._serialized_end=4524 - _globals['_LISTREPORTSRESPONSE']._serialized_start=4526 - _globals['_LISTREPORTSRESPONSE']._serialized_end=4638 - _globals['_RERUNREPORTREQUEST']._serialized_start=4640 - _globals['_RERUNREPORTREQUEST']._serialized_end=4694 - _globals['_RERUNREPORTRESPONSE']._serialized_start=4696 - _globals['_RERUNREPORTRESPONSE']._serialized_end=4779 - _globals['_CANCELREPORTREQUEST']._serialized_start=4781 - _globals['_CANCELREPORTREQUEST']._serialized_end=4836 - _globals['_CANCELREPORTRESPONSE']._serialized_start=4838 - _globals['_CANCELREPORTRESPONSE']._serialized_end=4860 - _globals['_UPDATEREPORTREQUEST']._serialized_start=4863 - _globals['_UPDATEREPORTREQUEST']._serialized_end=5004 - _globals['_UPDATEREPORTRESPONSE']._serialized_start=5006 - _globals['_UPDATEREPORTRESPONSE']._serialized_end=5028 - _globals['_REPORTSERVICE']._serialized_start=5276 - _globals['_REPORTSERVICE']._serialized_end=6560 + _globals['_REPORT']._serialized_end=1203 + _globals['_REPORTRULESUMMARY']._serialized_start=1206 + _globals['_REPORTRULESUMMARY']._serialized_end=1948 + _globals['_REPORTTAG']._serialized_start=1950 + _globals['_REPORTTAG']._serialized_end=1993 + _globals['_REPORTRULESTATUSDETAILS']._serialized_start=1996 + _globals['_REPORTRULESTATUSDETAILS']._serialized_end=2482 + _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_start=2484 + _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_end=2516 + _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_start=2518 + _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_end=2547 + _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_start=2549 + _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_end=2662 + _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_start=2665 + _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_end=2866 + _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_start=2868 + _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_end=2901 + _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_start=2904 + _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_end=3104 + _globals['_CREATEREPORTREQUEST']._serialized_start=3107 + _globals['_CREATEREPORTREQUEST']._serialized_end=3573 + _globals['_CREATEREPORTRESPONSE']._serialized_start=3575 + _globals['_CREATEREPORTRESPONSE']._serialized_end=3651 + _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_start=3653 + _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_end=3743 + _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_start=3746 + _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_end=4091 + _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_start=4093 + _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_end=4153 + _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_start=4155 + _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_end=4233 + _globals['_GETREPORTREQUEST']._serialized_start=4235 + _globals['_GETREPORTREQUEST']._serialized_end=4287 + _globals['_GETREPORTRESPONSE']._serialized_start=4289 + _globals['_GETREPORTRESPONSE']._serialized_end=4362 + _globals['_LISTREPORTSREQUEST']._serialized_start=4365 + _globals['_LISTREPORTSREQUEST']._serialized_end=4562 + _globals['_LISTREPORTSRESPONSE']._serialized_start=4564 + _globals['_LISTREPORTSRESPONSE']._serialized_end=4676 + _globals['_RERUNREPORTREQUEST']._serialized_start=4678 + _globals['_RERUNREPORTREQUEST']._serialized_end=4732 + _globals['_RERUNREPORTRESPONSE']._serialized_start=4734 + _globals['_RERUNREPORTRESPONSE']._serialized_end=4817 + _globals['_CANCELREPORTREQUEST']._serialized_start=4819 + _globals['_CANCELREPORTREQUEST']._serialized_end=4874 + _globals['_CANCELREPORTRESPONSE']._serialized_start=4876 + _globals['_CANCELREPORTRESPONSE']._serialized_end=4898 + _globals['_UPDATEREPORTREQUEST']._serialized_start=4901 + _globals['_UPDATEREPORTREQUEST']._serialized_end=5042 + _globals['_UPDATEREPORTRESPONSE']._serialized_start=5044 + _globals['_UPDATEREPORTRESPONSE']._serialized_end=5066 + _globals['_REPORTSERVICE']._serialized_start=5314 + _globals['_REPORTSERVICE']._serialized_end=6598 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/reports/v1/reports_pb2.pyi b/python/lib/sift/reports/v1/reports_pb2.pyi index efbb3b317..c281070b2 100644 --- a/python/lib/sift/reports/v1/reports_pb2.pyi +++ b/python/lib/sift/reports/v1/reports_pb2.pyi @@ -67,6 +67,7 @@ class Report(google.protobuf.message.Message): JOB_ID_FIELD_NUMBER: builtins.int ARCHIVED_DATE_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int report_id: builtins.str report_template_id: builtins.str run_id: builtins.str @@ -77,6 +78,7 @@ class Report(google.protobuf.message.Message): modified_by_user_id: builtins.str rerun_from_report_id: builtins.str job_id: builtins.str + is_archived: builtins.bool @property def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -108,9 +110,10 @@ class Report(google.protobuf.message.Message): job_id: builtins.str | None = ..., archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "created_date", b"created_date", "description", b"description", "job_id", b"job_id", "modified_date", b"modified_date", "rerun_from_report_id", b"rerun_from_report_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "job_id", b"job_id", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_id", b"report_id", "report_template_id", b"report_template_id", "rerun_from_report_id", b"rerun_from_report_id", "run_id", b"run_id", "summaries", b"summaries", "tags", b"tags"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "is_archived", b"is_archived", "job_id", b"job_id", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_id", b"report_id", "report_template_id", b"report_template_id", "rerun_from_report_id", b"rerun_from_report_id", "run_id", b"run_id", "summaries", b"summaries", "tags", b"tags"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... @typing.overload @@ -559,7 +562,7 @@ class ListReportsRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - Available fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, and `archived_date`. + Available fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, `is_archived`, and `archived_date`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/reports#report). Optional. """ @@ -678,7 +681,7 @@ class UpdateReportRequest(google.protobuf.message.Message): @property def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: - """The list of fields to be updated. The fields available to be updated are `archived_date` and `metadata`.""" + """The list of fields to be updated. The fields available to be updated are `archived_date`, `is_archived`, and `metadata`.""" def __init__( self, diff --git a/python/lib/sift/roles/v2/roles_pb2.py b/python/lib/sift/roles/v2/roles_pb2.py index d117c7650..adc76e1ec 100644 --- a/python/lib/sift/roles/v2/roles_pb2.py +++ b/python/lib/sift/roles/v2/roles_pb2.py @@ -17,7 +17,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/roles/v2/roles.proto\x12\rsift.roles.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"U\n\x04Role\x12\x17\n\x07role_id\x18\x01 \x01(\tR\x06roleId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\"\x8b\x01\n\x10ListRolesRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"f\n\x11ListRolesResponse\x12)\n\x05roles\x18\x01 \x03(\x0b\x32\x13.sift.roles.v2.RoleR\x05roles\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xc7\x01\n\x0bRoleService\x12\xb7\x01\n\tListRoles\x12\x1f.sift.roles.v2.ListRolesRequest\x1a .sift.roles.v2.ListRolesResponse\"g\x92\x41O\x12\tListRoles\x1a)Retrieves roles using an optional filter.*\x17RoleService_ListRolesV2\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v2/rolesB\x88\x01\n\x11\x63om.sift.roles.v2B\nRolesProtoP\x01\xa2\x02\x03SRX\xaa\x02\rSift.Roles.V2\xca\x02\rSift\\Roles\\V2\xe2\x02\x19Sift\\Roles\\V2\\GPBMetadata\xea\x02\x0fSift::Roles::V2\x92\x41\x10\x12\x0e\n\x0cRole Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/roles/v2/roles.proto\x12\rsift.roles.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"t\n\x04Role\x12\x17\n\x07role_id\x18\x01 \x01(\tR\x06roleId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x1d\n\nrole_order\x18\x04 \x01(\x05R\troleOrder\"\x8b\x01\n\x10ListRolesRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"f\n\x11ListRolesResponse\x12)\n\x05roles\x18\x01 \x03(\x0b\x32\x13.sift.roles.v2.RoleR\x05roles\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xc7\x01\n\x0bRoleService\x12\xb7\x01\n\tListRoles\x12\x1f.sift.roles.v2.ListRolesRequest\x1a .sift.roles.v2.ListRolesResponse\"g\x92\x41O\x12\tListRoles\x1a)Retrieves roles using an optional filter.*\x17RoleService_ListRolesV2\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v2/rolesB\x88\x01\n\x11\x63om.sift.roles.v2B\nRolesProtoP\x01\xa2\x02\x03SRX\xaa\x02\rSift.Roles.V2\xca\x02\rSift\\Roles\\V2\xe2\x02\x19Sift\\Roles\\V2\\GPBMetadata\xea\x02\x0fSift::Roles::V2\x92\x41\x10\x12\x0e\n\x0cRole Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,11 +32,11 @@ _globals['_ROLESERVICE'].methods_by_name['ListRoles']._loaded_options = None _globals['_ROLESERVICE'].methods_by_name['ListRoles']._serialized_options = b'\222AO\022\tListRoles\032)Retrieves roles using an optional filter.*\027RoleService_ListRolesV2\202\323\344\223\002\017\022\r/api/v2/roles' _globals['_ROLE']._serialized_start=155 - _globals['_ROLE']._serialized_end=240 - _globals['_LISTROLESREQUEST']._serialized_start=243 - _globals['_LISTROLESREQUEST']._serialized_end=382 - _globals['_LISTROLESRESPONSE']._serialized_start=384 - _globals['_LISTROLESRESPONSE']._serialized_end=486 - _globals['_ROLESERVICE']._serialized_start=489 - _globals['_ROLESERVICE']._serialized_end=688 + _globals['_ROLE']._serialized_end=271 + _globals['_LISTROLESREQUEST']._serialized_start=274 + _globals['_LISTROLESREQUEST']._serialized_end=413 + _globals['_LISTROLESRESPONSE']._serialized_start=415 + _globals['_LISTROLESRESPONSE']._serialized_end=517 + _globals['_ROLESERVICE']._serialized_start=520 + _globals['_ROLESERVICE']._serialized_end=719 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/roles/v2/roles_pb2.pyi b/python/lib/sift/roles/v2/roles_pb2.pyi index 8c36c555b..000c79114 100644 --- a/python/lib/sift/roles/v2/roles_pb2.pyi +++ b/python/lib/sift/roles/v2/roles_pb2.pyi @@ -19,17 +19,20 @@ class Role(google.protobuf.message.Message): ROLE_ID_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int + ROLE_ORDER_FIELD_NUMBER: builtins.int role_id: builtins.str name: builtins.str description: builtins.str + role_order: builtins.int def __init__( self, *, role_id: builtins.str = ..., name: builtins.str = ..., description: builtins.str = ..., + role_order: builtins.int = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["description", b"description", "name", b"name", "role_id", b"role_id"]) -> None: ... + def ClearField(self, field_name: typing.Literal["description", b"description", "name", b"name", "role_id", b"role_id", "role_order", b"role_order"]) -> None: ... global___Role = Role @@ -50,7 +53,6 @@ class ListRolesRequest(google.protobuf.message.Message): page_token: builtins.str """A page token, received from a previous `ListRoles` call. Provide this to retrieve the subsequent page. - When paginating, all other parameters provided to `ListRoles` must match the call that provided the page token. """ diff --git a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py index eb347e47a..13694f06d 100644 --- a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py +++ b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py @@ -20,7 +20,7 @@ from sift.rules.v1 import rules_pb2 as sift_dot_rules_dot_v1_dot_rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-sift/rule_evaluation/v1/rule_evaluation.proto\x12\x17sift.rule_evaluation.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x19sift/rules/v1/rules.proto\"\x96\x06\n\x14\x45valuateRulesRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12\x42\n\x06\x61ssets\x18\x02 \x01(\x0b\x32(.sift.rule_evaluation.v1.AssetsTimeRangeH\x00R\x06\x61ssets\x12M\n\x0erun_time_range\x18\t \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12\x32\n\x14\x61ll_applicable_rules\x18\n \x01(\x08H\x01R\x12\x61llApplicableRules\x12\x66\n\x12\x61nnotation_options\x18\x06 \x01(\x0b\x32\x37.sift.rule_evaluation.v1.EvaluateRulesAnnotationOptionsR\x11\x61nnotationOptions\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12)\n\x0breport_name\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x02R\nreportName\x88\x01\x01\x42\x06\n\x04timeB\x06\n\x04modeB\x0e\n\x0c_report_name\"\xeb\x01\n\x0cRunTimeRange\x12\x39\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierR\x03run\x12\x43\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12?\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x07\x65ndTime\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_time\"\xcf\x01\n\x0f\x41ssetsTimeRange\x12@\n\x06\x61ssets\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x06\x61ssets\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\"k\n$EvaluateRulesFromCurrentRuleVersions\x12\x43\n\x05rules\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersB\x03\xe0\x41\x02R\x05rules\"x\n\x1f\x45valuateRulesFromReportTemplate\x12U\n\x0freport_template\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x02R\x0ereportTemplate\"N\n\x1d\x45valuateRulesFromRuleVersions\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"^\n\x1e\x45valuateRulesAnnotationOptions\x12<\n\x04tags\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x04tags\"\xb7\x01\n\x15\x45valuateRulesResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12%\n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x08reportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x01R\x05jobId\x88\x01\x01\x42\x0c\n\n_report_idB\t\n\x07_job_id\"\xde\x04\n\x1b\x45valuateRulesPreviewRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12M\n\x0erun_time_range\x18\x08 \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12Z\n\x0crule_configs\x18\x06 \x01(\x0b\x32\x35.sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigsH\x01R\x0bruleConfigs\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationIdB\x06\n\x04timeB\x06\n\x04mode\"_\n\x1c\x45valuateRulesFromRuleConfigs\x12?\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x07\x63onfigs\"\xe8\x01\n\x11RulePreviewOutput\x12 \n\trule_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08ruleName\x12\x17\n\x07rule_id\x18\x02 \x01(\tR\x06ruleId\x12&\n\x0frule_version_id\x18\x03 \x01(\tR\rruleVersionId\x12\x1e\n\x08\x61sset_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12 \n\texit_code\x18\x05 \x01(\x05\x42\x03\xe0\x41\x02R\x08\x65xitCode\x12\x16\n\x06stdout\x18\x06 \x01(\tR\x06stdout\x12\x16\n\x06stderr\x18\x07 \x01(\tR\x06stderr\"\xfd\x01\n\x1c\x45valuateRulesPreviewResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations\x12M\n\x0crule_outputs\x18\x03 \x03(\x0b\x32*.sift.rule_evaluation.v1.RulePreviewOutputR\x0bruleOutputs2\xd8\x06\n\x15RuleEvaluationService\x12\xc3\x02\n\rEvaluateRules\x12-.sift.rule_evaluation.v1.EvaluateRulesRequest\x1a..sift.rule_evaluation.v1.EvaluateRulesResponse\"\xd2\x01\x92\x41\xa7\x01\x12\rEvaluateRules\x1a\x95\x01\x45valuate rules from a designated source against a run or asset and return the total amount of annotations created and the ID of the generated report.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/rules/evaluate-rules:\x01*\x12\xda\x02\n\x14\x45valuateRulesPreview\x12\x34.sift.rule_evaluation.v1.EvaluateRulesPreviewRequest\x1a\x35.sift.rule_evaluation.v1.EvaluateRulesPreviewResponse\"\xd4\x01\x92\x41\xa1\x01\x12\x14\x45valuateRulesPreview\x1a\x88\x01Perform a dry run evaluation for existing rules or rule configurations against a run and return the annotations that would be generated.\x82\xd3\xe4\x93\x02)\"$/api/v1/rules/evaluate-rules:preview:\x01*\x1a\x9b\x01\x92\x41\x97\x01\x12\x1aService to evaluate rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\xca\x01\n\x1b\x63om.sift.rule_evaluation.v1B\x13RuleEvaluationProtoP\x01\xa2\x02\x03SRX\xaa\x02\x16Sift.RuleEvaluation.V1\xca\x02\x16Sift\\RuleEvaluation\\V1\xe2\x02\"Sift\\RuleEvaluation\\V1\\GPBMetadata\xea\x02\x18Sift::RuleEvaluation::V1\x92\x41\x1b\x12\x19\n\x17Rule Evaluation Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-sift/rule_evaluation/v1/rule_evaluation.proto\x12\x17sift.rule_evaluation.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x19sift/rules/v1/rules.proto\"\x96\x06\n\x14\x45valuateRulesRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12\x42\n\x06\x61ssets\x18\x02 \x01(\x0b\x32(.sift.rule_evaluation.v1.AssetsTimeRangeH\x00R\x06\x61ssets\x12M\n\x0erun_time_range\x18\t \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12\x32\n\x14\x61ll_applicable_rules\x18\n \x01(\x08H\x01R\x12\x61llApplicableRules\x12\x66\n\x12\x61nnotation_options\x18\x06 \x01(\x0b\x32\x37.sift.rule_evaluation.v1.EvaluateRulesAnnotationOptionsR\x11\x61nnotationOptions\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12)\n\x0breport_name\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x02R\nreportName\x88\x01\x01\x42\x06\n\x04timeB\x06\n\x04modeB\x0e\n\x0c_report_name\"\xeb\x01\n\x0cRunTimeRange\x12\x39\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierR\x03run\x12\x43\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12?\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x07\x65ndTime\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_time\"\xcf\x01\n\x0f\x41ssetsTimeRange\x12@\n\x06\x61ssets\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x06\x61ssets\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\"k\n$EvaluateRulesFromCurrentRuleVersions\x12\x43\n\x05rules\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersB\x03\xe0\x41\x02R\x05rules\"x\n\x1f\x45valuateRulesFromReportTemplate\x12U\n\x0freport_template\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x02R\x0ereportTemplate\"N\n\x1d\x45valuateRulesFromRuleVersions\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"^\n\x1e\x45valuateRulesAnnotationOptions\x12<\n\x04tags\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x04tags\"\xb7\x01\n\x15\x45valuateRulesResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12%\n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x08reportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x01R\x05jobId\x88\x01\x01\x42\x0c\n\n_report_idB\t\n\x07_job_id\"\xde\x04\n\x1b\x45valuateRulesPreviewRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12M\n\x0erun_time_range\x18\x08 \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12Z\n\x0crule_configs\x18\x06 \x01(\x0b\x32\x35.sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigsH\x01R\x0bruleConfigs\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationIdB\x06\n\x04timeB\x06\n\x04mode\"_\n\x1c\x45valuateRulesFromRuleConfigs\x12?\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x07\x63onfigs\"\xae\x01\n\x1c\x45valuateRulesPreviewResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations2\xd8\x06\n\x15RuleEvaluationService\x12\xc3\x02\n\rEvaluateRules\x12-.sift.rule_evaluation.v1.EvaluateRulesRequest\x1a..sift.rule_evaluation.v1.EvaluateRulesResponse\"\xd2\x01\x92\x41\xa7\x01\x12\rEvaluateRules\x1a\x95\x01\x45valuate rules from a designated source against a run or asset and return the total amount of annotations created and the ID of the generated report.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/rules/evaluate-rules:\x01*\x12\xda\x02\n\x14\x45valuateRulesPreview\x12\x34.sift.rule_evaluation.v1.EvaluateRulesPreviewRequest\x1a\x35.sift.rule_evaluation.v1.EvaluateRulesPreviewResponse\"\xd4\x01\x92\x41\xa1\x01\x12\x14\x45valuateRulesPreview\x1a\x88\x01Perform a dry run evaluation for existing rules or rule configurations against a run and return the annotations that would be generated.\x82\xd3\xe4\x93\x02)\"$/api/v1/rules/evaluate-rules:preview:\x01*\x1a\x9b\x01\x92\x41\x97\x01\x12\x1aService to evaluate rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\xca\x01\n\x1b\x63om.sift.rule_evaluation.v1B\x13RuleEvaluationProtoP\x01\xa2\x02\x03SRX\xaa\x02\x16Sift.RuleEvaluation.V1\xca\x02\x16Sift\\RuleEvaluation\\V1\xe2\x02\"Sift\\RuleEvaluation\\V1\\GPBMetadata\xea\x02\x18Sift::RuleEvaluation::V1\x92\x41\x1b\x12\x19\n\x17Rule Evaluation Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -60,12 +60,6 @@ _globals['_EVALUATERULESPREVIEWREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' _globals['_EVALUATERULESFROMRULECONFIGS'].fields_by_name['configs']._loaded_options = None _globals['_EVALUATERULESFROMRULECONFIGS'].fields_by_name['configs']._serialized_options = b'\340A\002' - _globals['_RULEPREVIEWOUTPUT'].fields_by_name['rule_name']._loaded_options = None - _globals['_RULEPREVIEWOUTPUT'].fields_by_name['rule_name']._serialized_options = b'\340A\002' - _globals['_RULEPREVIEWOUTPUT'].fields_by_name['asset_id']._loaded_options = None - _globals['_RULEPREVIEWOUTPUT'].fields_by_name['asset_id']._serialized_options = b'\340A\002' - _globals['_RULEPREVIEWOUTPUT'].fields_by_name['exit_code']._loaded_options = None - _globals['_RULEPREVIEWOUTPUT'].fields_by_name['exit_code']._serialized_options = b'\340A\002' _globals['_EVALUATERULESPREVIEWRESPONSE'].fields_by_name['created_annotation_count']._loaded_options = None _globals['_EVALUATERULESPREVIEWRESPONSE'].fields_by_name['created_annotation_count']._serialized_options = b'\340A\002' _globals['_RULEEVALUATIONSERVICE']._loaded_options = None @@ -94,10 +88,8 @@ _globals['_EVALUATERULESPREVIEWREQUEST']._serialized_end=2733 _globals['_EVALUATERULESFROMRULECONFIGS']._serialized_start=2735 _globals['_EVALUATERULESFROMRULECONFIGS']._serialized_end=2830 - _globals['_RULEPREVIEWOUTPUT']._serialized_start=2833 - _globals['_RULEPREVIEWOUTPUT']._serialized_end=3065 - _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_start=3068 - _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_end=3321 - _globals['_RULEEVALUATIONSERVICE']._serialized_start=3324 - _globals['_RULEEVALUATIONSERVICE']._serialized_end=4180 + _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_start=2833 + _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_end=3007 + _globals['_RULEEVALUATIONSERVICE']._serialized_start=3010 + _globals['_RULEEVALUATIONSERVICE']._serialized_end=3866 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi index c349c3b81..234a76ead 100644 --- a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi +++ b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi @@ -283,58 +283,21 @@ class EvaluateRulesFromRuleConfigs(google.protobuf.message.Message): global___EvaluateRulesFromRuleConfigs = EvaluateRulesFromRuleConfigs -@typing.final -class RulePreviewOutput(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RULE_NAME_FIELD_NUMBER: builtins.int - RULE_ID_FIELD_NUMBER: builtins.int - RULE_VERSION_ID_FIELD_NUMBER: builtins.int - ASSET_ID_FIELD_NUMBER: builtins.int - EXIT_CODE_FIELD_NUMBER: builtins.int - STDOUT_FIELD_NUMBER: builtins.int - STDERR_FIELD_NUMBER: builtins.int - rule_name: builtins.str - rule_id: builtins.str - rule_version_id: builtins.str - asset_id: builtins.str - exit_code: builtins.int - stdout: builtins.str - stderr: builtins.str - def __init__( - self, - *, - rule_name: builtins.str = ..., - rule_id: builtins.str = ..., - rule_version_id: builtins.str = ..., - asset_id: builtins.str = ..., - exit_code: builtins.int = ..., - stdout: builtins.str = ..., - stderr: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id", "exit_code", b"exit_code", "rule_id", b"rule_id", "rule_name", b"rule_name", "rule_version_id", b"rule_version_id", "stderr", b"stderr", "stdout", b"stdout"]) -> None: ... - -global___RulePreviewOutput = RulePreviewOutput - @typing.final class EvaluateRulesPreviewResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor CREATED_ANNOTATION_COUNT_FIELD_NUMBER: builtins.int DRY_RUN_ANNOTATIONS_FIELD_NUMBER: builtins.int - RULE_OUTPUTS_FIELD_NUMBER: builtins.int created_annotation_count: builtins.int @property def dry_run_annotations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.rules.v1.rules_pb2.DryRunAnnotation]: ... - @property - def rule_outputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RulePreviewOutput]: ... def __init__( self, *, created_annotation_count: builtins.int = ..., dry_run_annotations: collections.abc.Iterable[sift.rules.v1.rules_pb2.DryRunAnnotation] | None = ..., - rule_outputs: collections.abc.Iterable[global___RulePreviewOutput] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["created_annotation_count", b"created_annotation_count", "dry_run_annotations", b"dry_run_annotations", "rule_outputs", b"rule_outputs"]) -> None: ... + def ClearField(self, field_name: typing.Literal["created_annotation_count", b"created_annotation_count", "dry_run_annotations", b"dry_run_annotations"]) -> None: ... global___EvaluateRulesPreviewResponse = EvaluateRulesPreviewResponse diff --git a/python/lib/sift/rules/v1/rules_pb2.py b/python/lib/sift/rules/v1/rules_pb2.py index 9ddf730c5..b8aa63505 100644 --- a/python/lib/sift/rules/v1/rules_pb2.py +++ b/python/lib/sift/rules/v1/rules_pb2.py @@ -22,7 +22,7 @@ from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/rules/v1/rules.proto\x12\rsift.rules.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a%sift/annotations/v1/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xdb\x07\n\x04Rule\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\x08\x61sset_id\x18\x02 \x01(\tB\x05\x18\x01\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\"\n\nis_enabled\x18\x06 \x01(\x08\x42\x03\xe0\x41\x02R\tisEnabled\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x41\n\nconditions\x18\x0c \x03(\x0b\x32\x1c.sift.rules.v1.RuleConditionB\x03\xe0\x41\x02R\nconditions\x12\x42\n\x0crule_version\x18\r \x01(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0bruleVersion\x12\"\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12[\n\x13\x61sset_configuration\x18\x0f \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationB\x03\xe0\x41\x02R\x12\x61ssetConfiguration\x12W\n\x13\x63ontextual_channels\x18\x10 \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsB\x03\xe0\x41\x02R\x12\x63ontextualChannels\x12\x42\n\x0c\x64\x65leted_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0b\x64\x65letedDate\x12$\n\x0bis_external\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\nisExternal\x12@\n\x08metadata\x18\x13 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataJ\x04\x08\x05\x10\x06\"\x9b\x04\n\rRuleCondition\x12/\n\x11rule_condition_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12\x1c\n\x07rule_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x07\x61\x63tions\x18\t \x03(\x0b\x32\x19.sift.rules.v1.RuleActionB\x03\xe0\x41\x02R\x07\x61\x63tions\x12>\n\x19rule_condition_version_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x16ruleConditionVersionIdJ\x04\x08\x04\x10\x05\"\xa6\x04\n\nRuleAction\x12)\n\x0erule_action_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cruleActionId\x12/\n\x11rule_condition_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12?\n\x0b\x61\x63tion_type\x18\x03 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x04 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfiguration\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x16rule_action_version_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x13ruleActionVersionId\"N\n\x16RuleAssetConfiguration\x12\x1b\n\tasset_ids\x18\x01 \x03(\tR\x08\x61ssetIds\x12\x17\n\x07tag_ids\x18\x02 \x03(\tR\x06tagIds\"V\n\x12\x43ontextualChannels\x12@\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceB\x03\xe0\x41\x02R\x08\x63hannels\"\xb6\x01\n\x1f\x41ssetExpressionValidationResult\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nasset_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12%\n\x0c\x61sset_tag_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\nassetTagId\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xc6\x03\n\x12SearchRulesRequest\x12\x19\n\x05limit\x18\x01 \x01(\rH\x00R\x05limit\x88\x01\x01\x12\x16\n\x06offset\x18\x02 \x01(\rR\x06offset\x12\x35\n\x05order\x18\x03 \x01(\x0e\x32\x1a.sift.rules.v1.SearchOrderH\x01R\x05order\x88\x01\x01\x12!\n\x0cname_matches\x18\x04 \x01(\tR\x0bnameMatches\x12%\n\x0e\x63\x61se_sensitive\x18\x05 \x01(\x08R\rcaseSensitive\x12\x16\n\x06regexp\x18\x06 \x01(\x08R\x06regexp\x12\x1e\n\x08order_by\x18\x07 \x01(\tH\x02R\x07orderBy\x88\x01\x01\x12\x19\n\x08rule_ids\x18\x08 \x03(\tR\x07ruleIds\x12\x1b\n\tasset_ids\x18\t \x03(\tR\x08\x61ssetIds\x12\'\n\x0finclude_deleted\x18\n \x01(\x08R\x0eincludeDeleted\x12\x42\n\nasset_tags\x18\x0b \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesR\tassetTagsB\x08\n\x06_limitB\x08\n\x06_orderB\x0b\n\t_order_by\"`\n\x13SearchRulesResponse\x12\x19\n\x05\x63ount\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x05\x63ount\x12.\n\x05rules\x18\x02 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x0eGetRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"?\n\x0fGetRuleResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"\\\n\x14\x42\x61tchGetRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"G\n\x15\x42\x61tchGetRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x11\x43reateRuleRequest\x12=\n\x06update\x18\x01 \x01(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x06update\"2\n\x12\x43reateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\xa1\x05\n\x11UpdateRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tH\x00R\x06ruleId\x88\x01\x01\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12 \n\x08\x61sset_id\x18\x04 \x01(\tB\x05\x18\x01\xe0\x41\x01R\x07\x61ssetId\x12$\n\nis_enabled\x18\x05 \x01(\x08\x42\x05\x18\x01\xe0\x41\x01R\tisEnabled\x12J\n\nconditions\x18\x06 \x03(\x0b\x32%.sift.rules.v1.UpdateConditionRequestB\x03\xe0\x41\x02R\nconditions\x12\'\n\x0forganization_id\x18\x07 \x01(\tR\x0eorganizationId\x12#\n\rversion_notes\x18\x08 \x01(\tR\x0cversionNotes\x12\"\n\nclient_key\x18\t \x01(\tH\x01R\tclientKey\x88\x01\x01\x12V\n\x13\x61sset_configuration\x18\n \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationR\x12\x61ssetConfiguration\x12R\n\x13\x63ontextual_channels\x18\x0b \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsR\x12\x63ontextualChannels\x12\x1f\n\x0bis_external\x18\x0c \x01(\x08R\nisExternal\x12@\n\x08metadata\x18\r \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\n\n\x08_rule_idB\r\n\x0b_client_key\"\xf5\x01\n\x16UpdateConditionRequest\x12/\n\x11rule_condition_id\x18\x01 \x01(\tH\x00R\x0fruleConditionId\x88\x01\x01\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x41\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\".sift.rules.v1.UpdateActionRequestB\x03\xe0\x41\x02R\x07\x61\x63tionsB\x14\n\x12_rule_condition_idJ\x04\x08\x02\x10\x03\"\xe7\x01\n\x13UpdateActionRequest\x12)\n\x0erule_action_id\x18\x01 \x01(\tH\x00R\x0cruleActionId\x88\x01\x01\x12?\n\x0b\x61\x63tion_type\x18\x02 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfigurationB\x11\n\x0f_rule_action_id\"2\n\x12UpdateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\x83\x02\n\x10ValidationResult\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12\x82\x01\n#asset_expression_validation_results\x18\x03 \x03(\x0b\x32..sift.rules.v1.AssetExpressionValidationResultB\x03\xe0\x41\x02R assetExpressionValidationResults\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xcb\x01\n\x17\x42\x61tchUpdateRulesRequest\x12;\n\x05rules\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x05rules\x12(\n\rvalidate_only\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01R\x0cvalidateOnly\x12I\n\x1eoverride_expression_validation\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02R\x1coverrideExpressionValidation\"\x9d\x04\n\x18\x42\x61tchUpdateRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12\x33\n\x13rules_created_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12(\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\x0cvalidateOnly\x12S\n\x12validation_results\x18\x05 \x03(\x0b\x32\x1f.sift.rules.v1.ValidationResultB\x03\xe0\x41\x02R\x11validationResults\x12v\n\x18\x63reated_rule_identifiers\x18\x06 \x03(\x0b\x32\x37.sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiersB\x03\xe0\x41\x02R\x16\x63reatedRuleIdentifiers\x1a\x80\x01\n\x0fRuleIdentifiers\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"U\n\x11\x44\x65leteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x14\n\x12\x44\x65leteRuleResponse\"_\n\x17\x42\x61tchDeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1a\n\x18\x42\x61tchDeleteRulesResponse\"W\n\x13UndeleteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x16\n\x14UndeleteRuleResponse\"a\n\x19\x42\x61tchUndeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1c\n\x1a\x42\x61tchUndeleteRulesResponse\"C\n\x1dViewHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId:\x02\x18\x01\"H\n\x1eViewHumanFriendlyRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson:\x02\x18\x01\"\x97\x01\n\x1fUpdateHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId:\x02\x18\x01\"\x8c\x01\n UpdateHumanFriendlyRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12$\n\x0brules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\nrulesCount\x12\x1f\n\x08messages\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x08messages:\x02\x18\x01\"6\n\x14ViewJsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\";\n\x15ViewJsonRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson\"\x84\x01\n\x10JsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\"\xc1\x02\n\x11JsonRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12/\n\x11total_rules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x0ftotalRulesCount\x12\x33\n\x13rules_created_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12\x33\n\x13rules_deleted_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesDeletedCount\x12*\n\x0e\x65rror_messages\x18\x06 \x01(\tH\x00R\rerrorMessages\x88\x01\x01\x42\x11\n\x0f_error_messages\"Z\n\x18ValidateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"^\n\x19ValidateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"X\n\x16UpdateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"\\\n\x17UpdateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"\x95\x01\n\x10ListRulesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"k\n\x11ListRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x95\x01\n\x17ListRuleVersionsRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x16\n\x06\x66ilter\x18\x04 \x01(\tR\x06\x66ilter\"\x9a\x03\n\x0bRuleVersion\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x1d\n\x07version\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07version\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12(\n\rversion_notes\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0cversionNotes\x12=\n\x18generated_change_message\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x16generatedChangeMessage\x12\x42\n\x0c\x64\x65leted_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0b\x64\x65letedDate\"\x88\x01\n\x18ListRuleVersionsResponse\x12\x44\n\rrule_versions\x18\x01 \x03(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0cruleVersions\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"D\n\x15GetRuleVersionRequest\x12+\n\x0frule_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\"F\n\x16GetRuleVersionResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"L\n\x1b\x42\x61tchGetRuleVersionsRequest\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"N\n\x1c\x42\x61tchGetRuleVersionsResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"\xf4\x01\n\x17RuleConditionExpression\x12r\n\x19single_channel_comparison\x18\x01 \x01(\x0b\x32\x30.sift.rules.v1.SingleChannelComparisonExpressionB\x02\x18\x01H\x00R\x17singleChannelComparison\x12W\n\x12\x63\x61lculated_channel\x18\x02 \x01(\x0b\x32&.sift.rules.v1.CalculatedChannelConfigH\x00R\x11\x63\x61lculatedChannelB\x0c\n\nexpression\"\xcb\x02\n!SingleChannelComparisonExpression\x12\x30\n\x11\x63hannel_component\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelComponent\x12&\n\x0c\x63hannel_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x63hannelName\x12G\n\ncomparator\x18\x03 \x01(\x0e\x32\".sift.rules.v1.ConditionComparatorB\x03\xe0\x41\x02R\ncomparator\x12\x18\n\x06\x64ouble\x18\x04 \x01(\x01H\x00R\x06\x64ouble\x12\x18\n\x06string\x18\x05 \x01(\tH\x00R\x06string\x12\x42\n\nlast_value\x18\x06 \x01(\x0b\x32!.sift.rules.v1.LastValueThresholdH\x00R\tlastValueB\x0b\n\tthreshold\"\x14\n\x12LastValueThreshold\"\xfb\x02\n\x17\x43\x61lculatedChannelConfig\x12q\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32=.sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntryB\x03\xe0\x41\x02R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12\x61\n\x15\x66unction_dependencies\x18\x03 \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x01R\x14\x66unctionDependencies\x1a\x65\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceR\x05value:\x02\x38\x01\"N\n\x10\x43hannelReference\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12!\n\tcomponent\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tcomponent\"\xd0\x01\n\x17RuleActionConfiguration\x12T\n\x0cnotification\x18\x01 \x01(\x0b\x32..sift.rules.v1.NotificationActionConfigurationH\x00R\x0cnotification\x12N\n\nannotation\x18\x02 \x01(\x0b\x32,.sift.rules.v1.AnnotationActionConfigurationH\x00R\nannotationB\x0f\n\rconfiguration\"T\n\x1fNotificationActionConfiguration\x12\x31\n\x12recipient_user_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x10recipientUserIds\"\x94\x02\n\x1d\x41nnotationActionConfiguration\x12\x1c\n\x07tag_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x06tagIds\x12L\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeR\x0e\x61nnotationType\x12\x32\n\x13\x61ssigned_to_user_id\x18\x03 \x01(\tH\x00R\x10\x61ssignedToUserId\x88\x01\x01\x12;\n\x08metadata\x18\x04 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x08metadataB\x16\n\x14_assigned_to_user_id\"\x8e\x02\n\x14\x45valuateRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\x12X\n\x12\x61nnotation_options\x18\x02 \x01(\x0b\x32).sift.rules.v1.EvaluatedAnnotationOptionsR\x11\x61nnotationOptions\x12\x17\n\x06run_id\x18\x03 \x01(\tH\x00R\x05runId\x12>\n\ntime_range\x18\x04 \x01(\x0b\x32\x1d.sift.rules.v1.TimeRangeQueryH\x00R\ttimeRange\x12\x17\n\x07\x64ry_run\x18\x05 \x01(\x08R\x06\x64ryRun:\x02\x18\x01\x42\x06\n\x04time\"5\n\x1a\x45valuatedAnnotationOptions\x12\x17\n\x07tag_ids\x18\x01 \x03(\tR\x06tagIds\"\x82\x01\n\x0eTimeRangeQuery\x12\x39\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\"\xfd\x01\n\x15\x45valuateRulesResponse\x12\x38\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations\x12\x1a\n\x06job_id\x18\x03 \x01(\tH\x00R\x05jobId\x88\x01\x01\x12 \n\treport_id\x18\x04 \x01(\tH\x01R\x08reportId\x88\x01\x01:\x02\x18\x01\x42\t\n\x07_job_idB\x0c\n\n_report_id\"\xf7\x01\n\x10\x44ryRunAnnotation\x12!\n\x0c\x63ondition_id\x18\x01 \x01(\tR\x0b\x63onditionId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x14\x63ondition_version_id\x18\x05 \x01(\tR\x12\x63onditionVersionId*\\\n\x0bSearchOrder\x12 \n\x18SEARCH_ORDER_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x14\n\x10SEARCH_ORDER_ASC\x10\x01\x12\x15\n\x11SEARCH_ORDER_DESC\x10\x02*\\\n\nActionKind\x12\x1f\n\x17\x41\x43TION_KIND_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x10\n\x0cNOTIFICATION\x10\x01\x12\x0e\n\nANNOTATION\x10\x02\x12\x0b\n\x07WEBHOOK\x10\x03*\xad\x01\n\x13\x43onditionComparator\x12(\n CONDITION_COMPARATOR_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\r\n\tLESS_THAN\x10\x01\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x04\x12\t\n\x05\x45QUAL\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x32\xd0 \n\x0bRuleService\x12\xb9\x01\n\x0bSearchRules\x12!.sift.rules.v1.SearchRulesRequest\x1a\".sift.rules.v1.SearchRulesResponse\"c\x92\x41\x41\x12\x0bSearchRules\x1a\x32Queries rules based on provided search parameters.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/search:\x01*\x12\x94\x01\n\x07GetRule\x12\x1d.sift.rules.v1.GetRuleRequest\x1a\x1e.sift.rules.v1.GetRuleResponse\"J\x92\x41\x32\x12\x07GetRule\x1a\'Retrieves the latest version of a rule.\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v1/rules\x12\xaa\x01\n\rBatchGetRules\x12#.sift.rules.v1.BatchGetRulesRequest\x1a$.sift.rules.v1.BatchGetRulesResponse\"N\x92\x41*\x12\rBatchGetRules\x1a\x19Retrieves multiple rules.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules:batchGet:\x01*\x12\x8b\x01\n\nCreateRule\x12 .sift.rules.v1.CreateRuleRequest\x1a!.sift.rules.v1.CreateRuleResponse\"8\x92\x41\x1d\x12\nCreateRule\x1a\x0f\x43reates a rule.\x82\xd3\xe4\x93\x02\x12\"\r/api/v1/rules:\x01*\x12\x95\x01\n\nUpdateRule\x12 .sift.rules.v1.UpdateRuleRequest\x1a!.sift.rules.v1.UpdateRuleResponse\"B\x92\x41\'\x12\nUpdateRule\x1a\x19Updates an existing rule.\x82\xd3\xe4\x93\x02\x12\x1a\r/api/v1/rules:\x01*\x12\xda\x01\n\x10\x42\x61tchUpdateRules\x12&.sift.rules.v1.BatchUpdateRulesRequest\x1a\'.sift.rules.v1.BatchUpdateRulesResponse\"u\x92\x41N\x12\x10\x42\x61tchUpdateRules\x1a:Updates existing rules or creates rules that do not exist.\x82\xd3\xe4\x93\x02\x1e\x1a\x19/api/v1/rules:batchUpdate:\x01*\x12\x92\x01\n\nDeleteRule\x12 .sift.rules.v1.DeleteRuleRequest\x1a!.sift.rules.v1.DeleteRuleResponse\"?\x92\x41\x1d\x12\nDeleteRule\x1a\x0f\x44\x65letes a rule.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/delete:\x01*\x12\xb7\x01\n\x10\x42\x61tchDeleteRules\x12&.sift.rules.v1.BatchDeleteRulesRequest\x1a\'.sift.rules.v1.BatchDeleteRulesResponse\"R\x92\x41+\x12\x10\x42\x61tchDeleteRules\x1a\x17\x44\x65letes multiple rules.\x82\xd3\xe4\x93\x02\x1e\"\x19/api/v1/rules/batchDelete:\x01*\x12\x9e\x01\n\x0cUndeleteRule\x12\".sift.rules.v1.UndeleteRuleRequest\x1a#.sift.rules.v1.UndeleteRuleResponse\"E\x92\x41!\x12\x0cUndeleteRule\x1a\x11Undeletes a rule.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/undelete:\x01*\x12\xc3\x01\n\x12\x42\x61tchUndeleteRules\x12(.sift.rules.v1.BatchUndeleteRulesRequest\x1a).sift.rules.v1.BatchUndeleteRulesResponse\"X\x92\x41/\x12\x12\x42\x61tchUndeleteRules\x1a\x19Undeletes multiple rules.\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/rules/batchUndelete:\x01*\x12\xdf\x01\n\rEvaluateRules\x12#.sift.rules.v1.EvaluateRulesRequest\x1a$.sift.rules.v1.EvaluateRulesResponse\"\x82\x01\x88\x02\x01\x92\x41[\x12\rEvaluateRules\x1aJEvaluates the provided rules and generate annotations based on the result.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/evaluate:\x01*\x12\x84\x02\n\x16ViewHumanFriendlyRules\x12,.sift.rules.v1.ViewHumanFriendlyRulesRequest\x1a-.sift.rules.v1.ViewHumanFriendlyRulesResponse\"\x8c\x01\x88\x02\x01\x92\x41_\x12\x16ViewHumanFriendlyRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/rules:viewHumanFriendly\x12\xd6\x01\n\rViewJsonRules\x12#.sift.rules.v1.ViewJsonRulesRequest\x1a$.sift.rules.v1.ViewJsonRulesResponse\"z\x88\x02\x01\x92\x41V\x12\rViewJsonRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/rules:viewJson\x12\x94\x02\n\x18UpdateHumanFriendlyRules\x12..sift.rules.v1.UpdateHumanFriendlyRulesRequest\x1a/.sift.rules.v1.UpdateHumanFriendlyRulesResponse\"\x96\x01\x88\x02\x01\x92\x41\x64\x12\x18UpdateHumanFriendlyRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02&\"!/api/v1/rules:updateHumanFriendly:\x01*\x12\x80\x02\n\x11ValidateJsonRules\x12\'.sift.rules.v1.ValidateJsonRulesRequest\x1a(.sift.rules.v1.ValidateJsonRulesResponse\"\x97\x01\x88\x02\x01\x92\x41l\x12\x11ValidateJsonRules\x1aWValidate a batch update for rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/rules:validateJson:\x01*\x12\xe7\x01\n\x0fUpdateJsonRules\x12%.sift.rules.v1.UpdateJsonRulesRequest\x1a&.sift.rules.v1.UpdateJsonRulesResponse\"\x84\x01\x88\x02\x01\x92\x41[\x12\x0fUpdateJsonRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/rules:updateJson:\x01*\x12\x94\x01\n\tListRules\x12\x1f.sift.rules.v1.ListRulesRequest\x1a .sift.rules.v1.ListRulesResponse\"D\x92\x41\'\x12\tListRules\x1a\x1aRetrieves a list of rules.\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/rules:list\x12\xd9\x01\n\x10ListRuleVersions\x12&.sift.rules.v1.ListRuleVersionsRequest\x1a\'.sift.rules.v1.ListRuleVersionsResponse\"t\x92\x41I\x12\x10ListRuleVersions\x1a\x35Retrieves a list of rule versions for the given rule.\x82\xd3\xe4\x93\x02\"\x12 /api/v1/rules/{rule_id}/versions\x12\xb8\x01\n\x0eGetRuleVersion\x12$.sift.rules.v1.GetRuleVersionRequest\x1a%.sift.rules.v1.GetRuleVersionResponse\"Y\x92\x41\x39\x12\x0eGetRuleVersion\x1a\'Retrieves a specific version of a rule.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/rules:version\x12\xdf\x01\n\x14\x42\x61tchGetRuleVersions\x12*.sift.rules.v1.BatchGetRuleVersionsRequest\x1a+.sift.rules.v1.BatchGetRuleVersionsResponse\"n\x92\x41\x42\x12\x14\x42\x61tchGetRuleVersions\x1a*Retrieves multiple rules by rule versions.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/rules:batchGetVersions:\x01*\x1a\xb1\x01\x92\x41\xad\x01\x12\x30Service to programmatically interact with rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\x88\x01\n\x11\x63om.sift.rules.v1B\nRulesProtoP\x01\xa2\x02\x03SRX\xaa\x02\rSift.Rules.V1\xca\x02\rSift\\Rules\\V1\xe2\x02\x19Sift\\Rules\\V1\\GPBMetadata\xea\x02\x0fSift::Rules::V1\x92\x41\x10\x12\x0e\n\x0cRule Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/rules/v1/rules.proto\x12\rsift.rules.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a%sift/annotations/v1/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xc9\x08\n\x04Rule\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\x08\x61sset_id\x18\x02 \x01(\tB\x05\x18\x01\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\"\n\nis_enabled\x18\x06 \x01(\x08\x42\x03\xe0\x41\x02R\tisEnabled\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x41\n\nconditions\x18\x0c \x03(\x0b\x32\x1c.sift.rules.v1.RuleConditionB\x03\xe0\x41\x02R\nconditions\x12\x42\n\x0crule_version\x18\r \x01(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0bruleVersion\x12\"\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12[\n\x13\x61sset_configuration\x18\x0f \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationB\x03\xe0\x41\x02R\x12\x61ssetConfiguration\x12W\n\x13\x63ontextual_channels\x18\x10 \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsB\x03\xe0\x41\x02R\x12\x63ontextualChannels\x12\x44\n\x0c\x64\x65leted_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x05\x18\x01\xe0\x41\x01R\x0b\x64\x65letedDate\x12$\n\x0bis_external\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\nisExternal\x12@\n\x08metadata\x18\x13 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12\x44\n\rarchived_date\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\x15 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedJ\x04\x08\x05\x10\x06\"\x9b\x04\n\rRuleCondition\x12/\n\x11rule_condition_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12\x1c\n\x07rule_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x07\x61\x63tions\x18\t \x03(\x0b\x32\x19.sift.rules.v1.RuleActionB\x03\xe0\x41\x02R\x07\x61\x63tions\x12>\n\x19rule_condition_version_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x16ruleConditionVersionIdJ\x04\x08\x04\x10\x05\"\xa6\x04\n\nRuleAction\x12)\n\x0erule_action_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cruleActionId\x12/\n\x11rule_condition_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12?\n\x0b\x61\x63tion_type\x18\x03 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x04 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfiguration\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x16rule_action_version_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x13ruleActionVersionId\"N\n\x16RuleAssetConfiguration\x12\x1b\n\tasset_ids\x18\x01 \x03(\tR\x08\x61ssetIds\x12\x17\n\x07tag_ids\x18\x02 \x03(\tR\x06tagIds\"V\n\x12\x43ontextualChannels\x12@\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceB\x03\xe0\x41\x02R\x08\x63hannels\"\xb6\x01\n\x1f\x41ssetExpressionValidationResult\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nasset_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12%\n\x0c\x61sset_tag_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\nassetTagId\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xc6\x03\n\x12SearchRulesRequest\x12\x19\n\x05limit\x18\x01 \x01(\rH\x00R\x05limit\x88\x01\x01\x12\x16\n\x06offset\x18\x02 \x01(\rR\x06offset\x12\x35\n\x05order\x18\x03 \x01(\x0e\x32\x1a.sift.rules.v1.SearchOrderH\x01R\x05order\x88\x01\x01\x12!\n\x0cname_matches\x18\x04 \x01(\tR\x0bnameMatches\x12%\n\x0e\x63\x61se_sensitive\x18\x05 \x01(\x08R\rcaseSensitive\x12\x16\n\x06regexp\x18\x06 \x01(\x08R\x06regexp\x12\x1e\n\x08order_by\x18\x07 \x01(\tH\x02R\x07orderBy\x88\x01\x01\x12\x19\n\x08rule_ids\x18\x08 \x03(\tR\x07ruleIds\x12\x1b\n\tasset_ids\x18\t \x03(\tR\x08\x61ssetIds\x12\'\n\x0finclude_deleted\x18\n \x01(\x08R\x0eincludeDeleted\x12\x42\n\nasset_tags\x18\x0b \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesR\tassetTagsB\x08\n\x06_limitB\x08\n\x06_orderB\x0b\n\t_order_by\"`\n\x13SearchRulesResponse\x12\x19\n\x05\x63ount\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x05\x63ount\x12.\n\x05rules\x18\x02 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x0eGetRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"?\n\x0fGetRuleResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"\\\n\x14\x42\x61tchGetRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"G\n\x15\x42\x61tchGetRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x11\x43reateRuleRequest\x12=\n\x06update\x18\x01 \x01(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x06update\"2\n\x12\x43reateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\xc7\x05\n\x11UpdateRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tH\x00R\x06ruleId\x88\x01\x01\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12 \n\x08\x61sset_id\x18\x04 \x01(\tB\x05\x18\x01\xe0\x41\x01R\x07\x61ssetId\x12$\n\nis_enabled\x18\x05 \x01(\x08\x42\x05\x18\x01\xe0\x41\x01R\tisEnabled\x12J\n\nconditions\x18\x06 \x03(\x0b\x32%.sift.rules.v1.UpdateConditionRequestB\x03\xe0\x41\x02R\nconditions\x12\'\n\x0forganization_id\x18\x07 \x01(\tR\x0eorganizationId\x12#\n\rversion_notes\x18\x08 \x01(\tR\x0cversionNotes\x12\"\n\nclient_key\x18\t \x01(\tH\x01R\tclientKey\x88\x01\x01\x12V\n\x13\x61sset_configuration\x18\n \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationR\x12\x61ssetConfiguration\x12R\n\x13\x63ontextual_channels\x18\x0b \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsR\x12\x63ontextualChannels\x12\x1f\n\x0bis_external\x18\x0c \x01(\x08R\nisExternal\x12@\n\x08metadata\x18\r \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x0e \x01(\x08\x42\x03\xe0\x41\x01R\nisArchivedB\n\n\x08_rule_idB\r\n\x0b_client_key\"\xf5\x01\n\x16UpdateConditionRequest\x12/\n\x11rule_condition_id\x18\x01 \x01(\tH\x00R\x0fruleConditionId\x88\x01\x01\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x41\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\".sift.rules.v1.UpdateActionRequestB\x03\xe0\x41\x02R\x07\x61\x63tionsB\x14\n\x12_rule_condition_idJ\x04\x08\x02\x10\x03\"\xe7\x01\n\x13UpdateActionRequest\x12)\n\x0erule_action_id\x18\x01 \x01(\tH\x00R\x0cruleActionId\x88\x01\x01\x12?\n\x0b\x61\x63tion_type\x18\x02 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfigurationB\x11\n\x0f_rule_action_id\"2\n\x12UpdateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\x83\x02\n\x10ValidationResult\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12\x82\x01\n#asset_expression_validation_results\x18\x03 \x03(\x0b\x32..sift.rules.v1.AssetExpressionValidationResultB\x03\xe0\x41\x02R assetExpressionValidationResults\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xcb\x01\n\x17\x42\x61tchUpdateRulesRequest\x12;\n\x05rules\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x05rules\x12(\n\rvalidate_only\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01R\x0cvalidateOnly\x12I\n\x1eoverride_expression_validation\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02R\x1coverrideExpressionValidation\"\x9d\x04\n\x18\x42\x61tchUpdateRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12\x33\n\x13rules_created_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12(\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\x0cvalidateOnly\x12S\n\x12validation_results\x18\x05 \x03(\x0b\x32\x1f.sift.rules.v1.ValidationResultB\x03\xe0\x41\x02R\x11validationResults\x12v\n\x18\x63reated_rule_identifiers\x18\x06 \x03(\x0b\x32\x37.sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiersB\x03\xe0\x41\x02R\x16\x63reatedRuleIdentifiers\x1a\x80\x01\n\x0fRuleIdentifiers\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"U\n\x11\x44\x65leteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x14\n\x12\x44\x65leteRuleResponse\"_\n\x17\x42\x61tchDeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1a\n\x18\x42\x61tchDeleteRulesResponse\"V\n\x12\x41rchiveRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x15\n\x13\x41rchiveRuleResponse\"`\n\x18\x42\x61tchArchiveRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1b\n\x19\x42\x61tchArchiveRulesResponse\"W\n\x13UndeleteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x16\n\x14UndeleteRuleResponse\"a\n\x19\x42\x61tchUndeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1c\n\x1a\x42\x61tchUndeleteRulesResponse\"X\n\x14UnarchiveRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x17\n\x15UnarchiveRuleResponse\"b\n\x1a\x42\x61tchUnarchiveRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1d\n\x1b\x42\x61tchUnarchiveRulesResponse\"C\n\x1dViewHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId:\x02\x18\x01\"H\n\x1eViewHumanFriendlyRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson:\x02\x18\x01\"\x97\x01\n\x1fUpdateHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId:\x02\x18\x01\"\x8c\x01\n UpdateHumanFriendlyRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12$\n\x0brules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\nrulesCount\x12\x1f\n\x08messages\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x08messages:\x02\x18\x01\"6\n\x14ViewJsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\";\n\x15ViewJsonRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson\"\x84\x01\n\x10JsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\"\xc1\x02\n\x11JsonRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12/\n\x11total_rules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x0ftotalRulesCount\x12\x33\n\x13rules_created_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12\x33\n\x13rules_deleted_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesDeletedCount\x12*\n\x0e\x65rror_messages\x18\x06 \x01(\tH\x00R\rerrorMessages\x88\x01\x01\x42\x11\n\x0f_error_messages\"Z\n\x18ValidateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"^\n\x19ValidateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"X\n\x16UpdateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"\\\n\x17UpdateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"\x95\x01\n\x10ListRulesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"k\n\x11ListRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x95\x01\n\x17ListRuleVersionsRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x16\n\x06\x66ilter\x18\x04 \x01(\tR\x06\x66ilter\"\x88\x04\n\x0bRuleVersion\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x1d\n\x07version\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07version\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12(\n\rversion_notes\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0cversionNotes\x12=\n\x18generated_change_message\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x16generatedChangeMessage\x12\x44\n\x0c\x64\x65leted_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x05\x18\x01\xe0\x41\x01R\x0b\x64\x65letedDate\x12\x44\n\rarchived_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\n \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\"\x88\x01\n\x18ListRuleVersionsResponse\x12\x44\n\rrule_versions\x18\x01 \x03(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0cruleVersions\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"D\n\x15GetRuleVersionRequest\x12+\n\x0frule_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\"F\n\x16GetRuleVersionResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"L\n\x1b\x42\x61tchGetRuleVersionsRequest\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"N\n\x1c\x42\x61tchGetRuleVersionsResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"\xf4\x01\n\x17RuleConditionExpression\x12r\n\x19single_channel_comparison\x18\x01 \x01(\x0b\x32\x30.sift.rules.v1.SingleChannelComparisonExpressionB\x02\x18\x01H\x00R\x17singleChannelComparison\x12W\n\x12\x63\x61lculated_channel\x18\x02 \x01(\x0b\x32&.sift.rules.v1.CalculatedChannelConfigH\x00R\x11\x63\x61lculatedChannelB\x0c\n\nexpression\"\xcb\x02\n!SingleChannelComparisonExpression\x12\x30\n\x11\x63hannel_component\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelComponent\x12&\n\x0c\x63hannel_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x63hannelName\x12G\n\ncomparator\x18\x03 \x01(\x0e\x32\".sift.rules.v1.ConditionComparatorB\x03\xe0\x41\x02R\ncomparator\x12\x18\n\x06\x64ouble\x18\x04 \x01(\x01H\x00R\x06\x64ouble\x12\x18\n\x06string\x18\x05 \x01(\tH\x00R\x06string\x12\x42\n\nlast_value\x18\x06 \x01(\x0b\x32!.sift.rules.v1.LastValueThresholdH\x00R\tlastValueB\x0b\n\tthreshold\"\x14\n\x12LastValueThreshold\"\xfb\x02\n\x17\x43\x61lculatedChannelConfig\x12q\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32=.sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntryB\x03\xe0\x41\x02R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12\x61\n\x15\x66unction_dependencies\x18\x03 \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x01R\x14\x66unctionDependencies\x1a\x65\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceR\x05value:\x02\x38\x01\"N\n\x10\x43hannelReference\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12!\n\tcomponent\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tcomponent\"\xd0\x01\n\x17RuleActionConfiguration\x12T\n\x0cnotification\x18\x01 \x01(\x0b\x32..sift.rules.v1.NotificationActionConfigurationH\x00R\x0cnotification\x12N\n\nannotation\x18\x02 \x01(\x0b\x32,.sift.rules.v1.AnnotationActionConfigurationH\x00R\nannotationB\x0f\n\rconfiguration\"T\n\x1fNotificationActionConfiguration\x12\x31\n\x12recipient_user_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x10recipientUserIds\"\x94\x02\n\x1d\x41nnotationActionConfiguration\x12\x1c\n\x07tag_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x06tagIds\x12L\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeR\x0e\x61nnotationType\x12\x32\n\x13\x61ssigned_to_user_id\x18\x03 \x01(\tH\x00R\x10\x61ssignedToUserId\x88\x01\x01\x12;\n\x08metadata\x18\x04 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x08metadataB\x16\n\x14_assigned_to_user_id\"\x8e\x02\n\x14\x45valuateRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\x12X\n\x12\x61nnotation_options\x18\x02 \x01(\x0b\x32).sift.rules.v1.EvaluatedAnnotationOptionsR\x11\x61nnotationOptions\x12\x17\n\x06run_id\x18\x03 \x01(\tH\x00R\x05runId\x12>\n\ntime_range\x18\x04 \x01(\x0b\x32\x1d.sift.rules.v1.TimeRangeQueryH\x00R\ttimeRange\x12\x17\n\x07\x64ry_run\x18\x05 \x01(\x08R\x06\x64ryRun:\x02\x18\x01\x42\x06\n\x04time\"5\n\x1a\x45valuatedAnnotationOptions\x12\x17\n\x07tag_ids\x18\x01 \x03(\tR\x06tagIds\"\x82\x01\n\x0eTimeRangeQuery\x12\x39\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\"\xfd\x01\n\x15\x45valuateRulesResponse\x12\x38\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations\x12\x1a\n\x06job_id\x18\x03 \x01(\tH\x00R\x05jobId\x88\x01\x01\x12 \n\treport_id\x18\x04 \x01(\tH\x01R\x08reportId\x88\x01\x01:\x02\x18\x01\x42\t\n\x07_job_idB\x0c\n\n_report_id\"\xf7\x01\n\x10\x44ryRunAnnotation\x12!\n\x0c\x63ondition_id\x18\x01 \x01(\tR\x0b\x63onditionId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x14\x63ondition_version_id\x18\x05 \x01(\tR\x12\x63onditionVersionId*\\\n\x0bSearchOrder\x12 \n\x18SEARCH_ORDER_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x14\n\x10SEARCH_ORDER_ASC\x10\x01\x12\x15\n\x11SEARCH_ORDER_DESC\x10\x02*\\\n\nActionKind\x12\x1f\n\x17\x41\x43TION_KIND_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x10\n\x0cNOTIFICATION\x10\x01\x12\x0e\n\nANNOTATION\x10\x02\x12\x0b\n\x07WEBHOOK\x10\x03*\xad\x01\n\x13\x43onditionComparator\x12(\n CONDITION_COMPARATOR_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\r\n\tLESS_THAN\x10\x01\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x04\x12\t\n\x05\x45QUAL\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x32\x9f\'\n\x0bRuleService\x12\xb9\x01\n\x0bSearchRules\x12!.sift.rules.v1.SearchRulesRequest\x1a\".sift.rules.v1.SearchRulesResponse\"c\x92\x41\x41\x12\x0bSearchRules\x1a\x32Queries rules based on provided search parameters.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/search:\x01*\x12\x94\x01\n\x07GetRule\x12\x1d.sift.rules.v1.GetRuleRequest\x1a\x1e.sift.rules.v1.GetRuleResponse\"J\x92\x41\x32\x12\x07GetRule\x1a\'Retrieves the latest version of a rule.\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v1/rules\x12\xaa\x01\n\rBatchGetRules\x12#.sift.rules.v1.BatchGetRulesRequest\x1a$.sift.rules.v1.BatchGetRulesResponse\"N\x92\x41*\x12\rBatchGetRules\x1a\x19Retrieves multiple rules.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules:batchGet:\x01*\x12\x8b\x01\n\nCreateRule\x12 .sift.rules.v1.CreateRuleRequest\x1a!.sift.rules.v1.CreateRuleResponse\"8\x92\x41\x1d\x12\nCreateRule\x1a\x0f\x43reates a rule.\x82\xd3\xe4\x93\x02\x12\"\r/api/v1/rules:\x01*\x12\x95\x01\n\nUpdateRule\x12 .sift.rules.v1.UpdateRuleRequest\x1a!.sift.rules.v1.UpdateRuleResponse\"B\x92\x41\'\x12\nUpdateRule\x1a\x19Updates an existing rule.\x82\xd3\xe4\x93\x02\x12\x1a\r/api/v1/rules:\x01*\x12\xda\x01\n\x10\x42\x61tchUpdateRules\x12&.sift.rules.v1.BatchUpdateRulesRequest\x1a\'.sift.rules.v1.BatchUpdateRulesResponse\"u\x92\x41N\x12\x10\x42\x61tchUpdateRules\x1a:Updates existing rules or creates rules that do not exist.\x82\xd3\xe4\x93\x02\x1e\x1a\x19/api/v1/rules:batchUpdate:\x01*\x12\xbb\x01\n\nDeleteRule\x12 .sift.rules.v1.DeleteRuleRequest\x1a!.sift.rules.v1.DeleteRuleResponse\"h\x88\x02\x01\x92\x41\x43\x12\nDeleteRule\x1a\x35\x41rchives a rule. Deprecated: Use ArchiveRule instead.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/delete:\x01*\x12\x98\x01\n\x0b\x41rchiveRule\x12!.sift.rules.v1.ArchiveRuleRequest\x1a\".sift.rules.v1.ArchiveRuleResponse\"B\x92\x41\x1f\x12\x0b\x41rchiveRule\x1a\x10\x41rchives a rule.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/rules/archive:\x01*\x12\xe7\x01\n\x10\x42\x61tchDeleteRules\x12&.sift.rules.v1.BatchDeleteRulesRequest\x1a\'.sift.rules.v1.BatchDeleteRulesResponse\"\x81\x01\x88\x02\x01\x92\x41W\x12\x10\x42\x61tchDeleteRules\x1a\x43\x41rchives multiple rules. Deprecated: Use BatchArchiveRules instead.\x82\xd3\xe4\x93\x02\x1e\"\x19/api/v1/rules/batchDelete:\x01*\x12\xba\x01\n\x11\x42\x61tchArchiveRules\x12\'.sift.rules.v1.BatchArchiveRulesRequest\x1a(.sift.rules.v1.BatchArchiveRulesResponse\"R\x92\x41*\x12\x11\x42\x61tchArchiveRules\x1a\x15\x42\x61tch archives rules.\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/rules/batchArchive:\x01*\x12\xa4\x01\n\rUnarchiveRule\x12#.sift.rules.v1.UnarchiveRuleRequest\x1a$.sift.rules.v1.UnarchiveRuleResponse\"H\x92\x41#\x12\rUnarchiveRule\x1a\x12Unarchives a rule.\x82\xd3\xe4\x93\x02\x1c\"\x17/api/v1/rules/unarchive:\x01*\x12\xc6\x01\n\x13\x42\x61tchUnarchiveRules\x12).sift.rules.v1.BatchUnarchiveRulesRequest\x1a*.sift.rules.v1.BatchUnarchiveRulesResponse\"X\x92\x41.\x12\x13\x42\x61tchUnarchiveRules\x1a\x17\x42\x61tch unarchives rules.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/rules/batchUnarchive:\x01*\x12\xb6\x01\n\x0cUndeleteRule\x12\".sift.rules.v1.UndeleteRuleRequest\x1a#.sift.rules.v1.UndeleteRuleResponse\"]\x88\x02\x01\x92\x41\x36\x12\x0cUndeleteRule\x1a&Deprecated: Use UnarchiveRule instead.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/undelete:\x01*\x12\xd9\x01\n\x12\x42\x61tchUndeleteRules\x12(.sift.rules.v1.BatchUndeleteRulesRequest\x1a).sift.rules.v1.BatchUndeleteRulesResponse\"n\x88\x02\x01\x92\x41\x42\x12\x12\x42\x61tchUndeleteRules\x1a,Deprecated: Use BatchUnarchiveRules instead.\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/rules/batchUndelete:\x01*\x12\xdf\x01\n\rEvaluateRules\x12#.sift.rules.v1.EvaluateRulesRequest\x1a$.sift.rules.v1.EvaluateRulesResponse\"\x82\x01\x88\x02\x01\x92\x41[\x12\rEvaluateRules\x1aJEvaluates the provided rules and generate annotations based on the result.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/evaluate:\x01*\x12\x84\x02\n\x16ViewHumanFriendlyRules\x12,.sift.rules.v1.ViewHumanFriendlyRulesRequest\x1a-.sift.rules.v1.ViewHumanFriendlyRulesResponse\"\x8c\x01\x88\x02\x01\x92\x41_\x12\x16ViewHumanFriendlyRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/rules:viewHumanFriendly\x12\xd6\x01\n\rViewJsonRules\x12#.sift.rules.v1.ViewJsonRulesRequest\x1a$.sift.rules.v1.ViewJsonRulesResponse\"z\x88\x02\x01\x92\x41V\x12\rViewJsonRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/rules:viewJson\x12\x94\x02\n\x18UpdateHumanFriendlyRules\x12..sift.rules.v1.UpdateHumanFriendlyRulesRequest\x1a/.sift.rules.v1.UpdateHumanFriendlyRulesResponse\"\x96\x01\x88\x02\x01\x92\x41\x64\x12\x18UpdateHumanFriendlyRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02&\"!/api/v1/rules:updateHumanFriendly:\x01*\x12\x80\x02\n\x11ValidateJsonRules\x12\'.sift.rules.v1.ValidateJsonRulesRequest\x1a(.sift.rules.v1.ValidateJsonRulesResponse\"\x97\x01\x88\x02\x01\x92\x41l\x12\x11ValidateJsonRules\x1aWValidate a batch update for rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/rules:validateJson:\x01*\x12\xe7\x01\n\x0fUpdateJsonRules\x12%.sift.rules.v1.UpdateJsonRulesRequest\x1a&.sift.rules.v1.UpdateJsonRulesResponse\"\x84\x01\x88\x02\x01\x92\x41[\x12\x0fUpdateJsonRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/rules:updateJson:\x01*\x12\x94\x01\n\tListRules\x12\x1f.sift.rules.v1.ListRulesRequest\x1a .sift.rules.v1.ListRulesResponse\"D\x92\x41\'\x12\tListRules\x1a\x1aRetrieves a list of rules.\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/rules:list\x12\xd9\x01\n\x10ListRuleVersions\x12&.sift.rules.v1.ListRuleVersionsRequest\x1a\'.sift.rules.v1.ListRuleVersionsResponse\"t\x92\x41I\x12\x10ListRuleVersions\x1a\x35Retrieves a list of rule versions for the given rule.\x82\xd3\xe4\x93\x02\"\x12 /api/v1/rules/{rule_id}/versions\x12\xb8\x01\n\x0eGetRuleVersion\x12$.sift.rules.v1.GetRuleVersionRequest\x1a%.sift.rules.v1.GetRuleVersionResponse\"Y\x92\x41\x39\x12\x0eGetRuleVersion\x1a\'Retrieves a specific version of a rule.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/rules:version\x12\xdf\x01\n\x14\x42\x61tchGetRuleVersions\x12*.sift.rules.v1.BatchGetRuleVersionsRequest\x1a+.sift.rules.v1.BatchGetRuleVersionsResponse\"n\x92\x41\x42\x12\x14\x42\x61tchGetRuleVersions\x1a*Retrieves multiple rules by rule versions.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/rules:batchGetVersions:\x01*\x1a\xb1\x01\x92\x41\xad\x01\x12\x30Service to programmatically interact with rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\x88\x01\n\x11\x63om.sift.rules.v1B\nRulesProtoP\x01\xa2\x02\x03SRX\xaa\x02\rSift.Rules.V1\xca\x02\rSift\\Rules\\V1\xe2\x02\x19Sift\\Rules\\V1\\GPBMetadata\xea\x02\x0fSift::Rules::V1\x92\x41\x10\x12\x0e\n\x0cRule Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -67,11 +67,15 @@ _globals['_RULE'].fields_by_name['contextual_channels']._loaded_options = None _globals['_RULE'].fields_by_name['contextual_channels']._serialized_options = b'\340A\002' _globals['_RULE'].fields_by_name['deleted_date']._loaded_options = None - _globals['_RULE'].fields_by_name['deleted_date']._serialized_options = b'\340A\001' + _globals['_RULE'].fields_by_name['deleted_date']._serialized_options = b'\030\001\340A\001' _globals['_RULE'].fields_by_name['is_external']._loaded_options = None _globals['_RULE'].fields_by_name['is_external']._serialized_options = b'\340A\002' _globals['_RULE'].fields_by_name['metadata']._loaded_options = None _globals['_RULE'].fields_by_name['metadata']._serialized_options = b'\340A\002' + _globals['_RULE'].fields_by_name['archived_date']._loaded_options = None + _globals['_RULE'].fields_by_name['archived_date']._serialized_options = b'\340A\001' + _globals['_RULE'].fields_by_name['is_archived']._loaded_options = None + _globals['_RULE'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_RULECONDITION'].fields_by_name['rule_condition_id']._loaded_options = None _globals['_RULECONDITION'].fields_by_name['rule_condition_id']._serialized_options = b'\340A\002' _globals['_RULECONDITION'].fields_by_name['rule_id']._loaded_options = None @@ -150,6 +154,8 @@ _globals['_UPDATERULEREQUEST'].fields_by_name['conditions']._serialized_options = b'\340A\002' _globals['_UPDATERULEREQUEST'].fields_by_name['metadata']._loaded_options = None _globals['_UPDATERULEREQUEST'].fields_by_name['metadata']._serialized_options = b'\340A\002' + _globals['_UPDATERULEREQUEST'].fields_by_name['is_archived']._loaded_options = None + _globals['_UPDATERULEREQUEST'].fields_by_name['is_archived']._serialized_options = b'\340A\001' _globals['_UPDATECONDITIONREQUEST'].fields_by_name['expression']._loaded_options = None _globals['_UPDATECONDITIONREQUEST'].fields_by_name['expression']._serialized_options = b'\340A\002' _globals['_UPDATECONDITIONREQUEST'].fields_by_name['actions']._loaded_options = None @@ -200,6 +206,14 @@ _globals['_BATCHDELETERULESREQUEST'].fields_by_name['rule_ids']._serialized_options = b'\340A\001' _globals['_BATCHDELETERULESREQUEST'].fields_by_name['client_keys']._loaded_options = None _globals['_BATCHDELETERULESREQUEST'].fields_by_name['client_keys']._serialized_options = b'\340A\001' + _globals['_ARCHIVERULEREQUEST'].fields_by_name['rule_id']._loaded_options = None + _globals['_ARCHIVERULEREQUEST'].fields_by_name['rule_id']._serialized_options = b'\340A\001' + _globals['_ARCHIVERULEREQUEST'].fields_by_name['client_key']._loaded_options = None + _globals['_ARCHIVERULEREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001' + _globals['_BATCHARCHIVERULESREQUEST'].fields_by_name['rule_ids']._loaded_options = None + _globals['_BATCHARCHIVERULESREQUEST'].fields_by_name['rule_ids']._serialized_options = b'\340A\001' + _globals['_BATCHARCHIVERULESREQUEST'].fields_by_name['client_keys']._loaded_options = None + _globals['_BATCHARCHIVERULESREQUEST'].fields_by_name['client_keys']._serialized_options = b'\340A\001' _globals['_UNDELETERULEREQUEST'].fields_by_name['rule_id']._loaded_options = None _globals['_UNDELETERULEREQUEST'].fields_by_name['rule_id']._serialized_options = b'\340A\001' _globals['_UNDELETERULEREQUEST'].fields_by_name['client_key']._loaded_options = None @@ -208,6 +222,14 @@ _globals['_BATCHUNDELETERULESREQUEST'].fields_by_name['rule_ids']._serialized_options = b'\340A\001' _globals['_BATCHUNDELETERULESREQUEST'].fields_by_name['client_keys']._loaded_options = None _globals['_BATCHUNDELETERULESREQUEST'].fields_by_name['client_keys']._serialized_options = b'\340A\001' + _globals['_UNARCHIVERULEREQUEST'].fields_by_name['rule_id']._loaded_options = None + _globals['_UNARCHIVERULEREQUEST'].fields_by_name['rule_id']._serialized_options = b'\340A\001' + _globals['_UNARCHIVERULEREQUEST'].fields_by_name['client_key']._loaded_options = None + _globals['_UNARCHIVERULEREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001' + _globals['_BATCHUNARCHIVERULESREQUEST'].fields_by_name['rule_ids']._loaded_options = None + _globals['_BATCHUNARCHIVERULESREQUEST'].fields_by_name['rule_ids']._serialized_options = b'\340A\001' + _globals['_BATCHUNARCHIVERULESREQUEST'].fields_by_name['client_keys']._loaded_options = None + _globals['_BATCHUNARCHIVERULESREQUEST'].fields_by_name['client_keys']._serialized_options = b'\340A\001' _globals['_VIEWHUMANFRIENDLYRULESREQUEST'].fields_by_name['asset_id']._loaded_options = None _globals['_VIEWHUMANFRIENDLYRULESREQUEST'].fields_by_name['asset_id']._serialized_options = b'\340A\002' _globals['_VIEWHUMANFRIENDLYRULESREQUEST']._loaded_options = None @@ -291,7 +313,11 @@ _globals['_RULEVERSION'].fields_by_name['generated_change_message']._loaded_options = None _globals['_RULEVERSION'].fields_by_name['generated_change_message']._serialized_options = b'\340A\002' _globals['_RULEVERSION'].fields_by_name['deleted_date']._loaded_options = None - _globals['_RULEVERSION'].fields_by_name['deleted_date']._serialized_options = b'\340A\001' + _globals['_RULEVERSION'].fields_by_name['deleted_date']._serialized_options = b'\030\001\340A\001' + _globals['_RULEVERSION'].fields_by_name['archived_date']._loaded_options = None + _globals['_RULEVERSION'].fields_by_name['archived_date']._serialized_options = b'\340A\001' + _globals['_RULEVERSION'].fields_by_name['is_archived']._loaded_options = None + _globals['_RULEVERSION'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_LISTRULEVERSIONSRESPONSE'].fields_by_name['rule_versions']._loaded_options = None _globals['_LISTRULEVERSIONSRESPONSE'].fields_by_name['rule_versions']._serialized_options = b'\340A\002' _globals['_GETRULEVERSIONREQUEST'].fields_by_name['rule_version_id']._loaded_options = None @@ -351,13 +377,21 @@ _globals['_RULESERVICE'].methods_by_name['BatchUpdateRules']._loaded_options = None _globals['_RULESERVICE'].methods_by_name['BatchUpdateRules']._serialized_options = b'\222AN\022\020BatchUpdateRules\032:Updates existing rules or creates rules that do not exist.\202\323\344\223\002\036\032\031/api/v1/rules:batchUpdate:\001*' _globals['_RULESERVICE'].methods_by_name['DeleteRule']._loaded_options = None - _globals['_RULESERVICE'].methods_by_name['DeleteRule']._serialized_options = b'\222A\035\022\nDeleteRule\032\017Deletes a rule.\202\323\344\223\002\031\"\024/api/v1/rules/delete:\001*' + _globals['_RULESERVICE'].methods_by_name['DeleteRule']._serialized_options = b'\210\002\001\222AC\022\nDeleteRule\0325Archives a rule. Deprecated: Use ArchiveRule instead.\202\323\344\223\002\031\"\024/api/v1/rules/delete:\001*' + _globals['_RULESERVICE'].methods_by_name['ArchiveRule']._loaded_options = None + _globals['_RULESERVICE'].methods_by_name['ArchiveRule']._serialized_options = b'\222A\037\022\013ArchiveRule\032\020Archives a rule.\202\323\344\223\002\032\"\025/api/v1/rules/archive:\001*' _globals['_RULESERVICE'].methods_by_name['BatchDeleteRules']._loaded_options = None - _globals['_RULESERVICE'].methods_by_name['BatchDeleteRules']._serialized_options = b'\222A+\022\020BatchDeleteRules\032\027Deletes multiple rules.\202\323\344\223\002\036\"\031/api/v1/rules/batchDelete:\001*' + _globals['_RULESERVICE'].methods_by_name['BatchDeleteRules']._serialized_options = b'\210\002\001\222AW\022\020BatchDeleteRules\032CArchives multiple rules. Deprecated: Use BatchArchiveRules instead.\202\323\344\223\002\036\"\031/api/v1/rules/batchDelete:\001*' + _globals['_RULESERVICE'].methods_by_name['BatchArchiveRules']._loaded_options = None + _globals['_RULESERVICE'].methods_by_name['BatchArchiveRules']._serialized_options = b'\222A*\022\021BatchArchiveRules\032\025Batch archives rules.\202\323\344\223\002\037\"\032/api/v1/rules/batchArchive:\001*' + _globals['_RULESERVICE'].methods_by_name['UnarchiveRule']._loaded_options = None + _globals['_RULESERVICE'].methods_by_name['UnarchiveRule']._serialized_options = b'\222A#\022\rUnarchiveRule\032\022Unarchives a rule.\202\323\344\223\002\034\"\027/api/v1/rules/unarchive:\001*' + _globals['_RULESERVICE'].methods_by_name['BatchUnarchiveRules']._loaded_options = None + _globals['_RULESERVICE'].methods_by_name['BatchUnarchiveRules']._serialized_options = b'\222A.\022\023BatchUnarchiveRules\032\027Batch unarchives rules.\202\323\344\223\002!\"\034/api/v1/rules/batchUnarchive:\001*' _globals['_RULESERVICE'].methods_by_name['UndeleteRule']._loaded_options = None - _globals['_RULESERVICE'].methods_by_name['UndeleteRule']._serialized_options = b'\222A!\022\014UndeleteRule\032\021Undeletes a rule.\202\323\344\223\002\033\"\026/api/v1/rules/undelete:\001*' + _globals['_RULESERVICE'].methods_by_name['UndeleteRule']._serialized_options = b'\210\002\001\222A6\022\014UndeleteRule\032&Deprecated: Use UnarchiveRule instead.\202\323\344\223\002\033\"\026/api/v1/rules/undelete:\001*' _globals['_RULESERVICE'].methods_by_name['BatchUndeleteRules']._loaded_options = None - _globals['_RULESERVICE'].methods_by_name['BatchUndeleteRules']._serialized_options = b'\222A/\022\022BatchUndeleteRules\032\031Undeletes multiple rules.\202\323\344\223\002 \"\033/api/v1/rules/batchUndelete:\001*' + _globals['_RULESERVICE'].methods_by_name['BatchUndeleteRules']._serialized_options = b'\210\002\001\222AB\022\022BatchUndeleteRules\032,Deprecated: Use BatchUnarchiveRules instead.\202\323\344\223\002 \"\033/api/v1/rules/batchUndelete:\001*' _globals['_RULESERVICE'].methods_by_name['EvaluateRules']._loaded_options = None _globals['_RULESERVICE'].methods_by_name['EvaluateRules']._serialized_options = b'\210\002\001\222A[\022\rEvaluateRules\032JEvaluates the provided rules and generate annotations based on the result.\202\323\344\223\002\033\"\026/api/v1/rules/evaluate:\001*' _globals['_RULESERVICE'].methods_by_name['ViewHumanFriendlyRules']._loaded_options = None @@ -378,142 +412,158 @@ _globals['_RULESERVICE'].methods_by_name['GetRuleVersion']._serialized_options = b'\222A9\022\016GetRuleVersion\032\'Retrieves a specific version of a rule.\202\323\344\223\002\027\022\025/api/v1/rules:version' _globals['_RULESERVICE'].methods_by_name['BatchGetRuleVersions']._loaded_options = None _globals['_RULESERVICE'].methods_by_name['BatchGetRuleVersions']._serialized_options = b'\222AB\022\024BatchGetRuleVersions\032*Retrieves multiple rules by rule versions.\202\323\344\223\002#\"\036/api/v1/rules:batchGetVersions:\001*' - _globals['_SEARCHORDER']._serialized_start=11761 - _globals['_SEARCHORDER']._serialized_end=11853 - _globals['_ACTIONKIND']._serialized_start=11855 - _globals['_ACTIONKIND']._serialized_end=11947 - _globals['_CONDITIONCOMPARATOR']._serialized_start=11950 - _globals['_CONDITIONCOMPARATOR']._serialized_end=12123 + _globals['_SEARCHORDER']._serialized_start=12503 + _globals['_SEARCHORDER']._serialized_end=12595 + _globals['_ACTIONKIND']._serialized_start=12597 + _globals['_ACTIONKIND']._serialized_end=12689 + _globals['_CONDITIONCOMPARATOR']._serialized_start=12692 + _globals['_CONDITIONCOMPARATOR']._serialized_end=12865 _globals['_RULE']._serialized_start=358 - _globals['_RULE']._serialized_end=1345 - _globals['_RULECONDITION']._serialized_start=1348 - _globals['_RULECONDITION']._serialized_end=1887 - _globals['_RULEACTION']._serialized_start=1890 - _globals['_RULEACTION']._serialized_end=2440 - _globals['_RULEASSETCONFIGURATION']._serialized_start=2442 - _globals['_RULEASSETCONFIGURATION']._serialized_end=2520 - _globals['_CONTEXTUALCHANNELS']._serialized_start=2522 - _globals['_CONTEXTUALCHANNELS']._serialized_end=2608 - _globals['_ASSETEXPRESSIONVALIDATIONRESULT']._serialized_start=2611 - _globals['_ASSETEXPRESSIONVALIDATIONRESULT']._serialized_end=2793 - _globals['_SEARCHRULESREQUEST']._serialized_start=2796 - _globals['_SEARCHRULESREQUEST']._serialized_end=3250 - _globals['_SEARCHRULESRESPONSE']._serialized_start=3252 - _globals['_SEARCHRULESRESPONSE']._serialized_end=3348 - _globals['_GETRULEREQUEST']._serialized_start=3350 - _globals['_GETRULEREQUEST']._serialized_end=3432 - _globals['_GETRULERESPONSE']._serialized_start=3434 - _globals['_GETRULERESPONSE']._serialized_end=3497 - _globals['_BATCHGETRULESREQUEST']._serialized_start=3499 - _globals['_BATCHGETRULESREQUEST']._serialized_end=3591 - _globals['_BATCHGETRULESRESPONSE']._serialized_start=3593 - _globals['_BATCHGETRULESRESPONSE']._serialized_end=3664 - _globals['_CREATERULEREQUEST']._serialized_start=3666 - _globals['_CREATERULEREQUEST']._serialized_end=3748 - _globals['_CREATERULERESPONSE']._serialized_start=3750 - _globals['_CREATERULERESPONSE']._serialized_end=3800 - _globals['_UPDATERULEREQUEST']._serialized_start=3803 - _globals['_UPDATERULEREQUEST']._serialized_end=4476 - _globals['_UPDATECONDITIONREQUEST']._serialized_start=4479 - _globals['_UPDATECONDITIONREQUEST']._serialized_end=4724 - _globals['_UPDATEACTIONREQUEST']._serialized_start=4727 - _globals['_UPDATEACTIONREQUEST']._serialized_end=4958 - _globals['_UPDATERULERESPONSE']._serialized_start=4960 - _globals['_UPDATERULERESPONSE']._serialized_end=5010 - _globals['_VALIDATIONRESULT']._serialized_start=5013 - _globals['_VALIDATIONRESULT']._serialized_end=5272 - _globals['_BATCHUPDATERULESREQUEST']._serialized_start=5275 - _globals['_BATCHUPDATERULESREQUEST']._serialized_end=5478 - _globals['_BATCHUPDATERULESRESPONSE']._serialized_start=5481 - _globals['_BATCHUPDATERULESRESPONSE']._serialized_end=6022 - _globals['_BATCHUPDATERULESRESPONSE_RULEIDENTIFIERS']._serialized_start=5894 - _globals['_BATCHUPDATERULESRESPONSE_RULEIDENTIFIERS']._serialized_end=6022 - _globals['_DELETERULEREQUEST']._serialized_start=6024 - _globals['_DELETERULEREQUEST']._serialized_end=6109 - _globals['_DELETERULERESPONSE']._serialized_start=6111 - _globals['_DELETERULERESPONSE']._serialized_end=6131 - _globals['_BATCHDELETERULESREQUEST']._serialized_start=6133 - _globals['_BATCHDELETERULESREQUEST']._serialized_end=6228 - _globals['_BATCHDELETERULESRESPONSE']._serialized_start=6230 - _globals['_BATCHDELETERULESRESPONSE']._serialized_end=6256 - _globals['_UNDELETERULEREQUEST']._serialized_start=6258 - _globals['_UNDELETERULEREQUEST']._serialized_end=6345 - _globals['_UNDELETERULERESPONSE']._serialized_start=6347 - _globals['_UNDELETERULERESPONSE']._serialized_end=6369 - _globals['_BATCHUNDELETERULESREQUEST']._serialized_start=6371 - _globals['_BATCHUNDELETERULESREQUEST']._serialized_end=6468 - _globals['_BATCHUNDELETERULESRESPONSE']._serialized_start=6470 - _globals['_BATCHUNDELETERULESRESPONSE']._serialized_end=6498 - _globals['_VIEWHUMANFRIENDLYRULESREQUEST']._serialized_start=6500 - _globals['_VIEWHUMANFRIENDLYRULESREQUEST']._serialized_end=6567 - _globals['_VIEWHUMANFRIENDLYRULESRESPONSE']._serialized_start=6569 - _globals['_VIEWHUMANFRIENDLYRULESRESPONSE']._serialized_end=6641 - _globals['_UPDATEHUMANFRIENDLYRULESREQUEST']._serialized_start=6644 - _globals['_UPDATEHUMANFRIENDLYRULESREQUEST']._serialized_end=6795 - _globals['_UPDATEHUMANFRIENDLYRULESRESPONSE']._serialized_start=6798 - _globals['_UPDATEHUMANFRIENDLYRULESRESPONSE']._serialized_end=6938 - _globals['_VIEWJSONRULESREQUEST']._serialized_start=6940 - _globals['_VIEWJSONRULESREQUEST']._serialized_end=6994 - _globals['_VIEWJSONRULESRESPONSE']._serialized_start=6996 - _globals['_VIEWJSONRULESRESPONSE']._serialized_end=7055 - _globals['_JSONRULESREQUEST']._serialized_start=7058 - _globals['_JSONRULESREQUEST']._serialized_end=7190 - _globals['_JSONRULESRESPONSE']._serialized_start=7193 - _globals['_JSONRULESRESPONSE']._serialized_end=7514 - _globals['_VALIDATEJSONRULESREQUEST']._serialized_start=7516 - _globals['_VALIDATEJSONRULESREQUEST']._serialized_end=7606 - _globals['_VALIDATEJSONRULESRESPONSE']._serialized_start=7608 - _globals['_VALIDATEJSONRULESRESPONSE']._serialized_end=7702 - _globals['_UPDATEJSONRULESREQUEST']._serialized_start=7704 - _globals['_UPDATEJSONRULESREQUEST']._serialized_end=7792 - _globals['_UPDATEJSONRULESRESPONSE']._serialized_start=7794 - _globals['_UPDATEJSONRULESRESPONSE']._serialized_end=7886 - _globals['_LISTRULESREQUEST']._serialized_start=7889 - _globals['_LISTRULESREQUEST']._serialized_end=8038 - _globals['_LISTRULESRESPONSE']._serialized_start=8040 - _globals['_LISTRULESRESPONSE']._serialized_end=8147 - _globals['_LISTRULEVERSIONSREQUEST']._serialized_start=8150 - _globals['_LISTRULEVERSIONSREQUEST']._serialized_end=8299 - _globals['_RULEVERSION']._serialized_start=8302 - _globals['_RULEVERSION']._serialized_end=8712 - _globals['_LISTRULEVERSIONSRESPONSE']._serialized_start=8715 - _globals['_LISTRULEVERSIONSRESPONSE']._serialized_end=8851 - _globals['_GETRULEVERSIONREQUEST']._serialized_start=8853 - _globals['_GETRULEVERSIONREQUEST']._serialized_end=8921 - _globals['_GETRULEVERSIONRESPONSE']._serialized_start=8923 - _globals['_GETRULEVERSIONRESPONSE']._serialized_end=8993 - _globals['_BATCHGETRULEVERSIONSREQUEST']._serialized_start=8995 - _globals['_BATCHGETRULEVERSIONSREQUEST']._serialized_end=9071 - _globals['_BATCHGETRULEVERSIONSRESPONSE']._serialized_start=9073 - _globals['_BATCHGETRULEVERSIONSRESPONSE']._serialized_end=9151 - _globals['_RULECONDITIONEXPRESSION']._serialized_start=9154 - _globals['_RULECONDITIONEXPRESSION']._serialized_end=9398 - _globals['_SINGLECHANNELCOMPARISONEXPRESSION']._serialized_start=9401 - _globals['_SINGLECHANNELCOMPARISONEXPRESSION']._serialized_end=9732 - _globals['_LASTVALUETHRESHOLD']._serialized_start=9734 - _globals['_LASTVALUETHRESHOLD']._serialized_end=9754 - _globals['_CALCULATEDCHANNELCONFIG']._serialized_start=9757 - _globals['_CALCULATEDCHANNELCONFIG']._serialized_end=10136 - _globals['_CALCULATEDCHANNELCONFIG_CHANNELREFERENCESENTRY']._serialized_start=10035 - _globals['_CALCULATEDCHANNELCONFIG_CHANNELREFERENCESENTRY']._serialized_end=10136 - _globals['_CHANNELREFERENCE']._serialized_start=10138 - _globals['_CHANNELREFERENCE']._serialized_end=10216 - _globals['_RULEACTIONCONFIGURATION']._serialized_start=10219 - _globals['_RULEACTIONCONFIGURATION']._serialized_end=10427 - _globals['_NOTIFICATIONACTIONCONFIGURATION']._serialized_start=10429 - _globals['_NOTIFICATIONACTIONCONFIGURATION']._serialized_end=10513 - _globals['_ANNOTATIONACTIONCONFIGURATION']._serialized_start=10516 - _globals['_ANNOTATIONACTIONCONFIGURATION']._serialized_end=10792 - _globals['_EVALUATERULESREQUEST']._serialized_start=10795 - _globals['_EVALUATERULESREQUEST']._serialized_end=11065 - _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_start=11067 - _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_end=11120 - _globals['_TIMERANGEQUERY']._serialized_start=11123 - _globals['_TIMERANGEQUERY']._serialized_end=11253 - _globals['_EVALUATERULESRESPONSE']._serialized_start=11256 - _globals['_EVALUATERULESRESPONSE']._serialized_end=11509 - _globals['_DRYRUNANNOTATION']._serialized_start=11512 - _globals['_DRYRUNANNOTATION']._serialized_end=11759 - _globals['_RULESERVICE']._serialized_start=12126 - _globals['_RULESERVICE']._serialized_end=16302 + _globals['_RULE']._serialized_end=1455 + _globals['_RULECONDITION']._serialized_start=1458 + _globals['_RULECONDITION']._serialized_end=1997 + _globals['_RULEACTION']._serialized_start=2000 + _globals['_RULEACTION']._serialized_end=2550 + _globals['_RULEASSETCONFIGURATION']._serialized_start=2552 + _globals['_RULEASSETCONFIGURATION']._serialized_end=2630 + _globals['_CONTEXTUALCHANNELS']._serialized_start=2632 + _globals['_CONTEXTUALCHANNELS']._serialized_end=2718 + _globals['_ASSETEXPRESSIONVALIDATIONRESULT']._serialized_start=2721 + _globals['_ASSETEXPRESSIONVALIDATIONRESULT']._serialized_end=2903 + _globals['_SEARCHRULESREQUEST']._serialized_start=2906 + _globals['_SEARCHRULESREQUEST']._serialized_end=3360 + _globals['_SEARCHRULESRESPONSE']._serialized_start=3362 + _globals['_SEARCHRULESRESPONSE']._serialized_end=3458 + _globals['_GETRULEREQUEST']._serialized_start=3460 + _globals['_GETRULEREQUEST']._serialized_end=3542 + _globals['_GETRULERESPONSE']._serialized_start=3544 + _globals['_GETRULERESPONSE']._serialized_end=3607 + _globals['_BATCHGETRULESREQUEST']._serialized_start=3609 + _globals['_BATCHGETRULESREQUEST']._serialized_end=3701 + _globals['_BATCHGETRULESRESPONSE']._serialized_start=3703 + _globals['_BATCHGETRULESRESPONSE']._serialized_end=3774 + _globals['_CREATERULEREQUEST']._serialized_start=3776 + _globals['_CREATERULEREQUEST']._serialized_end=3858 + _globals['_CREATERULERESPONSE']._serialized_start=3860 + _globals['_CREATERULERESPONSE']._serialized_end=3910 + _globals['_UPDATERULEREQUEST']._serialized_start=3913 + _globals['_UPDATERULEREQUEST']._serialized_end=4624 + _globals['_UPDATECONDITIONREQUEST']._serialized_start=4627 + _globals['_UPDATECONDITIONREQUEST']._serialized_end=4872 + _globals['_UPDATEACTIONREQUEST']._serialized_start=4875 + _globals['_UPDATEACTIONREQUEST']._serialized_end=5106 + _globals['_UPDATERULERESPONSE']._serialized_start=5108 + _globals['_UPDATERULERESPONSE']._serialized_end=5158 + _globals['_VALIDATIONRESULT']._serialized_start=5161 + _globals['_VALIDATIONRESULT']._serialized_end=5420 + _globals['_BATCHUPDATERULESREQUEST']._serialized_start=5423 + _globals['_BATCHUPDATERULESREQUEST']._serialized_end=5626 + _globals['_BATCHUPDATERULESRESPONSE']._serialized_start=5629 + _globals['_BATCHUPDATERULESRESPONSE']._serialized_end=6170 + _globals['_BATCHUPDATERULESRESPONSE_RULEIDENTIFIERS']._serialized_start=6042 + _globals['_BATCHUPDATERULESRESPONSE_RULEIDENTIFIERS']._serialized_end=6170 + _globals['_DELETERULEREQUEST']._serialized_start=6172 + _globals['_DELETERULEREQUEST']._serialized_end=6257 + _globals['_DELETERULERESPONSE']._serialized_start=6259 + _globals['_DELETERULERESPONSE']._serialized_end=6279 + _globals['_BATCHDELETERULESREQUEST']._serialized_start=6281 + _globals['_BATCHDELETERULESREQUEST']._serialized_end=6376 + _globals['_BATCHDELETERULESRESPONSE']._serialized_start=6378 + _globals['_BATCHDELETERULESRESPONSE']._serialized_end=6404 + _globals['_ARCHIVERULEREQUEST']._serialized_start=6406 + _globals['_ARCHIVERULEREQUEST']._serialized_end=6492 + _globals['_ARCHIVERULERESPONSE']._serialized_start=6494 + _globals['_ARCHIVERULERESPONSE']._serialized_end=6515 + _globals['_BATCHARCHIVERULESREQUEST']._serialized_start=6517 + _globals['_BATCHARCHIVERULESREQUEST']._serialized_end=6613 + _globals['_BATCHARCHIVERULESRESPONSE']._serialized_start=6615 + _globals['_BATCHARCHIVERULESRESPONSE']._serialized_end=6642 + _globals['_UNDELETERULEREQUEST']._serialized_start=6644 + _globals['_UNDELETERULEREQUEST']._serialized_end=6731 + _globals['_UNDELETERULERESPONSE']._serialized_start=6733 + _globals['_UNDELETERULERESPONSE']._serialized_end=6755 + _globals['_BATCHUNDELETERULESREQUEST']._serialized_start=6757 + _globals['_BATCHUNDELETERULESREQUEST']._serialized_end=6854 + _globals['_BATCHUNDELETERULESRESPONSE']._serialized_start=6856 + _globals['_BATCHUNDELETERULESRESPONSE']._serialized_end=6884 + _globals['_UNARCHIVERULEREQUEST']._serialized_start=6886 + _globals['_UNARCHIVERULEREQUEST']._serialized_end=6974 + _globals['_UNARCHIVERULERESPONSE']._serialized_start=6976 + _globals['_UNARCHIVERULERESPONSE']._serialized_end=6999 + _globals['_BATCHUNARCHIVERULESREQUEST']._serialized_start=7001 + _globals['_BATCHUNARCHIVERULESREQUEST']._serialized_end=7099 + _globals['_BATCHUNARCHIVERULESRESPONSE']._serialized_start=7101 + _globals['_BATCHUNARCHIVERULESRESPONSE']._serialized_end=7130 + _globals['_VIEWHUMANFRIENDLYRULESREQUEST']._serialized_start=7132 + _globals['_VIEWHUMANFRIENDLYRULESREQUEST']._serialized_end=7199 + _globals['_VIEWHUMANFRIENDLYRULESRESPONSE']._serialized_start=7201 + _globals['_VIEWHUMANFRIENDLYRULESRESPONSE']._serialized_end=7273 + _globals['_UPDATEHUMANFRIENDLYRULESREQUEST']._serialized_start=7276 + _globals['_UPDATEHUMANFRIENDLYRULESREQUEST']._serialized_end=7427 + _globals['_UPDATEHUMANFRIENDLYRULESRESPONSE']._serialized_start=7430 + _globals['_UPDATEHUMANFRIENDLYRULESRESPONSE']._serialized_end=7570 + _globals['_VIEWJSONRULESREQUEST']._serialized_start=7572 + _globals['_VIEWJSONRULESREQUEST']._serialized_end=7626 + _globals['_VIEWJSONRULESRESPONSE']._serialized_start=7628 + _globals['_VIEWJSONRULESRESPONSE']._serialized_end=7687 + _globals['_JSONRULESREQUEST']._serialized_start=7690 + _globals['_JSONRULESREQUEST']._serialized_end=7822 + _globals['_JSONRULESRESPONSE']._serialized_start=7825 + _globals['_JSONRULESRESPONSE']._serialized_end=8146 + _globals['_VALIDATEJSONRULESREQUEST']._serialized_start=8148 + _globals['_VALIDATEJSONRULESREQUEST']._serialized_end=8238 + _globals['_VALIDATEJSONRULESRESPONSE']._serialized_start=8240 + _globals['_VALIDATEJSONRULESRESPONSE']._serialized_end=8334 + _globals['_UPDATEJSONRULESREQUEST']._serialized_start=8336 + _globals['_UPDATEJSONRULESREQUEST']._serialized_end=8424 + _globals['_UPDATEJSONRULESRESPONSE']._serialized_start=8426 + _globals['_UPDATEJSONRULESRESPONSE']._serialized_end=8518 + _globals['_LISTRULESREQUEST']._serialized_start=8521 + _globals['_LISTRULESREQUEST']._serialized_end=8670 + _globals['_LISTRULESRESPONSE']._serialized_start=8672 + _globals['_LISTRULESRESPONSE']._serialized_end=8779 + _globals['_LISTRULEVERSIONSREQUEST']._serialized_start=8782 + _globals['_LISTRULEVERSIONSREQUEST']._serialized_end=8931 + _globals['_RULEVERSION']._serialized_start=8934 + _globals['_RULEVERSION']._serialized_end=9454 + _globals['_LISTRULEVERSIONSRESPONSE']._serialized_start=9457 + _globals['_LISTRULEVERSIONSRESPONSE']._serialized_end=9593 + _globals['_GETRULEVERSIONREQUEST']._serialized_start=9595 + _globals['_GETRULEVERSIONREQUEST']._serialized_end=9663 + _globals['_GETRULEVERSIONRESPONSE']._serialized_start=9665 + _globals['_GETRULEVERSIONRESPONSE']._serialized_end=9735 + _globals['_BATCHGETRULEVERSIONSREQUEST']._serialized_start=9737 + _globals['_BATCHGETRULEVERSIONSREQUEST']._serialized_end=9813 + _globals['_BATCHGETRULEVERSIONSRESPONSE']._serialized_start=9815 + _globals['_BATCHGETRULEVERSIONSRESPONSE']._serialized_end=9893 + _globals['_RULECONDITIONEXPRESSION']._serialized_start=9896 + _globals['_RULECONDITIONEXPRESSION']._serialized_end=10140 + _globals['_SINGLECHANNELCOMPARISONEXPRESSION']._serialized_start=10143 + _globals['_SINGLECHANNELCOMPARISONEXPRESSION']._serialized_end=10474 + _globals['_LASTVALUETHRESHOLD']._serialized_start=10476 + _globals['_LASTVALUETHRESHOLD']._serialized_end=10496 + _globals['_CALCULATEDCHANNELCONFIG']._serialized_start=10499 + _globals['_CALCULATEDCHANNELCONFIG']._serialized_end=10878 + _globals['_CALCULATEDCHANNELCONFIG_CHANNELREFERENCESENTRY']._serialized_start=10777 + _globals['_CALCULATEDCHANNELCONFIG_CHANNELREFERENCESENTRY']._serialized_end=10878 + _globals['_CHANNELREFERENCE']._serialized_start=10880 + _globals['_CHANNELREFERENCE']._serialized_end=10958 + _globals['_RULEACTIONCONFIGURATION']._serialized_start=10961 + _globals['_RULEACTIONCONFIGURATION']._serialized_end=11169 + _globals['_NOTIFICATIONACTIONCONFIGURATION']._serialized_start=11171 + _globals['_NOTIFICATIONACTIONCONFIGURATION']._serialized_end=11255 + _globals['_ANNOTATIONACTIONCONFIGURATION']._serialized_start=11258 + _globals['_ANNOTATIONACTIONCONFIGURATION']._serialized_end=11534 + _globals['_EVALUATERULESREQUEST']._serialized_start=11537 + _globals['_EVALUATERULESREQUEST']._serialized_end=11807 + _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_start=11809 + _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_end=11862 + _globals['_TIMERANGEQUERY']._serialized_start=11865 + _globals['_TIMERANGEQUERY']._serialized_end=11995 + _globals['_EVALUATERULESRESPONSE']._serialized_start=11998 + _globals['_EVALUATERULESRESPONSE']._serialized_end=12251 + _globals['_DRYRUNANNOTATION']._serialized_start=12254 + _globals['_DRYRUNANNOTATION']._serialized_end=12501 + _globals['_RULESERVICE']._serialized_start=12868 + _globals['_RULESERVICE']._serialized_end=17891 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/rules/v1/rules_pb2.pyi b/python/lib/sift/rules/v1/rules_pb2.pyi index 0a577483c..1210d7544 100644 --- a/python/lib/sift/rules/v1/rules_pb2.pyi +++ b/python/lib/sift/rules/v1/rules_pb2.pyi @@ -114,6 +114,8 @@ class Rule(google.protobuf.message.Message): DELETED_DATE_FIELD_NUMBER: builtins.int IS_EXTERNAL_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + ARCHIVED_DATE_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int rule_id: builtins.str asset_id: builtins.str name: builtins.str @@ -125,6 +127,8 @@ class Rule(google.protobuf.message.Message): client_key: builtins.str """client_key is a client provided identifier for the rule. It is immutable after rule creation.""" is_external: builtins.bool + is_archived: builtins.bool + """is_archived is inferred from when archived_date is not null""" @property def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -141,6 +145,10 @@ class Rule(google.protobuf.message.Message): def deleted_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.metadata.v1.metadata_pb2.MetadataValue]: ... + @property + def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + """archived_date indicates when the rule was archived""" + def __init__( self, *, @@ -162,9 +170,11 @@ class Rule(google.protobuf.message.Message): deleted_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., is_external: builtins.bool = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["asset_configuration", b"asset_configuration", "contextual_channels", b"contextual_channels", "created_date", b"created_date", "deleted_date", b"deleted_date", "modified_date", b"modified_date", "rule_version", b"rule_version"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["asset_configuration", b"asset_configuration", "asset_id", b"asset_id", "client_key", b"client_key", "conditions", b"conditions", "contextual_channels", b"contextual_channels", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "description", b"description", "is_enabled", b"is_enabled", "is_external", b"is_external", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "rule_id", b"rule_id", "rule_version", b"rule_version"]) -> None: ... + def HasField(self, field_name: typing.Literal["archived_date", b"archived_date", "asset_configuration", b"asset_configuration", "contextual_channels", b"contextual_channels", "created_date", b"created_date", "deleted_date", b"deleted_date", "modified_date", b"modified_date", "rule_version", b"rule_version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "asset_configuration", b"asset_configuration", "asset_id", b"asset_id", "client_key", b"client_key", "conditions", b"conditions", "contextual_channels", b"contextual_channels", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "description", b"description", "is_archived", b"is_archived", "is_enabled", b"is_enabled", "is_external", b"is_external", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "rule_id", b"rule_id", "rule_version", b"rule_version"]) -> None: ... global___Rule = Rule @@ -529,6 +539,7 @@ class UpdateRuleRequest(google.protobuf.message.Message): CONTEXTUAL_CHANNELS_FIELD_NUMBER: builtins.int IS_EXTERNAL_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int rule_id: builtins.str name: builtins.str description: builtins.str @@ -541,6 +552,7 @@ class UpdateRuleRequest(google.protobuf.message.Message): client_key: builtins.str """client_key is a client provided identifier for the rule. It is immutable after being set""" is_external: builtins.bool + is_archived: builtins.bool @property def conditions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UpdateConditionRequest]: ... @property @@ -565,9 +577,10 @@ class UpdateRuleRequest(google.protobuf.message.Message): contextual_channels: global___ContextualChannels | None = ..., is_external: builtins.bool = ..., metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_client_key", b"_client_key", "_rule_id", b"_rule_id", "asset_configuration", b"asset_configuration", "client_key", b"client_key", "contextual_channels", b"contextual_channels", "rule_id", b"rule_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_client_key", b"_client_key", "_rule_id", b"_rule_id", "asset_configuration", b"asset_configuration", "asset_id", b"asset_id", "client_key", b"client_key", "conditions", b"conditions", "contextual_channels", b"contextual_channels", "description", b"description", "is_enabled", b"is_enabled", "is_external", b"is_external", "metadata", b"metadata", "name", b"name", "organization_id", b"organization_id", "rule_id", b"rule_id", "version_notes", b"version_notes"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_client_key", b"_client_key", "_rule_id", b"_rule_id", "asset_configuration", b"asset_configuration", "asset_id", b"asset_id", "client_key", b"client_key", "conditions", b"conditions", "contextual_channels", b"contextual_channels", "description", b"description", "is_archived", b"is_archived", "is_enabled", b"is_enabled", "is_external", b"is_external", "metadata", b"metadata", "name", b"name", "organization_id", b"organization_id", "rule_id", b"rule_id", "version_notes", b"version_notes"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_client_key", b"_client_key"]) -> typing.Literal["client_key"] | None: ... @typing.overload @@ -823,6 +836,68 @@ class BatchDeleteRulesResponse(google.protobuf.message.Message): global___BatchDeleteRulesResponse = BatchDeleteRulesResponse +@typing.final +class ArchiveRuleRequest(google.protobuf.message.Message): + """ArchiveRuleRequest is used to archive a rule by rule_id or client_key. If both are provided, only rule_id will be used.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_ID_FIELD_NUMBER: builtins.int + CLIENT_KEY_FIELD_NUMBER: builtins.int + rule_id: builtins.str + client_key: builtins.str + def __init__( + self, + *, + rule_id: builtins.str = ..., + client_key: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["client_key", b"client_key", "rule_id", b"rule_id"]) -> None: ... + +global___ArchiveRuleRequest = ArchiveRuleRequest + +@typing.final +class ArchiveRuleResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ArchiveRuleResponse = ArchiveRuleResponse + +@typing.final +class BatchArchiveRulesRequest(google.protobuf.message.Message): + """BatchArchiveRulesRequest is used to archive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_IDS_FIELD_NUMBER: builtins.int + CLIENT_KEYS_FIELD_NUMBER: builtins.int + @property + def rule_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def client_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + rule_ids: collections.abc.Iterable[builtins.str] | None = ..., + client_keys: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["client_keys", b"client_keys", "rule_ids", b"rule_ids"]) -> None: ... + +global___BatchArchiveRulesRequest = BatchArchiveRulesRequest + +@typing.final +class BatchArchiveRulesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___BatchArchiveRulesResponse = BatchArchiveRulesResponse + @typing.final class UndeleteRuleRequest(google.protobuf.message.Message): """UndeleteRuleRequest is used to undelete a rule by rule_id or client_key. If both are provided, only rule_id will be used.""" @@ -885,6 +960,68 @@ class BatchUndeleteRulesResponse(google.protobuf.message.Message): global___BatchUndeleteRulesResponse = BatchUndeleteRulesResponse +@typing.final +class UnarchiveRuleRequest(google.protobuf.message.Message): + """UnarchiveRuleRequest is used to unarchive a rule by rule_id or client_key. If both are provided, only rule_id will be used.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_ID_FIELD_NUMBER: builtins.int + CLIENT_KEY_FIELD_NUMBER: builtins.int + rule_id: builtins.str + client_key: builtins.str + def __init__( + self, + *, + rule_id: builtins.str = ..., + client_key: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["client_key", b"client_key", "rule_id", b"rule_id"]) -> None: ... + +global___UnarchiveRuleRequest = UnarchiveRuleRequest + +@typing.final +class UnarchiveRuleResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UnarchiveRuleResponse = UnarchiveRuleResponse + +@typing.final +class BatchUnarchiveRulesRequest(google.protobuf.message.Message): + """BatchUnarchiveRulesRequest is used to unarchive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_IDS_FIELD_NUMBER: builtins.int + CLIENT_KEYS_FIELD_NUMBER: builtins.int + @property + def rule_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def client_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + rule_ids: collections.abc.Iterable[builtins.str] | None = ..., + client_keys: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["client_keys", b"client_keys", "rule_ids", b"rule_ids"]) -> None: ... + +global___BatchUnarchiveRulesRequest = BatchUnarchiveRulesRequest + +@typing.final +class BatchUnarchiveRulesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___BatchUnarchiveRulesResponse = BatchUnarchiveRulesResponse + @typing.final class ViewHumanFriendlyRulesRequest(google.protobuf.message.Message): """Deprecated - use ViewJsonRulesRequest.""" @@ -1138,7 +1275,8 @@ class ListRulesRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - Available fields to filter by are `rule_id`, `client_key`, `name`, `description`, `asset_id`, `tag_id`, and `deleted_date`. + Available fields to filter by are `rule_id`, `client_key`, `name`, `description`, `is_external`, `asset_id`, `tag_id`, + `created_date`, `created_by_user_id`, `modified_date`, `modified_by_user_id`, `deleted_date`, `is_archived`, and `archived_date`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). Optional. """ @@ -1228,16 +1366,24 @@ class RuleVersion(google.protobuf.message.Message): VERSION_NOTES_FIELD_NUMBER: builtins.int GENERATED_CHANGE_MESSAGE_FIELD_NUMBER: builtins.int DELETED_DATE_FIELD_NUMBER: builtins.int + ARCHIVED_DATE_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int rule_id: builtins.str rule_version_id: builtins.str version: builtins.str created_by_user_id: builtins.str version_notes: builtins.str generated_change_message: builtins.str + is_archived: builtins.bool + """is_archived is inferred from when archived_date is not null""" @property def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property def deleted_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + """archived_date indicates when the rule version was archived""" + def __init__( self, *, @@ -1249,9 +1395,11 @@ class RuleVersion(google.protobuf.message.Message): version_notes: builtins.str = ..., generated_change_message: builtins.str = ..., deleted_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + is_archived: builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["created_date", b"created_date", "deleted_date", b"deleted_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "generated_change_message", b"generated_change_message", "rule_id", b"rule_id", "rule_version_id", b"rule_version_id", "version", b"version", "version_notes", b"version_notes"]) -> None: ... + def HasField(self, field_name: typing.Literal["archived_date", b"archived_date", "created_date", b"created_date", "deleted_date", b"deleted_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "generated_change_message", b"generated_change_message", "is_archived", b"is_archived", "rule_id", b"rule_id", "rule_version_id", b"rule_version_id", "version", b"version", "version_notes", b"version_notes"]) -> None: ... global___RuleVersion = RuleVersion diff --git a/python/lib/sift/rules/v1/rules_pb2_grpc.py b/python/lib/sift/rules/v1/rules_pb2_grpc.py index b54c7e70a..f1a610ca3 100644 --- a/python/lib/sift/rules/v1/rules_pb2_grpc.py +++ b/python/lib/sift/rules/v1/rules_pb2_grpc.py @@ -49,11 +49,31 @@ def __init__(self, channel): request_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.DeleteRuleRequest.SerializeToString, response_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.DeleteRuleResponse.FromString, ) + self.ArchiveRule = channel.unary_unary( + '/sift.rules.v1.RuleService/ArchiveRule', + request_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.ArchiveRuleRequest.SerializeToString, + response_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.ArchiveRuleResponse.FromString, + ) self.BatchDeleteRules = channel.unary_unary( '/sift.rules.v1.RuleService/BatchDeleteRules', request_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchDeleteRulesRequest.SerializeToString, response_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchDeleteRulesResponse.FromString, ) + self.BatchArchiveRules = channel.unary_unary( + '/sift.rules.v1.RuleService/BatchArchiveRules', + request_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchArchiveRulesRequest.SerializeToString, + response_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchArchiveRulesResponse.FromString, + ) + self.UnarchiveRule = channel.unary_unary( + '/sift.rules.v1.RuleService/UnarchiveRule', + request_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.UnarchiveRuleRequest.SerializeToString, + response_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.UnarchiveRuleResponse.FromString, + ) + self.BatchUnarchiveRules = channel.unary_unary( + '/sift.rules.v1.RuleService/BatchUnarchiveRules', + request_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchUnarchiveRulesRequest.SerializeToString, + response_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchUnarchiveRulesResponse.FromString, + ) self.UndeleteRule = channel.unary_unary( '/sift.rules.v1.RuleService/UndeleteRule', request_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.UndeleteRuleRequest.SerializeToString, @@ -162,28 +182,60 @@ def BatchUpdateRules(self, request, context): raise NotImplementedError('Method not implemented!') def DeleteRule(self, request, context): - """Deletes a rule + """Deprecated - use ArchiveRule instead. + Archives a rule. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ArchiveRule(self, request, context): + """Archives a rule. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def BatchDeleteRules(self, request, context): - """Deletes multiple rules + """Deprecated - use BatchArchiveRules instead. + Archives multiple rules. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchArchiveRules(self, request, context): + """Batch archives rules. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnarchiveRule(self, request, context): + """Unarchives a rule. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchUnarchiveRules(self, request, context): + """Batch unarchives rules. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def UndeleteRule(self, request, context): - """Undeletes a rule + """Deprecated - use UnarchiveRule instead. + Unarchives a rule """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def BatchUndeleteRules(self, request, context): - """Undeletes multiple rules + """Deprecated - use BatchUnarchiveRules instead. + Unarchives multiple rules """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -296,11 +348,31 @@ def add_RuleServiceServicer_to_server(servicer, server): request_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.DeleteRuleRequest.FromString, response_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.DeleteRuleResponse.SerializeToString, ), + 'ArchiveRule': grpc.unary_unary_rpc_method_handler( + servicer.ArchiveRule, + request_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.ArchiveRuleRequest.FromString, + response_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.ArchiveRuleResponse.SerializeToString, + ), 'BatchDeleteRules': grpc.unary_unary_rpc_method_handler( servicer.BatchDeleteRules, request_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchDeleteRulesRequest.FromString, response_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchDeleteRulesResponse.SerializeToString, ), + 'BatchArchiveRules': grpc.unary_unary_rpc_method_handler( + servicer.BatchArchiveRules, + request_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchArchiveRulesRequest.FromString, + response_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchArchiveRulesResponse.SerializeToString, + ), + 'UnarchiveRule': grpc.unary_unary_rpc_method_handler( + servicer.UnarchiveRule, + request_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.UnarchiveRuleRequest.FromString, + response_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.UnarchiveRuleResponse.SerializeToString, + ), + 'BatchUnarchiveRules': grpc.unary_unary_rpc_method_handler( + servicer.BatchUnarchiveRules, + request_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchUnarchiveRulesRequest.FromString, + response_serializer=sift_dot_rules_dot_v1_dot_rules__pb2.BatchUnarchiveRulesResponse.SerializeToString, + ), 'UndeleteRule': grpc.unary_unary_rpc_method_handler( servicer.UndeleteRule, request_deserializer=sift_dot_rules_dot_v1_dot_rules__pb2.UndeleteRuleRequest.FromString, @@ -490,6 +562,23 @@ def DeleteRule(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def ArchiveRule(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.rules.v1.RuleService/ArchiveRule', + sift_dot_rules_dot_v1_dot_rules__pb2.ArchiveRuleRequest.SerializeToString, + sift_dot_rules_dot_v1_dot_rules__pb2.ArchiveRuleResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def BatchDeleteRules(request, target, @@ -507,6 +596,57 @@ def BatchDeleteRules(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def BatchArchiveRules(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.rules.v1.RuleService/BatchArchiveRules', + sift_dot_rules_dot_v1_dot_rules__pb2.BatchArchiveRulesRequest.SerializeToString, + sift_dot_rules_dot_v1_dot_rules__pb2.BatchArchiveRulesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UnarchiveRule(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.rules.v1.RuleService/UnarchiveRule', + sift_dot_rules_dot_v1_dot_rules__pb2.UnarchiveRuleRequest.SerializeToString, + sift_dot_rules_dot_v1_dot_rules__pb2.UnarchiveRuleResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def BatchUnarchiveRules(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.rules.v1.RuleService/BatchUnarchiveRules', + sift_dot_rules_dot_v1_dot_rules__pb2.BatchUnarchiveRulesRequest.SerializeToString, + sift_dot_rules_dot_v1_dot_rules__pb2.BatchUnarchiveRulesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def UndeleteRule(request, target, diff --git a/python/lib/sift/rules/v1/rules_pb2_grpc.pyi b/python/lib/sift/rules/v1/rules_pb2_grpc.pyi index edca3da5f..f0e302b9e 100644 --- a/python/lib/sift/rules/v1/rules_pb2_grpc.pyi +++ b/python/lib/sift/rules/v1/rules_pb2_grpc.pyi @@ -66,25 +66,57 @@ class RuleServiceStub: sift.rules.v1.rules_pb2.DeleteRuleRequest, sift.rules.v1.rules_pb2.DeleteRuleResponse, ] - """Deletes a rule""" + """Deprecated - use ArchiveRule instead. + Archives a rule. + """ + + ArchiveRule: grpc.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.ArchiveRuleRequest, + sift.rules.v1.rules_pb2.ArchiveRuleResponse, + ] + """Archives a rule.""" BatchDeleteRules: grpc.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.BatchDeleteRulesRequest, sift.rules.v1.rules_pb2.BatchDeleteRulesResponse, ] - """Deletes multiple rules""" + """Deprecated - use BatchArchiveRules instead. + Archives multiple rules. + """ + + BatchArchiveRules: grpc.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.BatchArchiveRulesRequest, + sift.rules.v1.rules_pb2.BatchArchiveRulesResponse, + ] + """Batch archives rules.""" + + UnarchiveRule: grpc.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.UnarchiveRuleRequest, + sift.rules.v1.rules_pb2.UnarchiveRuleResponse, + ] + """Unarchives a rule.""" + + BatchUnarchiveRules: grpc.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.BatchUnarchiveRulesRequest, + sift.rules.v1.rules_pb2.BatchUnarchiveRulesResponse, + ] + """Batch unarchives rules.""" UndeleteRule: grpc.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.UndeleteRuleRequest, sift.rules.v1.rules_pb2.UndeleteRuleResponse, ] - """Undeletes a rule""" + """Deprecated - use UnarchiveRule instead. + Unarchives a rule + """ BatchUndeleteRules: grpc.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.BatchUndeleteRulesRequest, sift.rules.v1.rules_pb2.BatchUndeleteRulesResponse, ] - """Undeletes multiple rules""" + """Deprecated - use BatchUnarchiveRules instead. + Unarchives multiple rules + """ EvaluateRules: grpc.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.EvaluateRulesRequest, @@ -186,25 +218,57 @@ class RuleServiceAsyncStub: sift.rules.v1.rules_pb2.DeleteRuleRequest, sift.rules.v1.rules_pb2.DeleteRuleResponse, ] - """Deletes a rule""" + """Deprecated - use ArchiveRule instead. + Archives a rule. + """ + + ArchiveRule: grpc.aio.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.ArchiveRuleRequest, + sift.rules.v1.rules_pb2.ArchiveRuleResponse, + ] + """Archives a rule.""" BatchDeleteRules: grpc.aio.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.BatchDeleteRulesRequest, sift.rules.v1.rules_pb2.BatchDeleteRulesResponse, ] - """Deletes multiple rules""" + """Deprecated - use BatchArchiveRules instead. + Archives multiple rules. + """ + + BatchArchiveRules: grpc.aio.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.BatchArchiveRulesRequest, + sift.rules.v1.rules_pb2.BatchArchiveRulesResponse, + ] + """Batch archives rules.""" + + UnarchiveRule: grpc.aio.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.UnarchiveRuleRequest, + sift.rules.v1.rules_pb2.UnarchiveRuleResponse, + ] + """Unarchives a rule.""" + + BatchUnarchiveRules: grpc.aio.UnaryUnaryMultiCallable[ + sift.rules.v1.rules_pb2.BatchUnarchiveRulesRequest, + sift.rules.v1.rules_pb2.BatchUnarchiveRulesResponse, + ] + """Batch unarchives rules.""" UndeleteRule: grpc.aio.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.UndeleteRuleRequest, sift.rules.v1.rules_pb2.UndeleteRuleResponse, ] - """Undeletes a rule""" + """Deprecated - use UnarchiveRule instead. + Unarchives a rule + """ BatchUndeleteRules: grpc.aio.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.BatchUndeleteRulesRequest, sift.rules.v1.rules_pb2.BatchUndeleteRulesResponse, ] - """Undeletes multiple rules""" + """Deprecated - use BatchUnarchiveRules instead. + Unarchives multiple rules + """ EvaluateRules: grpc.aio.UnaryUnaryMultiCallable[ sift.rules.v1.rules_pb2.EvaluateRulesRequest, @@ -320,7 +384,17 @@ class RuleServiceServicer(metaclass=abc.ABCMeta): request: sift.rules.v1.rules_pb2.DeleteRuleRequest, context: _ServicerContext, ) -> typing.Union[sift.rules.v1.rules_pb2.DeleteRuleResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.DeleteRuleResponse]]: - """Deletes a rule""" + """Deprecated - use ArchiveRule instead. + Archives a rule. + """ + + @abc.abstractmethod + def ArchiveRule( + self, + request: sift.rules.v1.rules_pb2.ArchiveRuleRequest, + context: _ServicerContext, + ) -> typing.Union[sift.rules.v1.rules_pb2.ArchiveRuleResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.ArchiveRuleResponse]]: + """Archives a rule.""" @abc.abstractmethod def BatchDeleteRules( @@ -328,7 +402,33 @@ class RuleServiceServicer(metaclass=abc.ABCMeta): request: sift.rules.v1.rules_pb2.BatchDeleteRulesRequest, context: _ServicerContext, ) -> typing.Union[sift.rules.v1.rules_pb2.BatchDeleteRulesResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.BatchDeleteRulesResponse]]: - """Deletes multiple rules""" + """Deprecated - use BatchArchiveRules instead. + Archives multiple rules. + """ + + @abc.abstractmethod + def BatchArchiveRules( + self, + request: sift.rules.v1.rules_pb2.BatchArchiveRulesRequest, + context: _ServicerContext, + ) -> typing.Union[sift.rules.v1.rules_pb2.BatchArchiveRulesResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.BatchArchiveRulesResponse]]: + """Batch archives rules.""" + + @abc.abstractmethod + def UnarchiveRule( + self, + request: sift.rules.v1.rules_pb2.UnarchiveRuleRequest, + context: _ServicerContext, + ) -> typing.Union[sift.rules.v1.rules_pb2.UnarchiveRuleResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.UnarchiveRuleResponse]]: + """Unarchives a rule.""" + + @abc.abstractmethod + def BatchUnarchiveRules( + self, + request: sift.rules.v1.rules_pb2.BatchUnarchiveRulesRequest, + context: _ServicerContext, + ) -> typing.Union[sift.rules.v1.rules_pb2.BatchUnarchiveRulesResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.BatchUnarchiveRulesResponse]]: + """Batch unarchives rules.""" @abc.abstractmethod def UndeleteRule( @@ -336,7 +436,9 @@ class RuleServiceServicer(metaclass=abc.ABCMeta): request: sift.rules.v1.rules_pb2.UndeleteRuleRequest, context: _ServicerContext, ) -> typing.Union[sift.rules.v1.rules_pb2.UndeleteRuleResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.UndeleteRuleResponse]]: - """Undeletes a rule""" + """Deprecated - use UnarchiveRule instead. + Unarchives a rule + """ @abc.abstractmethod def BatchUndeleteRules( @@ -344,7 +446,9 @@ class RuleServiceServicer(metaclass=abc.ABCMeta): request: sift.rules.v1.rules_pb2.BatchUndeleteRulesRequest, context: _ServicerContext, ) -> typing.Union[sift.rules.v1.rules_pb2.BatchUndeleteRulesResponse, collections.abc.Awaitable[sift.rules.v1.rules_pb2.BatchUndeleteRulesResponse]]: - """Undeletes multiple rules""" + """Deprecated - use BatchUnarchiveRules instead. + Unarchives multiple rules + """ @abc.abstractmethod def EvaluateRules( diff --git a/python/lib/sift/runs/v2/runs_pb2.py b/python/lib/sift/runs/v2/runs_pb2.py index cbc67fcb0..5f307436a 100644 --- a/python/lib/sift/runs/v2/runs_pb2.py +++ b/python/lib/sift/runs/v2/runs_pb2.py @@ -12,15 +12,17 @@ _sym_db = _symbol_database.Default() +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/runs/v2/runs.proto\x12\x0csift.runs.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xa9\x07\n\x03Run\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x42\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x43\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12\x41\n\tstop_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x08stopTime\x88\x01\x01\x12 \n\tis_pinned\x18\t \x01(\x08\x42\x03\xe0\x41\x02R\x08isPinned\x12\x17\n\x04name\x18\n \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x0c \x03(\tB\x03\xe0\x41\x02R\x04tags\x12/\n\x11\x64\x65\x66\x61ult_report_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x0f\x64\x65\x66\x61ultReportId\x12\'\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\x0f \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12 \n\tasset_ids\x18\x10 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12I\n\rarchived_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12\x1e\n\x08is_adhoc\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\x07isAdhocB\r\n\x0b_start_timeB\x0c\n\n_stop_timeB\r\n\x0b_client_keyB\x10\n\x0e_archived_date\"+\n\rGetRunRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\":\n\x0eGetRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\x94\x01\n\x0fListRunsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"f\n\x10ListRunsResponse\x12*\n\x04runs\x18\x01 \x03(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x04runs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x91\x03\n\x10\x43reateRunRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x03 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12>\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\tstartTime\x12<\n\tstop_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x08stopTime\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\'\n\nclient_key\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\t \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\r\n\x0b_client_key\"=\n\x11\x43reateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\x8a\x03\n\x15\x43reateAdhocRunRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\x12 \n\tasset_ids\x18\x05 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12\x17\n\x04tags\x18\x06 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12@\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12\'\n\nclient_key\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"B\n\x16\x43reateAdhocRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"~\n\x10UpdateRunRequest\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"=\n\x11UpdateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"q\n-CreateAutomaticRunAssociationForAssetsRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12$\n\x0b\x61sset_names\x18\x02 \x03(\tB\x03\xe0\x41\x02R\nassetNames\"0\n.CreateAutomaticRunAssociationForAssetsResponse\".\n\x10\x44\x65leteRunRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\"\x13\n\x11\x44\x65leteRunResponse\",\n\x0eStopRunRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\"\x11\n\x0fStopRunResponse2\xf3\r\n\nRunService\x12~\n\x06GetRun\x12\x1b.sift.runs.v2.GetRunRequest\x1a\x1c.sift.runs.v2.GetRunResponse\"9\x92\x41\x19\x12\x06GetRun\x1a\x0fRetrieve a run.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v2/runs/{run_id}\x12\x95\x01\n\x08ListRuns\x12\x1d.sift.runs.v2.ListRunsRequest\x1a\x1e.sift.runs.v2.ListRunsResponse\"J\x92\x41\x33\x12\x08ListRuns\x1a\'Retrieve runs using an optional filter.\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v2/runs\x12\x82\x01\n\tCreateRun\x12\x1e.sift.runs.v2.CreateRunRequest\x1a\x1f.sift.runs.v2.CreateRunResponse\"4\x92\x41\x1a\x12\tCreateRun\x1a\rCreate a run.\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/runs:\x01*\x12\xa3\x01\n\x0e\x43reateAdhocRun\x12#.sift.runs.v2.CreateAdhocRunRequest\x1a$.sift.runs.v2.CreateAdhocRunResponse\"F\x92\x41&\x12\x0e\x43reateAdhocRun\x1a\x14\x43reate an adhoc run.\x82\xd3\xe4\x93\x02\x17\"\x12/api/v2/runs:adhoc:\x01*\x12\xc7\x01\n\tUpdateRun\x12\x1e.sift.runs.v2.UpdateRunRequest\x1a\x1f.sift.runs.v2.UpdateRunResponse\"y\x92\x41_\x12\tUpdateRun\x1aRUpdates an existing run using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x11\x32\x0c/api/v2/runs:\x01*\x12\xdc\x01\n\tDeleteRun\x12\x1e.sift.runs.v2.DeleteRunRequest\x1a\x1f.sift.runs.v2.DeleteRunResponse\"\x8d\x01\x92\x41m\x12\tDeleteRun\x1a`Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`.\x82\xd3\xe4\x93\x02\x17*\x15/api/v2/runs/{run_id}\x12\xe6\x01\n\x07StopRun\x12\x1c.sift.runs.v2.StopRunRequest\x1a\x1d.sift.runs.v2.StopRunResponse\"\x9d\x01\x92\x41~\x12\x07StopRun\x1asSet the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`.\x82\xd3\xe4\x93\x02\x16\x32\x11/api/v2/runs:stop:\x01*\x12\xcc\x02\n&CreateAutomaticRunAssociationForAssets\x12;.sift.runs.v2.CreateAutomaticRunAssociationForAssetsRequest\x1a<.sift.runs.v2.CreateAutomaticRunAssociationForAssetsResponse\"\xa6\x01\x92\x41W\x12&CreateAutomaticRunAssociationForAssets\x1a-Associates a list of assets with a given run.\x82\xd3\xe4\x93\x02\x46\"A/api/v2/runs/{run_id}:create-automatic-run-association-for-assets:\x01*\x1a\xc0\x01\x92\x41\xbc\x01\x12@Service to programmatically interact with [runs](/glossary#run).\x1ax\n\x1eRead more about what runs are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053B\x81\x01\n\x10\x63om.sift.runs.v2B\tRunsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0cSift.Runs.V2\xca\x02\x0cSift\\Runs\\V2\xe2\x02\x18Sift\\Runs\\V2\\GPBMetadata\xea\x02\x0eSift::Runs::V2\x92\x41\x0f\x12\r\n\x0bRun serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/runs/v2/runs.proto\x12\x0csift.runs.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x9d\x08\n\x03Run\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x42\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x43\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12\x41\n\tstop_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x08stopTime\x88\x01\x01\x12 \n\tis_pinned\x18\t \x01(\x08\x42\x03\xe0\x41\x02R\x08isPinned\x12\x17\n\x04name\x18\n \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x0c \x03(\tB\x03\xe0\x41\x02R\x04tags\x12/\n\x11\x64\x65\x66\x61ult_report_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x0f\x64\x65\x66\x61ultReportId\x12\'\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\x0f \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12 \n\tasset_ids\x18\x10 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12I\n\rarchived_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12\x1e\n\x08is_adhoc\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\x07isAdhoc\x12$\n\x0bis_archived\x18\x13 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\x12?\n\x08\x64uration\x18\x14 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01H\x04R\x08\x64uration\x88\x01\x01\x42\r\n\x0b_start_timeB\x0c\n\n_stop_timeB\r\n\x0b_client_keyB\x10\n\x0e_archived_dateB\x0b\n\t_duration\"3\n\rGetRunRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\":\n\x0eGetRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\x94\x01\n\x0fListRunsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"f\n\x10ListRunsResponse\x12*\n\x04runs\x18\x01 \x03(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x04runs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xdb\x04\n\x10\x43reateRunRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x03 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12>\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\tstartTime\x12<\n\tstop_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x08stopTime\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\xf0\x01\n\nclient_key\x18\x08 \x01(\tB\xcb\x01\xe0\x41\x01\xbaH\xc4\x01\xba\x01\xc0\x01\n\x12invalid_client_key\x12jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\x1a>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')H\x00R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\t \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\r\n\x0b_client_key\"=\n\x11\x43reateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\xe3\x04\n\x15\x43reateAdhocRunRequest\x12\x1e\n\x04name\x18\x01 \x01(\tB\n\xe0\x41\x02\xbaH\x04r\x02\x10\x01R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\x12(\n\tasset_ids\x18\x05 \x03(\tB\x0b\xe0\x41\x02\xbaH\x05\x92\x01\x02\x08\x01R\x08\x61ssetIds\x12\x17\n\x04tags\x18\x06 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12@\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12\xf0\x01\n\nclient_key\x18\x08 \x01(\tB\xcb\x01\xe0\x41\x01\xbaH\xc4\x01\xba\x01\xc0\x01\n\x12invalid_client_key\x12jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\x1a>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"B\n\x16\x43reateAdhocRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\xe2\x04\n\x10UpdateRunRequest\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\x12\xa3\x04\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\xe5\x03\xe0\x41\x02\xbaH\xde\x03\xba\x01\xda\x03\n\x17invalid_field_mask_path\x12\xdc\x01\x66ield mask path must be in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\']\x1a\xdf\x01this.paths.all(path, path in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\'])R\nupdateMask\"=\n\x11UpdateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"y\n-CreateAutomaticRunAssociationForAssetsRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\x12$\n\x0b\x61sset_names\x18\x02 \x03(\tB\x03\xe0\x41\x02R\nassetNames\"0\n.CreateAutomaticRunAssociationForAssetsResponse\"6\n\x10\x44\x65leteRunRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\"\x13\n\x11\x44\x65leteRunResponse\"4\n\x0eStopRunRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\"\x11\n\x0fStopRunResponse2\xdd\r\n\nRunService\x12~\n\x06GetRun\x12\x1b.sift.runs.v2.GetRunRequest\x1a\x1c.sift.runs.v2.GetRunResponse\"9\x92\x41\x19\x12\x06GetRun\x1a\x0fRetrieve a run.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v2/runs/{run_id}\x12\x95\x01\n\x08ListRuns\x12\x1d.sift.runs.v2.ListRunsRequest\x1a\x1e.sift.runs.v2.ListRunsResponse\"J\x92\x41\x33\x12\x08ListRuns\x1a\'Retrieve runs using an optional filter.\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v2/runs\x12\x82\x01\n\tCreateRun\x12\x1e.sift.runs.v2.CreateRunRequest\x1a\x1f.sift.runs.v2.CreateRunResponse\"4\x92\x41\x1a\x12\tCreateRun\x1a\rCreate a run.\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/runs:\x01*\x12\xa3\x01\n\x0e\x43reateAdhocRun\x12#.sift.runs.v2.CreateAdhocRunRequest\x1a$.sift.runs.v2.CreateAdhocRunResponse\"F\x92\x41&\x12\x0e\x43reateAdhocRun\x1a\x14\x43reate an adhoc run.\x82\xd3\xe4\x93\x02\x17\"\x12/api/v2/runs:adhoc:\x01*\x12\xc7\x01\n\tUpdateRun\x12\x1e.sift.runs.v2.UpdateRunRequest\x1a\x1f.sift.runs.v2.UpdateRunResponse\"y\x92\x41_\x12\tUpdateRun\x1aRUpdates an existing run using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x11\x32\x0c/api/v2/runs:\x01*\x12\xc6\x01\n\tDeleteRun\x12\x1e.sift.runs.v2.DeleteRunRequest\x1a\x1f.sift.runs.v2.DeleteRunResponse\"x\x88\x02\x01\x92\x41U\x12\tDeleteRun\x1aHPermanently delete a given run. Deprecated: Use update with is_archived.\x82\xd3\xe4\x93\x02\x17*\x15/api/v2/runs/{run_id}\x12\xe6\x01\n\x07StopRun\x12\x1c.sift.runs.v2.StopRunRequest\x1a\x1d.sift.runs.v2.StopRunResponse\"\x9d\x01\x92\x41~\x12\x07StopRun\x1asSet the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`.\x82\xd3\xe4\x93\x02\x16\x32\x11/api/v2/runs:stop:\x01*\x12\xcc\x02\n&CreateAutomaticRunAssociationForAssets\x12;.sift.runs.v2.CreateAutomaticRunAssociationForAssetsRequest\x1a<.sift.runs.v2.CreateAutomaticRunAssociationForAssetsResponse\"\xa6\x01\x92\x41W\x12&CreateAutomaticRunAssociationForAssets\x1a-Associates a list of assets with a given run.\x82\xd3\xe4\x93\x02\x46\"A/api/v2/runs/{run_id}:create-automatic-run-association-for-assets:\x01*\x1a\xc0\x01\x92\x41\xbc\x01\x12@Service to programmatically interact with [runs](/glossary#run).\x1ax\n\x1eRead more about what runs are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053B\x81\x01\n\x10\x63om.sift.runs.v2B\tRunsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0cSift.Runs.V2\xca\x02\x0cSift\\Runs\\V2\xe2\x02\x18Sift\\Runs\\V2\\GPBMetadata\xea\x02\x0eSift::Runs::V2\x92\x41\x0f\x12\r\n\x0bRun serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -64,8 +66,12 @@ _globals['_RUN'].fields_by_name['archived_date']._serialized_options = b'\340A\001' _globals['_RUN'].fields_by_name['is_adhoc']._loaded_options = None _globals['_RUN'].fields_by_name['is_adhoc']._serialized_options = b'\340A\002' + _globals['_RUN'].fields_by_name['is_archived']._loaded_options = None + _globals['_RUN'].fields_by_name['is_archived']._serialized_options = b'\340A\002' + _globals['_RUN'].fields_by_name['duration']._loaded_options = None + _globals['_RUN'].fields_by_name['duration']._serialized_options = b'\340A\001' _globals['_GETRUNREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_GETRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' + _globals['_GETRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_GETRUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_GETRUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_LISTRUNSREQUEST'].fields_by_name['page_size']._loaded_options = None @@ -91,13 +97,13 @@ _globals['_CREATERUNREQUEST'].fields_by_name['organization_id']._loaded_options = None _globals['_CREATERUNREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' _globals['_CREATERUNREQUEST'].fields_by_name['client_key']._loaded_options = None - _globals['_CREATERUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001' + _globals['_CREATERUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001\272H\304\001\272\001\300\001\n\022invalid_client_key\022jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\032>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')' _globals['_CREATERUNREQUEST'].fields_by_name['metadata']._loaded_options = None _globals['_CREATERUNREQUEST'].fields_by_name['metadata']._serialized_options = b'\340A\001' _globals['_CREATERUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_CREATERUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['name']._loaded_options = None - _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' + _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002\272H\004r\002\020\001' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['description']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['description']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['start_time']._loaded_options = None @@ -105,29 +111,29 @@ _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['stop_time']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['stop_time']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['asset_ids']._loaded_options = None - _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002' + _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002\272H\005\222\001\002\010\001' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['tags']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['tags']._serialized_options = b'\340A\001' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['metadata']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['metadata']._serialized_options = b'\340A\001' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['client_key']._loaded_options = None - _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001' + _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001\272H\304\001\272\001\300\001\n\022invalid_client_key\022jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\032>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')' _globals['_CREATEADHOCRUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_CREATEADHOCRUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_UPDATERUNREQUEST'].fields_by_name['run']._loaded_options = None _globals['_UPDATERUNREQUEST'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_UPDATERUNREQUEST'].fields_by_name['update_mask']._loaded_options = None - _globals['_UPDATERUNREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002' + _globals['_UPDATERUNREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002\272H\336\003\272\001\332\003\n\027invalid_field_mask_path\022\334\001field mask path must be in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\']\032\337\001this.paths.all(path, path in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\'])' _globals['_UPDATERUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_UPDATERUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['asset_names']._loaded_options = None _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['asset_names']._serialized_options = b'\340A\002' _globals['_DELETERUNREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_DELETERUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' + _globals['_DELETERUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_STOPRUNREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_STOPRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' + _globals['_STOPRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_RUNSERVICE']._loaded_options = None _globals['_RUNSERVICE']._serialized_options = b'\222A\274\001\022@Service to programmatically interact with [runs](/glossary#run).\032x\n\036Read more about what runs are.\022Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053' _globals['_RUNSERVICE'].methods_by_name['GetRun']._loaded_options = None @@ -141,45 +147,45 @@ _globals['_RUNSERVICE'].methods_by_name['UpdateRun']._loaded_options = None _globals['_RUNSERVICE'].methods_by_name['UpdateRun']._serialized_options = b'\222A_\022\tUpdateRun\032RUpdates an existing run using using the list of fields specified in `update_mask`.\202\323\344\223\002\0212\014/api/v2/runs:\001*' _globals['_RUNSERVICE'].methods_by_name['DeleteRun']._loaded_options = None - _globals['_RUNSERVICE'].methods_by_name['DeleteRun']._serialized_options = b'\222Am\022\tDeleteRun\032`Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`.\202\323\344\223\002\027*\025/api/v2/runs/{run_id}' + _globals['_RUNSERVICE'].methods_by_name['DeleteRun']._serialized_options = b'\210\002\001\222AU\022\tDeleteRun\032HPermanently delete a given run. Deprecated: Use update with is_archived.\202\323\344\223\002\027*\025/api/v2/runs/{run_id}' _globals['_RUNSERVICE'].methods_by_name['StopRun']._loaded_options = None _globals['_RUNSERVICE'].methods_by_name['StopRun']._serialized_options = b'\222A~\022\007StopRun\032sSet the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`.\202\323\344\223\002\0262\021/api/v2/runs:stop:\001*' _globals['_RUNSERVICE'].methods_by_name['CreateAutomaticRunAssociationForAssets']._loaded_options = None _globals['_RUNSERVICE'].methods_by_name['CreateAutomaticRunAssociationForAssets']._serialized_options = b'\222AW\022&CreateAutomaticRunAssociationForAssets\032-Associates a list of assets with a given run.\202\323\344\223\002F\"A/api/v2/runs/{run_id}:create-automatic-run-association-for-assets:\001*' - _globals['_RUN']._serialized_start=253 - _globals['_RUN']._serialized_end=1190 - _globals['_GETRUNREQUEST']._serialized_start=1192 - _globals['_GETRUNREQUEST']._serialized_end=1235 - _globals['_GETRUNRESPONSE']._serialized_start=1237 - _globals['_GETRUNRESPONSE']._serialized_end=1295 - _globals['_LISTRUNSREQUEST']._serialized_start=1298 - _globals['_LISTRUNSREQUEST']._serialized_end=1446 - _globals['_LISTRUNSRESPONSE']._serialized_start=1448 - _globals['_LISTRUNSRESPONSE']._serialized_end=1550 - _globals['_CREATERUNREQUEST']._serialized_start=1553 - _globals['_CREATERUNREQUEST']._serialized_end=1954 - _globals['_CREATERUNRESPONSE']._serialized_start=1956 - _globals['_CREATERUNRESPONSE']._serialized_end=2017 - _globals['_CREATEADHOCRUNREQUEST']._serialized_start=2020 - _globals['_CREATEADHOCRUNREQUEST']._serialized_end=2414 - _globals['_CREATEADHOCRUNRESPONSE']._serialized_start=2416 - _globals['_CREATEADHOCRUNRESPONSE']._serialized_end=2482 - _globals['_UPDATERUNREQUEST']._serialized_start=2484 - _globals['_UPDATERUNREQUEST']._serialized_end=2610 - _globals['_UPDATERUNRESPONSE']._serialized_start=2612 - _globals['_UPDATERUNRESPONSE']._serialized_end=2673 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_start=2675 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_end=2788 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_start=2790 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_end=2838 - _globals['_DELETERUNREQUEST']._serialized_start=2840 - _globals['_DELETERUNREQUEST']._serialized_end=2886 - _globals['_DELETERUNRESPONSE']._serialized_start=2888 - _globals['_DELETERUNRESPONSE']._serialized_end=2907 - _globals['_STOPRUNREQUEST']._serialized_start=2909 - _globals['_STOPRUNREQUEST']._serialized_end=2953 - _globals['_STOPRUNRESPONSE']._serialized_start=2955 - _globals['_STOPRUNRESPONSE']._serialized_end=2972 - _globals['_RUNSERVICE']._serialized_start=2975 - _globals['_RUNSERVICE']._serialized_end=4754 + _globals['_RUN']._serialized_start=314 + _globals['_RUN']._serialized_end=1367 + _globals['_GETRUNREQUEST']._serialized_start=1369 + _globals['_GETRUNREQUEST']._serialized_end=1420 + _globals['_GETRUNRESPONSE']._serialized_start=1422 + _globals['_GETRUNRESPONSE']._serialized_end=1480 + _globals['_LISTRUNSREQUEST']._serialized_start=1483 + _globals['_LISTRUNSREQUEST']._serialized_end=1631 + _globals['_LISTRUNSRESPONSE']._serialized_start=1633 + _globals['_LISTRUNSRESPONSE']._serialized_end=1735 + _globals['_CREATERUNREQUEST']._serialized_start=1738 + _globals['_CREATERUNREQUEST']._serialized_end=2341 + _globals['_CREATERUNRESPONSE']._serialized_start=2343 + _globals['_CREATERUNRESPONSE']._serialized_end=2404 + _globals['_CREATEADHOCRUNREQUEST']._serialized_start=2407 + _globals['_CREATEADHOCRUNREQUEST']._serialized_end=3018 + _globals['_CREATEADHOCRUNRESPONSE']._serialized_start=3020 + _globals['_CREATEADHOCRUNRESPONSE']._serialized_end=3086 + _globals['_UPDATERUNREQUEST']._serialized_start=3089 + _globals['_UPDATERUNREQUEST']._serialized_end=3699 + _globals['_UPDATERUNRESPONSE']._serialized_start=3701 + _globals['_UPDATERUNRESPONSE']._serialized_end=3762 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_start=3764 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_end=3885 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_start=3887 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_end=3935 + _globals['_DELETERUNREQUEST']._serialized_start=3937 + _globals['_DELETERUNREQUEST']._serialized_end=3991 + _globals['_DELETERUNRESPONSE']._serialized_start=3993 + _globals['_DELETERUNRESPONSE']._serialized_end=4012 + _globals['_STOPRUNREQUEST']._serialized_start=4014 + _globals['_STOPRUNREQUEST']._serialized_end=4066 + _globals['_STOPRUNRESPONSE']._serialized_start=4068 + _globals['_STOPRUNRESPONSE']._serialized_end=4085 + _globals['_RUNSERVICE']._serialized_start=4088 + _globals['_RUNSERVICE']._serialized_end=5845 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/runs/v2/runs_pb2.pyi b/python/lib/sift/runs/v2/runs_pb2.pyi index 6f60f51fd..33677ad35 100644 --- a/python/lib/sift/runs/v2/runs_pb2.pyi +++ b/python/lib/sift/runs/v2/runs_pb2.pyi @@ -6,6 +6,7 @@ isort:skip_file import builtins import collections.abc import google.protobuf.descriptor +import google.protobuf.duration_pb2 import google.protobuf.field_mask_pb2 import google.protobuf.internal.containers import google.protobuf.message @@ -37,6 +38,8 @@ class Run(google.protobuf.message.Message): ASSET_IDS_FIELD_NUMBER: builtins.int ARCHIVED_DATE_FIELD_NUMBER: builtins.int IS_ADHOC_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int + DURATION_FIELD_NUMBER: builtins.int run_id: builtins.str created_by_user_id: builtins.str modified_by_user_id: builtins.str @@ -47,6 +50,8 @@ class Run(google.protobuf.message.Message): default_report_id: builtins.str client_key: builtins.str is_adhoc: builtins.bool + is_archived: builtins.bool + """Whether the Run is archived. This is inferred from whether archived_date is set.""" @property def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -65,6 +70,12 @@ class Run(google.protobuf.message.Message): def asset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def duration(self) -> google.protobuf.duration_pb2.Duration: + """The duration of the run. Calculated as the difference between stop_time and start_time. + If the run is ongoing (no stop_time), this represents the duration from start_time to current time. + """ + def __init__( self, *, @@ -86,14 +97,18 @@ class Run(google.protobuf.message.Message): asset_ids: collections.abc.Iterable[builtins.str] | None = ..., archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., is_adhoc: builtins.bool = ..., + is_archived: builtins.bool = ..., + duration: google.protobuf.duration_pb2.Duration | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_start_time", b"_start_time", "_stop_time", b"_stop_time", "archived_date", b"archived_date", "client_key", b"client_key", "created_date", b"created_date", "modified_date", b"modified_date", "start_time", b"start_time", "stop_time", b"stop_time"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_start_time", b"_start_time", "_stop_time", b"_stop_time", "archived_date", b"archived_date", "asset_ids", b"asset_ids", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "default_report_id", b"default_report_id", "description", b"description", "is_adhoc", b"is_adhoc", "is_pinned", b"is_pinned", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "run_id", b"run_id", "start_time", b"start_time", "stop_time", b"stop_time", "tags", b"tags"]) -> None: ... + def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_duration", b"_duration", "_start_time", b"_start_time", "_stop_time", b"_stop_time", "archived_date", b"archived_date", "client_key", b"client_key", "created_date", b"created_date", "duration", b"duration", "modified_date", b"modified_date", "start_time", b"start_time", "stop_time", b"stop_time"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_client_key", b"_client_key", "_duration", b"_duration", "_start_time", b"_start_time", "_stop_time", b"_stop_time", "archived_date", b"archived_date", "asset_ids", b"asset_ids", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "default_report_id", b"default_report_id", "description", b"description", "duration", b"duration", "is_adhoc", b"is_adhoc", "is_archived", b"is_archived", "is_pinned", b"is_pinned", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "run_id", b"run_id", "start_time", b"start_time", "stop_time", b"stop_time", "tags", b"tags"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_client_key", b"_client_key"]) -> typing.Literal["client_key"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_duration", b"_duration"]) -> typing.Literal["duration"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_start_time", b"_start_time"]) -> typing.Literal["start_time"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_stop_time", b"_stop_time"]) -> typing.Literal["stop_time"] | None: ... @@ -162,8 +177,9 @@ class ListRunsRequest(google.protobuf.message.Message): filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available fields to filter by are `run_id` `organization_id`, `asset_id`, `asset_name`, `client_key`, `name`, `description`, `created_by_user_id`, `modified_by_user_id`, - `created_date`, `modified_date`, `start_time`, `stop_time`, `tag_id`, `asset_tag_id`, `duration`, `annotation_comments_count`, `annotation_state`, `archived_date`, + `created_date`, `modified_date`, `start_time`, `stop_time`, `tag_id`, `asset_tag_id`, `duration`, 'duration_string', `annotation_comments_count`, `annotation_state`, `archived_date`, `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name. + `duration` is in the format of elapsed seconds and `duration_string` allows for `h`, `m`, `s`, `ms` suffixes (example: `duration_string > duration('10h')) For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/runs#run). Optional. """ @@ -381,7 +397,7 @@ class UpdateRunRequest(google.protobuf.message.Message): @property def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: """The list of fields to be updated. The fields available to be updated are `name`, `description`, - `start_time`, `stop_time`, `is_pinned`, `client_key`, `tags`, and `metadata`. + `start_time`, `stop_time`, `is_pinned`, `client_key`, `tags`,`is_archived`, and `metadata`. Important Note: When updating the `start_time`, please be aware that if a subsequent data ingestion commences for this run, the `start_time` will be automatically overwritten and set to the timestamp corresponding to the beginning of the latest run. Additionally, `client_key` can only be set once either in run creation or in update. diff --git a/python/lib/sift/runs/v2/runs_pb2_grpc.py b/python/lib/sift/runs/v2/runs_pb2_grpc.py index fa76877c4..35c8cb7c2 100644 --- a/python/lib/sift/runs/v2/runs_pb2_grpc.py +++ b/python/lib/sift/runs/v2/runs_pb2_grpc.py @@ -96,6 +96,7 @@ def UpdateRun(self, request, context): def DeleteRun(self, request, context): """Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`. + Deprecated: Use update with is_archived. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') diff --git a/python/lib/sift/runs/v2/runs_pb2_grpc.pyi b/python/lib/sift/runs/v2/runs_pb2_grpc.pyi index 5cf57cbf4..b378c3da7 100644 --- a/python/lib/sift/runs/v2/runs_pb2_grpc.pyi +++ b/python/lib/sift/runs/v2/runs_pb2_grpc.pyi @@ -53,7 +53,9 @@ class RunServiceStub: sift.runs.v2.runs_pb2.DeleteRunRequest, sift.runs.v2.runs_pb2.DeleteRunResponse, ] - """Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`.""" + """Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`. + Deprecated: Use update with is_archived. + """ StopRun: grpc.UnaryUnaryMultiCallable[ sift.runs.v2.runs_pb2.StopRunRequest, @@ -102,7 +104,9 @@ class RunServiceAsyncStub: sift.runs.v2.runs_pb2.DeleteRunRequest, sift.runs.v2.runs_pb2.DeleteRunResponse, ] - """Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`.""" + """Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`. + Deprecated: Use update with is_archived. + """ StopRun: grpc.aio.UnaryUnaryMultiCallable[ sift.runs.v2.runs_pb2.StopRunRequest, @@ -163,7 +167,9 @@ class RunServiceServicer(metaclass=abc.ABCMeta): request: sift.runs.v2.runs_pb2.DeleteRunRequest, context: _ServicerContext, ) -> typing.Union[sift.runs.v2.runs_pb2.DeleteRunResponse, collections.abc.Awaitable[sift.runs.v2.runs_pb2.DeleteRunResponse]]: - """Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`.""" + """Permanently delete a given run. In order for a run to be deleted it must have a set `stop_time`. + Deprecated: Use update with is_archived. + """ @abc.abstractmethod def StopRun( diff --git a/python/lib/sift/saved_searches/v1/saved_searches_pb2.py b/python/lib/sift/saved_searches/v1/saved_searches_pb2.py index 7f7850915..bcdcbf7e8 100644 --- a/python/lib/sift/saved_searches/v1/saved_searches_pb2.py +++ b/python/lib/sift/saved_searches/v1/saved_searches_pb2.py @@ -19,7 +19,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sift/saved_searches/v1/saved_searches.proto\x12\x16sift.saved_searches.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xc5\x03\n\x0bSavedSearch\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x04 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\"\x9d\x07\n\x15SavedSearchProperties\x12(\n\roverview_mode\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0coverviewMode\x12)\n\x0bsearch_term\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\nsearchTerm\x88\x01\x01\x12J\n\x0e\x66rom_date_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x66romDateTime\x88\x01\x01\x12\x46\n\x0cto_date_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x02R\ntoDateTime\x88\x01\x01\x12S\n\x0b\x61sset_items\x18\x05 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\nassetItems\x12Q\n\nuser_items\x18\x06 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\tuserItems\x12O\n\ttag_items\x18\x07 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08tagItems\x12]\n\x10\x61nnotation_items\x18\x08 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x0f\x61nnotationItems\x12O\n\trun_items\x18\t \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08runItems\x12\x66\n\x15report_template_items\x18\n \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x13reportTemplateItems\x12<\n\x15show_advanced_filters\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01H\x03R\x13showAdvancedFilters\x88\x01\x01\x42\x0e\n\x0c_search_termB\x11\n\x0f_from_date_timeB\x0f\n\r_to_date_timeB\x18\n\x16_show_advanced_filters\"E\n\x15SavedSearchFilterItem\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\"D\n\x15GetSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"e\n\x16GetSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"\xab\x01\n\x18ListSavedSearchesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"\x8f\x01\n\x19ListSavedSearchesResponse\x12J\n\x0esaved_searches\x18\x01 \x03(\x0b\x32#.sift.saved_searches.v1.SavedSearchR\rsavedSearches\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb5\x01\n\x18\x43reateSavedSearchRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x02 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"h\n\x19\x43reateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"G\n\x18\x44\x65leteSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"\x1b\n\x19\x44\x65leteSavedSearchResponse\"K\n\x1f\x42\x61tchDeleteSavedSearchesRequest\x12(\n\x10saved_search_ids\x18\x01 \x03(\tR\x0esavedSearchIds\"\"\n BatchDeleteSavedSearchesResponse\"\xa9\x01\n\x18UpdateSavedSearchRequest\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"h\n\x19UpdateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch2\xdf\n\n\x12SavedSearchService\x12\xce\x01\n\x0eGetSavedSearch\x12-.sift.saved_searches.v1.GetSavedSearchRequest\x1a..sift.saved_searches.v1.GetSavedSearchResponse\"]\x92\x41*\x12\x0eGetSavedSearch\x1a\x18Retrieve a saved search.\x82\xd3\xe4\x93\x02*\x12(/api/v1/saved_searches/{saved_search_id}\x12\xc9\x01\n\x11\x43reateSavedSearch\x12\x30.sift.saved_searches.v1.CreateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.CreateSavedSearchResponse\"O\x92\x41+\x12\x11\x43reateSavedSearch\x1a\x16\x43reate a saved search.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/saved_searches:\x01*\x12\xc4\x01\n\x11ListSavedSearches\x12\x30.sift.saved_searches.v1.ListSavedSearchesRequest\x1a\x31.sift.saved_searches.v1.ListSavedSearchesResponse\"J\x92\x41)\x12\x11ListSavedSearches\x1a\x14List saved searches.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/saved_searches\x12\x8f\x02\n\x11UpdateSavedSearch\x12\x30.sift.saved_searches.v1.UpdateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.UpdateSavedSearchResponse\"\x94\x01\x92\x41p\x12\x11UpdateSavedSearch\x1a[Updates an existing saved search using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x1b\x32\x16/api/v1/saved_searches:\x01*\x12\xd8\x01\n\x11\x44\x65leteSavedSearch\x12\x30.sift.saved_searches.v1.DeleteSavedSearchRequest\x1a\x31.sift.saved_searches.v1.DeleteSavedSearchResponse\"^\x92\x41+\x12\x11\x44\x65leteSavedSearch\x1a\x16\x44\x65lete a saved search.\x82\xd3\xe4\x93\x02**(/api/v1/saved_searches/{saved_search_id}\x12\xf7\x01\n\x18\x42\x61tchDeleteSavedSearches\x12\x37.sift.saved_searches.v1.BatchDeleteSavedSearchesRequest\x1a\x38.sift.saved_searches.v1.BatchDeleteSavedSearchesResponse\"h\x92\x41\x38\x12\x18\x42\x61tchDeleteSavedSearches\x1a\x1c\x42\x61tch delete saved searches.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/saved_searches:batchDelete:\x01*B\xc0\x01\n\x1a\x63om.sift.saved_searches.v1B\x12SavedSearchesProtoP\x01\xa2\x02\x03SSX\xaa\x02\x15Sift.SavedSearches.V1\xca\x02\x15Sift\\SavedSearches\\V1\xe2\x02!Sift\\SavedSearches\\V1\\GPBMetadata\xea\x02\x17Sift::SavedSearches::V1\x92\x41\x17\x12\x15\n\x13SavedSearch serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sift/saved_searches/v1/saved_searches.proto\x12\x16sift.saved_searches.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xc5\x03\n\x0bSavedSearch\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x04 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\"\xf6\x08\n\x15SavedSearchProperties\x12(\n\roverview_mode\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0coverviewMode\x12)\n\x0bsearch_term\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\nsearchTerm\x88\x01\x01\x12J\n\x0e\x66rom_date_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x66romDateTime\x88\x01\x01\x12\x46\n\x0cto_date_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x02R\ntoDateTime\x88\x01\x01\x12S\n\x0b\x61sset_items\x18\x05 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\nassetItems\x12Q\n\nuser_items\x18\x06 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\tuserItems\x12O\n\ttag_items\x18\x07 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08tagItems\x12]\n\x10\x61nnotation_items\x18\x08 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x0f\x61nnotationItems\x12O\n\trun_items\x18\t \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08runItems\x12\x66\n\x15report_template_items\x18\n \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x13reportTemplateItems\x12<\n\x15show_advanced_filters\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01H\x03R\x13showAdvancedFilters\x88\x01\x01\x12\x33\n\x10include_archived\x18\x0c \x01(\x08\x42\x03\xe0\x41\x01H\x04R\x0fincludeArchived\x88\x01\x01\x12#\n\x08order_by\x18\r \x01(\tB\x03\xe0\x41\x01H\x05R\x07orderBy\x88\x01\x01\x12[\n\x0emetadata_items\x18\x0e \x03(\x0b\x32/.sift.saved_searches.v1.SavedSearchMetadataItemB\x03\xe0\x41\x01R\rmetadataItemsB\x0e\n\x0c_search_termB\x11\n\x0f_from_date_timeB\x0f\n\r_to_date_timeB\x18\n\x16_show_advanced_filtersB\x13\n\x11_include_archivedB\x0b\n\t_order_by\"E\n\x15SavedSearchFilterItem\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\"\xaa\x01\n\x17SavedSearchMetadataItem\x12\x15\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03key\x12#\n\x0cstring_value\x18\x02 \x01(\tH\x00R\x0bstringValue\x12#\n\x0cnumber_value\x18\x03 \x01(\x01H\x00R\x0bnumberValue\x12%\n\rboolean_value\x18\x04 \x01(\x08H\x00R\x0c\x62ooleanValueB\x07\n\x05value\"D\n\x15GetSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"e\n\x16GetSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"\xab\x01\n\x18ListSavedSearchesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"\x8f\x01\n\x19ListSavedSearchesResponse\x12J\n\x0esaved_searches\x18\x01 \x03(\x0b\x32#.sift.saved_searches.v1.SavedSearchR\rsavedSearches\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb5\x01\n\x18\x43reateSavedSearchRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x02 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"h\n\x19\x43reateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"G\n\x18\x44\x65leteSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"\x1b\n\x19\x44\x65leteSavedSearchResponse\"K\n\x1f\x42\x61tchDeleteSavedSearchesRequest\x12(\n\x10saved_search_ids\x18\x01 \x03(\tR\x0esavedSearchIds\"\"\n BatchDeleteSavedSearchesResponse\"\xa9\x01\n\x18UpdateSavedSearchRequest\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"h\n\x19UpdateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch2\xdf\n\n\x12SavedSearchService\x12\xce\x01\n\x0eGetSavedSearch\x12-.sift.saved_searches.v1.GetSavedSearchRequest\x1a..sift.saved_searches.v1.GetSavedSearchResponse\"]\x92\x41*\x12\x0eGetSavedSearch\x1a\x18Retrieve a saved search.\x82\xd3\xe4\x93\x02*\x12(/api/v1/saved_searches/{saved_search_id}\x12\xc9\x01\n\x11\x43reateSavedSearch\x12\x30.sift.saved_searches.v1.CreateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.CreateSavedSearchResponse\"O\x92\x41+\x12\x11\x43reateSavedSearch\x1a\x16\x43reate a saved search.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/saved_searches:\x01*\x12\xc4\x01\n\x11ListSavedSearches\x12\x30.sift.saved_searches.v1.ListSavedSearchesRequest\x1a\x31.sift.saved_searches.v1.ListSavedSearchesResponse\"J\x92\x41)\x12\x11ListSavedSearches\x1a\x14List saved searches.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/saved_searches\x12\x8f\x02\n\x11UpdateSavedSearch\x12\x30.sift.saved_searches.v1.UpdateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.UpdateSavedSearchResponse\"\x94\x01\x92\x41p\x12\x11UpdateSavedSearch\x1a[Updates an existing saved search using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x1b\x32\x16/api/v1/saved_searches:\x01*\x12\xd8\x01\n\x11\x44\x65leteSavedSearch\x12\x30.sift.saved_searches.v1.DeleteSavedSearchRequest\x1a\x31.sift.saved_searches.v1.DeleteSavedSearchResponse\"^\x92\x41+\x12\x11\x44\x65leteSavedSearch\x1a\x16\x44\x65lete a saved search.\x82\xd3\xe4\x93\x02**(/api/v1/saved_searches/{saved_search_id}\x12\xf7\x01\n\x18\x42\x61tchDeleteSavedSearches\x12\x37.sift.saved_searches.v1.BatchDeleteSavedSearchesRequest\x1a\x38.sift.saved_searches.v1.BatchDeleteSavedSearchesResponse\"h\x92\x41\x38\x12\x18\x42\x61tchDeleteSavedSearches\x1a\x1c\x42\x61tch delete saved searches.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/saved_searches:batchDelete:\x01*B\xc0\x01\n\x1a\x63om.sift.saved_searches.v1B\x12SavedSearchesProtoP\x01\xa2\x02\x03SSX\xaa\x02\x15Sift.SavedSearches.V1\xca\x02\x15Sift\\SavedSearches\\V1\xe2\x02!Sift\\SavedSearches\\V1\\GPBMetadata\xea\x02\x17Sift::SavedSearches::V1\x92\x41\x17\x12\x15\n\x13SavedSearch serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -65,10 +65,18 @@ _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['report_template_items']._serialized_options = b'\340A\001' _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['show_advanced_filters']._loaded_options = None _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['show_advanced_filters']._serialized_options = b'\340A\001' + _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['include_archived']._loaded_options = None + _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['include_archived']._serialized_options = b'\340A\001' + _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['order_by']._loaded_options = None + _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['metadata_items']._loaded_options = None + _globals['_SAVEDSEARCHPROPERTIES'].fields_by_name['metadata_items']._serialized_options = b'\340A\001' _globals['_SAVEDSEARCHFILTERITEM'].fields_by_name['id']._loaded_options = None _globals['_SAVEDSEARCHFILTERITEM'].fields_by_name['id']._serialized_options = b'\340A\002' _globals['_SAVEDSEARCHFILTERITEM'].fields_by_name['name']._loaded_options = None _globals['_SAVEDSEARCHFILTERITEM'].fields_by_name['name']._serialized_options = b'\340A\002' + _globals['_SAVEDSEARCHMETADATAITEM'].fields_by_name['key']._loaded_options = None + _globals['_SAVEDSEARCHMETADATAITEM'].fields_by_name['key']._serialized_options = b'\340A\002' _globals['_GETSAVEDSEARCHREQUEST'].fields_by_name['saved_search_id']._loaded_options = None _globals['_GETSAVEDSEARCHREQUEST'].fields_by_name['saved_search_id']._serialized_options = b'\340A\002' _globals['_GETSAVEDSEARCHRESPONSE'].fields_by_name['saved_search']._loaded_options = None @@ -112,33 +120,35 @@ _globals['_SAVEDSEARCH']._serialized_start=250 _globals['_SAVEDSEARCH']._serialized_end=703 _globals['_SAVEDSEARCHPROPERTIES']._serialized_start=706 - _globals['_SAVEDSEARCHPROPERTIES']._serialized_end=1631 - _globals['_SAVEDSEARCHFILTERITEM']._serialized_start=1633 - _globals['_SAVEDSEARCHFILTERITEM']._serialized_end=1702 - _globals['_GETSAVEDSEARCHREQUEST']._serialized_start=1704 - _globals['_GETSAVEDSEARCHREQUEST']._serialized_end=1772 - _globals['_GETSAVEDSEARCHRESPONSE']._serialized_start=1774 - _globals['_GETSAVEDSEARCHRESPONSE']._serialized_end=1875 - _globals['_LISTSAVEDSEARCHESREQUEST']._serialized_start=1878 - _globals['_LISTSAVEDSEARCHESREQUEST']._serialized_end=2049 - _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_start=2052 - _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_end=2195 - _globals['_CREATESAVEDSEARCHREQUEST']._serialized_start=2198 - _globals['_CREATESAVEDSEARCHREQUEST']._serialized_end=2379 - _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_start=2381 - _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_end=2485 - _globals['_DELETESAVEDSEARCHREQUEST']._serialized_start=2487 - _globals['_DELETESAVEDSEARCHREQUEST']._serialized_end=2558 - _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_start=2560 - _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_end=2587 - _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_start=2589 - _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_end=2664 - _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_start=2666 - _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_end=2700 - _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_start=2703 - _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_end=2872 - _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_start=2874 - _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_end=2978 - _globals['_SAVEDSEARCHSERVICE']._serialized_start=2981 - _globals['_SAVEDSEARCHSERVICE']._serialized_end=4356 + _globals['_SAVEDSEARCHPROPERTIES']._serialized_end=1848 + _globals['_SAVEDSEARCHFILTERITEM']._serialized_start=1850 + _globals['_SAVEDSEARCHFILTERITEM']._serialized_end=1919 + _globals['_SAVEDSEARCHMETADATAITEM']._serialized_start=1922 + _globals['_SAVEDSEARCHMETADATAITEM']._serialized_end=2092 + _globals['_GETSAVEDSEARCHREQUEST']._serialized_start=2094 + _globals['_GETSAVEDSEARCHREQUEST']._serialized_end=2162 + _globals['_GETSAVEDSEARCHRESPONSE']._serialized_start=2164 + _globals['_GETSAVEDSEARCHRESPONSE']._serialized_end=2265 + _globals['_LISTSAVEDSEARCHESREQUEST']._serialized_start=2268 + _globals['_LISTSAVEDSEARCHESREQUEST']._serialized_end=2439 + _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_start=2442 + _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_end=2585 + _globals['_CREATESAVEDSEARCHREQUEST']._serialized_start=2588 + _globals['_CREATESAVEDSEARCHREQUEST']._serialized_end=2769 + _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_start=2771 + _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_end=2875 + _globals['_DELETESAVEDSEARCHREQUEST']._serialized_start=2877 + _globals['_DELETESAVEDSEARCHREQUEST']._serialized_end=2948 + _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_start=2950 + _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_end=2977 + _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_start=2979 + _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_end=3054 + _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_start=3056 + _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_end=3090 + _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_start=3093 + _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_end=3262 + _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_start=3264 + _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_end=3368 + _globals['_SAVEDSEARCHSERVICE']._serialized_start=3371 + _globals['_SAVEDSEARCHSERVICE']._serialized_end=4746 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi b/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi index 450bf6341..9860c0f19 100644 --- a/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi +++ b/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi @@ -69,9 +69,14 @@ class SavedSearchProperties(google.protobuf.message.Message): RUN_ITEMS_FIELD_NUMBER: builtins.int REPORT_TEMPLATE_ITEMS_FIELD_NUMBER: builtins.int SHOW_ADVANCED_FILTERS_FIELD_NUMBER: builtins.int + INCLUDE_ARCHIVED_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + METADATA_ITEMS_FIELD_NUMBER: builtins.int overview_mode: builtins.str search_term: builtins.str show_advanced_filters: builtins.bool + include_archived: builtins.bool + order_by: builtins.str @property def from_date_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property @@ -88,6 +93,8 @@ class SavedSearchProperties(google.protobuf.message.Message): def run_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SavedSearchFilterItem]: ... @property def report_template_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SavedSearchFilterItem]: ... + @property + def metadata_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SavedSearchMetadataItem]: ... def __init__( self, *, @@ -102,12 +109,19 @@ class SavedSearchProperties(google.protobuf.message.Message): run_items: collections.abc.Iterable[global___SavedSearchFilterItem] | None = ..., report_template_items: collections.abc.Iterable[global___SavedSearchFilterItem] | None = ..., show_advanced_filters: builtins.bool | None = ..., + include_archived: builtins.bool | None = ..., + order_by: builtins.str | None = ..., + metadata_items: collections.abc.Iterable[global___SavedSearchMetadataItem] | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_from_date_time", b"_from_date_time", "_search_term", b"_search_term", "_show_advanced_filters", b"_show_advanced_filters", "_to_date_time", b"_to_date_time", "from_date_time", b"from_date_time", "search_term", b"search_term", "show_advanced_filters", b"show_advanced_filters", "to_date_time", b"to_date_time"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_from_date_time", b"_from_date_time", "_search_term", b"_search_term", "_show_advanced_filters", b"_show_advanced_filters", "_to_date_time", b"_to_date_time", "annotation_items", b"annotation_items", "asset_items", b"asset_items", "from_date_time", b"from_date_time", "overview_mode", b"overview_mode", "report_template_items", b"report_template_items", "run_items", b"run_items", "search_term", b"search_term", "show_advanced_filters", b"show_advanced_filters", "tag_items", b"tag_items", "to_date_time", b"to_date_time", "user_items", b"user_items"]) -> None: ... + def HasField(self, field_name: typing.Literal["_from_date_time", b"_from_date_time", "_include_archived", b"_include_archived", "_order_by", b"_order_by", "_search_term", b"_search_term", "_show_advanced_filters", b"_show_advanced_filters", "_to_date_time", b"_to_date_time", "from_date_time", b"from_date_time", "include_archived", b"include_archived", "order_by", b"order_by", "search_term", b"search_term", "show_advanced_filters", b"show_advanced_filters", "to_date_time", b"to_date_time"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_from_date_time", b"_from_date_time", "_include_archived", b"_include_archived", "_order_by", b"_order_by", "_search_term", b"_search_term", "_show_advanced_filters", b"_show_advanced_filters", "_to_date_time", b"_to_date_time", "annotation_items", b"annotation_items", "asset_items", b"asset_items", "from_date_time", b"from_date_time", "include_archived", b"include_archived", "metadata_items", b"metadata_items", "order_by", b"order_by", "overview_mode", b"overview_mode", "report_template_items", b"report_template_items", "run_items", b"run_items", "search_term", b"search_term", "show_advanced_filters", b"show_advanced_filters", "tag_items", b"tag_items", "to_date_time", b"to_date_time", "user_items", b"user_items"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_from_date_time", b"_from_date_time"]) -> typing.Literal["from_date_time"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_include_archived", b"_include_archived"]) -> typing.Literal["include_archived"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_order_by", b"_order_by"]) -> typing.Literal["order_by"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_search_term", b"_search_term"]) -> typing.Literal["search_term"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_show_advanced_filters", b"_show_advanced_filters"]) -> typing.Literal["show_advanced_filters"] | None: ... @@ -134,6 +148,32 @@ class SavedSearchFilterItem(google.protobuf.message.Message): global___SavedSearchFilterItem = SavedSearchFilterItem +@typing.final +class SavedSearchMetadataItem(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + STRING_VALUE_FIELD_NUMBER: builtins.int + NUMBER_VALUE_FIELD_NUMBER: builtins.int + BOOLEAN_VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + string_value: builtins.str + number_value: builtins.float + boolean_value: builtins.bool + def __init__( + self, + *, + key: builtins.str = ..., + string_value: builtins.str = ..., + number_value: builtins.float = ..., + boolean_value: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["boolean_value", b"boolean_value", "number_value", b"number_value", "string_value", b"string_value", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["boolean_value", b"boolean_value", "key", b"key", "number_value", b"number_value", "string_value", b"string_value", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["string_value", "number_value", "boolean_value"] | None: ... + +global___SavedSearchMetadataItem = SavedSearchMetadataItem + @typing.final class GetSavedSearchRequest(google.protobuf.message.Message): """The request for a call to `SavedSearchService_GetSavedSearch` to retrieve a saved search;""" diff --git a/python/lib/sift/tags/v2/tags_pb2.py b/python/lib/sift/tags/v2/tags_pb2.py index 407886ac6..ef8b004e1 100644 --- a/python/lib/sift/tags/v2/tags_pb2.py +++ b/python/lib/sift/tags/v2/tags_pb2.py @@ -18,7 +18,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/tags/v2/tags.proto\x12\x0csift.tags.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xb0\x01\n\x03Tag\x12\x1a\n\x06tag_id\x18\x01 \x01(\tB\x03\xe0\x41\x03R\x05tagId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x03R\x04name\x12\x30\n\x12\x63reated_by_user_id\x18\x03 \x01(\tB\x03\xe0\x41\x03R\x0f\x63reatedByUserId\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0b\x63reatedDate\"+\n\x10\x43reateTagRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\"8\n\x11\x43reateTagResponse\x12#\n\x03tag\x18\x01 \x01(\x0b\x32\x11.sift.tags.v2.TagR\x03tag\"\x94\x01\n\x0fListTagsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"a\n\x10ListTagsResponse\x12%\n\x04tags\x18\x01 \x03(\x0b\x32\x11.sift.tags.v2.TagR\x04tags\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xa0\x03\n\nTagService\x12\x9a\x01\n\tCreateTag\x12\x1e.sift.tags.v2.CreateTagRequest\x1a\x1f.sift.tags.v2.CreateTagResponse\"L\x92\x41\x32\x12\tCreateTag\x1a\rCreate a tag.*\x16TagService_CreateTagV2\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/tags:\x01*\x12\xad\x01\n\x08ListTags\x12\x1d.sift.tags.v2.ListTagsRequest\x1a\x1e.sift.tags.v2.ListTagsResponse\"b\x92\x41K\x12\x08ListTags\x1a(Retrieves tags using an optional filter.*\x15TagService_ListTagsV2\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v2/tags\x1a\x45\x92\x41\x42\x12@Service to programmatically interact with [tags](/glossary#tag).B\x81\x01\n\x10\x63om.sift.tags.v2B\tTagsProtoP\x01\xa2\x02\x03STX\xaa\x02\x0cSift.Tags.V2\xca\x02\x0cSift\\Tags\\V2\xe2\x02\x18Sift\\Tags\\V2\\GPBMetadata\xea\x02\x0eSift::Tags::V2\x92\x41\x0f\x12\r\n\x0bTag Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/tags/v2/tags.proto\x12\x0csift.tags.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xb0\x01\n\x03Tag\x12\x1a\n\x06tag_id\x18\x01 \x01(\tB\x03\xe0\x41\x03R\x05tagId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x03R\x04name\x12\x30\n\x12\x63reated_by_user_id\x18\x03 \x01(\tB\x03\xe0\x41\x03R\x0f\x63reatedByUserId\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03R\x0b\x63reatedDate\"+\n\x10\x43reateTagRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\"8\n\x11\x43reateTagResponse\x12#\n\x03tag\x18\x01 \x01(\x0b\x32\x11.sift.tags.v2.TagR\x03tag\"\xcb\x01\n\x0fListTagsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\x12\x35\n\x08tag_type\x18\x05 \x01(\x0e\x32\x15.sift.tags.v2.TagTypeB\x03\xe0\x41\x01R\x07tagType\"a\n\x10ListTagsResponse\x12%\n\x04tags\x18\x01 \x03(\x0b\x32\x11.sift.tags.v2.TagR\x04tags\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*\xac\x01\n\x07TagType\x12\x18\n\x14TAG_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13TAG_TYPE_ANNOTATION\x10\x01\x12\x12\n\x0eTAG_TYPE_ASSET\x10\x02\x12\x15\n\x11TAG_TYPE_CAMPAIGN\x10\x03\x12\x13\n\x0fTAG_TYPE_REPORT\x10\x04\x12\x1c\n\x18TAG_TYPE_REPORT_TEMPLATE\x10\x05\x12\x10\n\x0cTAG_TYPE_RUN\x10\x06\x32\xa0\x03\n\nTagService\x12\x9a\x01\n\tCreateTag\x12\x1e.sift.tags.v2.CreateTagRequest\x1a\x1f.sift.tags.v2.CreateTagResponse\"L\x92\x41\x32\x12\tCreateTag\x1a\rCreate a tag.*\x16TagService_CreateTagV2\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/tags:\x01*\x12\xad\x01\n\x08ListTags\x12\x1d.sift.tags.v2.ListTagsRequest\x1a\x1e.sift.tags.v2.ListTagsResponse\"b\x92\x41K\x12\x08ListTags\x1a(Retrieves tags using an optional filter.*\x15TagService_ListTagsV2\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v2/tags\x1a\x45\x92\x41\x42\x12@Service to programmatically interact with [tags](/glossary#tag).B\x81\x01\n\x10\x63om.sift.tags.v2B\tTagsProtoP\x01\xa2\x02\x03STX\xaa\x02\x0cSift.Tags.V2\xca\x02\x0cSift\\Tags\\V2\xe2\x02\x18Sift\\Tags\\V2\\GPBMetadata\xea\x02\x0eSift::Tags::V2\x92\x41\x0f\x12\r\n\x0bTag Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -44,12 +44,16 @@ _globals['_LISTTAGSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001' _globals['_LISTTAGSREQUEST'].fields_by_name['order_by']._loaded_options = None _globals['_LISTTAGSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_LISTTAGSREQUEST'].fields_by_name['tag_type']._loaded_options = None + _globals['_LISTTAGSREQUEST'].fields_by_name['tag_type']._serialized_options = b'\340A\001' _globals['_TAGSERVICE']._loaded_options = None _globals['_TAGSERVICE']._serialized_options = b'\222AB\022@Service to programmatically interact with [tags](/glossary#tag).' _globals['_TAGSERVICE'].methods_by_name['CreateTag']._loaded_options = None _globals['_TAGSERVICE'].methods_by_name['CreateTag']._serialized_options = b'\222A2\022\tCreateTag\032\rCreate a tag.*\026TagService_CreateTagV2\202\323\344\223\002\021\"\014/api/v2/tags:\001*' _globals['_TAGSERVICE'].methods_by_name['ListTags']._loaded_options = None _globals['_TAGSERVICE'].methods_by_name['ListTags']._serialized_options = b'\222AK\022\010ListTags\032(Retrieves tags using an optional filter.*\025TagService_ListTagsV2\202\323\344\223\002\016\022\014/api/v2/tags' + _globals['_TAGTYPE']._serialized_start=773 + _globals['_TAGTYPE']._serialized_end=945 _globals['_TAG']._serialized_start=186 _globals['_TAG']._serialized_end=362 _globals['_CREATETAGREQUEST']._serialized_start=364 @@ -57,9 +61,9 @@ _globals['_CREATETAGRESPONSE']._serialized_start=409 _globals['_CREATETAGRESPONSE']._serialized_end=465 _globals['_LISTTAGSREQUEST']._serialized_start=468 - _globals['_LISTTAGSREQUEST']._serialized_end=616 - _globals['_LISTTAGSRESPONSE']._serialized_start=618 - _globals['_LISTTAGSRESPONSE']._serialized_end=715 - _globals['_TAGSERVICE']._serialized_start=718 - _globals['_TAGSERVICE']._serialized_end=1134 + _globals['_LISTTAGSREQUEST']._serialized_end=671 + _globals['_LISTTAGSRESPONSE']._serialized_start=673 + _globals['_LISTTAGSRESPONSE']._serialized_end=770 + _globals['_TAGSERVICE']._serialized_start=948 + _globals['_TAGSERVICE']._serialized_end=1364 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/tags/v2/tags_pb2.pyi b/python/lib/sift/tags/v2/tags_pb2.pyi index 518eb2cd5..5da307946 100644 --- a/python/lib/sift/tags/v2/tags_pb2.pyi +++ b/python/lib/sift/tags/v2/tags_pb2.pyi @@ -7,12 +7,44 @@ import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper import google.protobuf.message import google.protobuf.timestamp_pb2 +import sys import typing +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +class _TagType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TagTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TagType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TAG_TYPE_UNSPECIFIED: _TagType.ValueType # 0 + TAG_TYPE_ANNOTATION: _TagType.ValueType # 1 + TAG_TYPE_ASSET: _TagType.ValueType # 2 + TAG_TYPE_CAMPAIGN: _TagType.ValueType # 3 + TAG_TYPE_REPORT: _TagType.ValueType # 4 + TAG_TYPE_REPORT_TEMPLATE: _TagType.ValueType # 5 + TAG_TYPE_RUN: _TagType.ValueType # 6 + +class TagType(_TagType, metaclass=_TagTypeEnumTypeWrapper): ... + +TAG_TYPE_UNSPECIFIED: TagType.ValueType # 0 +TAG_TYPE_ANNOTATION: TagType.ValueType # 1 +TAG_TYPE_ASSET: TagType.ValueType # 2 +TAG_TYPE_CAMPAIGN: TagType.ValueType # 3 +TAG_TYPE_REPORT: TagType.ValueType # 4 +TAG_TYPE_REPORT_TEMPLATE: TagType.ValueType # 5 +TAG_TYPE_RUN: TagType.ValueType # 6 +global___TagType = TagType + @typing.final class Tag(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -86,6 +118,7 @@ class ListTagsRequest(google.protobuf.message.Message): PAGE_TOKEN_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int ORDER_BY_FIELD_NUMBER: builtins.int + TAG_TYPE_FIELD_NUMBER: builtins.int page_size: builtins.int """The maximum number of tags to return. The service may return fewer than this value. @@ -111,6 +144,8 @@ class ListTagsRequest(google.protobuf.message.Message): For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) Example: "created_date desc,name" """ + tag_type: global___TagType.ValueType + """Narrows the tags selected to a specific type.""" def __init__( self, *, @@ -118,8 +153,9 @@ class ListTagsRequest(google.protobuf.message.Message): page_token: builtins.str = ..., filter: builtins.str = ..., order_by: builtins.str = ..., + tag_type: global___TagType.ValueType = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token", "tag_type", b"tag_type"]) -> None: ... global___ListTagsRequest = ListTagsRequest diff --git a/python/lib/sift/unit/v2/unit_pb2.py b/python/lib/sift/unit/v2/unit_pb2.py index f0fca46e6..e4dab1534 100644 --- a/python/lib/sift/unit/v2/unit_pb2.py +++ b/python/lib/sift/unit/v2/unit_pb2.py @@ -17,7 +17,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/unit/v2/unit.proto\x12\x0csift.unit.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"T\n\x04Unit\x12\x1c\n\x07unit_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06unitId\x12.\n\x10\x61\x62\x62reviated_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0f\x61\x62\x62reviatedName\"\x95\x01\n\x10ListUnitsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"o\n\x11ListUnitsResponse\x12-\n\x05units\x18\x01 \x03(\x0b\x32\x12.sift.unit.v2.UnitB\x03\xe0\x41\x02R\x05units\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xaf\x01\n\x0bUnitService\x12\x9f\x01\n\tListUnits\x12\x1e.sift.unit.v2.ListUnitsRequest\x1a\x1f.sift.unit.v2.ListUnitsResponse\"Q\x92\x41\x39\x12\tListUnits\x1a\x13Used to list units.*\x17UnitService_ListUnitsV2\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v2/unitsB\x82\x01\n\x10\x63om.sift.unit.v2B\tUnitProtoP\x01\xa2\x02\x03SUX\xaa\x02\x0cSift.Unit.V2\xca\x02\x0cSift\\Unit\\V2\xe2\x02\x18Sift\\Unit\\V2\\GPBMetadata\xea\x02\x0eSift::Unit::V2\x92\x41\x10\x12\x0e\n\x0cUnit serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/unit/v2/unit.proto\x12\x0csift.unit.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"T\n\x04Unit\x12\x1c\n\x07unit_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06unitId\x12.\n\x10\x61\x62\x62reviated_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0f\x61\x62\x62reviatedName\"\x95\x01\n\x10ListUnitsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"o\n\x11ListUnitsResponse\x12-\n\x05units\x18\x01 \x03(\x0b\x32\x12.sift.unit.v2.UnitB\x03\xe0\x41\x02R\x05units\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\",\n\x11\x43reateUnitRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\"A\n\x12\x43reateUnitResponse\x12+\n\x04unit\x18\x01 \x01(\x0b\x32\x12.sift.unit.v2.UnitB\x03\xe0\x41\x02R\x04unit2\xd9\x02\n\x0bUnitService\x12\xa7\x01\n\nCreateUnit\x12\x1f.sift.unit.v2.CreateUnitRequest\x1a .sift.unit.v2.CreateUnitResponse\"V\x92\x41>\x12\nCreateUnit\x1a\x16Used to create a unit.*\x18UnitService_CreateUnitV2\x82\xd3\xe4\x93\x02\x0f\"\r/api/v2/units\x12\x9f\x01\n\tListUnits\x12\x1e.sift.unit.v2.ListUnitsRequest\x1a\x1f.sift.unit.v2.ListUnitsResponse\"Q\x92\x41\x39\x12\tListUnits\x1a\x13Used to list units.*\x17UnitService_ListUnitsV2\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v2/unitsB\x82\x01\n\x10\x63om.sift.unit.v2B\tUnitProtoP\x01\xa2\x02\x03SUX\xaa\x02\x0cSift.Unit.V2\xca\x02\x0cSift\\Unit\\V2\xe2\x02\x18Sift\\Unit\\V2\\GPBMetadata\xea\x02\x0eSift::Unit::V2\x92\x41\x10\x12\x0e\n\x0cUnit serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -41,6 +41,12 @@ _globals['_LISTUNITSRESPONSE'].fields_by_name['units']._serialized_options = b'\340A\002' _globals['_LISTUNITSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None _globals['_LISTUNITSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\001' + _globals['_CREATEUNITREQUEST'].fields_by_name['name']._loaded_options = None + _globals['_CREATEUNITREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' + _globals['_CREATEUNITRESPONSE'].fields_by_name['unit']._loaded_options = None + _globals['_CREATEUNITRESPONSE'].fields_by_name['unit']._serialized_options = b'\340A\002' + _globals['_UNITSERVICE'].methods_by_name['CreateUnit']._loaded_options = None + _globals['_UNITSERVICE'].methods_by_name['CreateUnit']._serialized_options = b'\222A>\022\nCreateUnit\032\026Used to create a unit.*\030UnitService_CreateUnitV2\202\323\344\223\002\017\"\r/api/v2/units' _globals['_UNITSERVICE'].methods_by_name['ListUnits']._loaded_options = None _globals['_UNITSERVICE'].methods_by_name['ListUnits']._serialized_options = b'\222A9\022\tListUnits\032\023Used to list units.*\027UnitService_ListUnitsV2\202\323\344\223\002\017\022\r/api/v2/units' _globals['_UNIT']._serialized_start=152 @@ -49,6 +55,10 @@ _globals['_LISTUNITSREQUEST']._serialized_end=388 _globals['_LISTUNITSRESPONSE']._serialized_start=390 _globals['_LISTUNITSRESPONSE']._serialized_end=501 - _globals['_UNITSERVICE']._serialized_start=504 - _globals['_UNITSERVICE']._serialized_end=679 + _globals['_CREATEUNITREQUEST']._serialized_start=503 + _globals['_CREATEUNITREQUEST']._serialized_end=547 + _globals['_CREATEUNITRESPONSE']._serialized_start=549 + _globals['_CREATEUNITRESPONSE']._serialized_end=614 + _globals['_UNITSERVICE']._serialized_start=617 + _globals['_UNITSERVICE']._serialized_end=962 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/unit/v2/unit_pb2.pyi b/python/lib/sift/unit/v2/unit_pb2.pyi index 384af3f2b..fa7a8945b 100644 --- a/python/lib/sift/unit/v2/unit_pb2.pyi +++ b/python/lib/sift/unit/v2/unit_pb2.pyi @@ -49,7 +49,6 @@ class ListUnitsRequest(google.protobuf.message.Message): page_token: builtins.str """A page token, received from a previous `ListUnits` call. Provide this to retrieve the subsequent page. - When paginating, all other parameters provided to `ListUnits` must match the call that provided the page token. """ @@ -101,3 +100,35 @@ class ListUnitsResponse(google.protobuf.message.Message): def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "units", b"units"]) -> None: ... global___ListUnitsResponse = ListUnitsResponse + +@typing.final +class CreateUnitRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + name: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ... + +global___CreateUnitRequest = CreateUnitRequest + +@typing.final +class CreateUnitResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UNIT_FIELD_NUMBER: builtins.int + @property + def unit(self) -> global___Unit: ... + def __init__( + self, + *, + unit: global___Unit | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["unit", b"unit"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["unit", b"unit"]) -> None: ... + +global___CreateUnitResponse = CreateUnitResponse diff --git a/python/lib/sift/unit/v2/unit_pb2_grpc.py b/python/lib/sift/unit/v2/unit_pb2_grpc.py index 84ec8d1ff..2a328fe93 100644 --- a/python/lib/sift/unit/v2/unit_pb2_grpc.py +++ b/python/lib/sift/unit/v2/unit_pb2_grpc.py @@ -14,6 +14,11 @@ def __init__(self, channel): Args: channel: A grpc.Channel. """ + self.CreateUnit = channel.unary_unary( + '/sift.unit.v2.UnitService/CreateUnit', + request_serializer=sift_dot_unit_dot_v2_dot_unit__pb2.CreateUnitRequest.SerializeToString, + response_deserializer=sift_dot_unit_dot_v2_dot_unit__pb2.CreateUnitResponse.FromString, + ) self.ListUnits = channel.unary_unary( '/sift.unit.v2.UnitService/ListUnits', request_serializer=sift_dot_unit_dot_v2_dot_unit__pb2.ListUnitsRequest.SerializeToString, @@ -24,6 +29,12 @@ def __init__(self, channel): class UnitServiceServicer(object): """Missing associated documentation comment in .proto file.""" + def CreateUnit(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def ListUnits(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -33,6 +44,11 @@ def ListUnits(self, request, context): def add_UnitServiceServicer_to_server(servicer, server): rpc_method_handlers = { + 'CreateUnit': grpc.unary_unary_rpc_method_handler( + servicer.CreateUnit, + request_deserializer=sift_dot_unit_dot_v2_dot_unit__pb2.CreateUnitRequest.FromString, + response_serializer=sift_dot_unit_dot_v2_dot_unit__pb2.CreateUnitResponse.SerializeToString, + ), 'ListUnits': grpc.unary_unary_rpc_method_handler( servicer.ListUnits, request_deserializer=sift_dot_unit_dot_v2_dot_unit__pb2.ListUnitsRequest.FromString, @@ -48,6 +64,23 @@ def add_UnitServiceServicer_to_server(servicer, server): class UnitService(object): """Missing associated documentation comment in .proto file.""" + @staticmethod + def CreateUnit(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.unit.v2.UnitService/CreateUnit', + sift_dot_unit_dot_v2_dot_unit__pb2.CreateUnitRequest.SerializeToString, + sift_dot_unit_dot_v2_dot_unit__pb2.CreateUnitResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def ListUnits(request, target, diff --git a/python/lib/sift/unit/v2/unit_pb2_grpc.pyi b/python/lib/sift/unit/v2/unit_pb2_grpc.pyi index 689497bd2..04664f6b5 100644 --- a/python/lib/sift/unit/v2/unit_pb2_grpc.pyi +++ b/python/lib/sift/unit/v2/unit_pb2_grpc.pyi @@ -21,18 +21,35 @@ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: class UnitServiceStub: def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + CreateUnit: grpc.UnaryUnaryMultiCallable[ + sift.unit.v2.unit_pb2.CreateUnitRequest, + sift.unit.v2.unit_pb2.CreateUnitResponse, + ] + ListUnits: grpc.UnaryUnaryMultiCallable[ sift.unit.v2.unit_pb2.ListUnitsRequest, sift.unit.v2.unit_pb2.ListUnitsResponse, ] class UnitServiceAsyncStub: + CreateUnit: grpc.aio.UnaryUnaryMultiCallable[ + sift.unit.v2.unit_pb2.CreateUnitRequest, + sift.unit.v2.unit_pb2.CreateUnitResponse, + ] + ListUnits: grpc.aio.UnaryUnaryMultiCallable[ sift.unit.v2.unit_pb2.ListUnitsRequest, sift.unit.v2.unit_pb2.ListUnitsResponse, ] class UnitServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def CreateUnit( + self, + request: sift.unit.v2.unit_pb2.CreateUnitRequest, + context: _ServicerContext, + ) -> typing.Union[sift.unit.v2.unit_pb2.CreateUnitResponse, collections.abc.Awaitable[sift.unit.v2.unit_pb2.CreateUnitResponse]]: ... + @abc.abstractmethod def ListUnits( self, diff --git a/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py b/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py index 0d62112f9..562a4a822 100644 --- a/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py +++ b/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py @@ -12,6 +12,7 @@ _sym_db = _symbol_database.Default() +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 @@ -22,7 +23,7 @@ from sift.rules.v1 import rules_pb2 as sift_dot_rules_dot_v1_dot_rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;sift/user_defined_functions/v1/user_defined_functions.proto\x12\x1esift.user_defined_functions.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v2/calculated_channels.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\x1a\x19sift/rules/v1/rules.proto\"v\n\x1dGetUserDefinedFunctionRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\"\x83\x01\n\x1eGetUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"s\n$GetUserDefinedFunctionVersionRequest\x12K\n user_defined_function_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\"\x8a\x01\n%GetUserDefinedFunctionVersionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\xb7\x02\n\'GetUserDefinedFunctionDependentsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12>\n\x18user_defined_function_id\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x15userDefinedFunctionId\x12\x42\n\x1auser_defined_function_name\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\x17userDefinedFunctionName\x12M\n user_defined_function_version_id\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x1cuserDefinedFunctionVersionIdB\x17\n\x15user_defined_function\"\x82\x04\n(GetUserDefinedFunctionDependentsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12T\n%next_page_token_user_defined_function\x18\x02 \x01(\tB\x03\xe0\x41\x01R nextPageTokenUserDefinedFunction\x12\x64\n\x13\x63\x61lculated_channels\x18\x03 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x12\x63\x61lculatedChannels\x12O\n\"next_page_token_calculated_channel\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x1enextPageTokenCalculatedChannel\x12.\n\x05rules\x18\x05 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12\x34\n\x14next_page_token_rule\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x11nextPageTokenRule\"v\n%GetUserDefinedFunctionVersionsRequest\x12M\n!user_defined_function_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x1duserDefinedFunctionVersionIds\"\x8d\x01\n&GetUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\"\xe8\x02\n CreateUserDefinedFunctionRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12#\n\nexpression\x18\x03 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x04 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\'\n\nuser_notes\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\tuserNotes\x88\x01\x01\x12@\n\x08metadata\x18\x06 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\x0e\n\x0c_descriptionB\r\n\x0b_user_notes\"\x86\x01\n!CreateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9b\x01\n\"ValidateUserDefinedFunctionRequest\x12#\n\nexpression\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x02 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\"\xab\x04\n#ValidateUserDefinedFunctionResponse\x12\x84\x01\n\x05\x65rror\x18\x01 \x01(\x0b\x32l.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.ErrorValidatingUserDefinedFunctionResultH\x00R\x05\x65rror\x12\x8a\x01\n\x07success\x18\x02 \x01(\x0b\x32n.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.SuccessValidatingUserDefinedFunctionResultH\x00R\x07success\x1aT\n(ErrorValidatingUserDefinedFunctionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x1a\x8f\x01\n*SuccessValidatingUserDefinedFunctionResult\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunctionB\x08\n\x06result\"\xc7\x01\n UpdateUserDefinedFunctionRequest\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x86\x01\n!UpdateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9d\x01\n\x1b\x43heckUpdatableFieldsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\xb2\x02\n\x1c\x43heckUpdatableFieldsResponse\x12\x46\n\x0e\x61llowed_fields\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\rallowedFields\x12\x84\x01\n\x11\x64isallowed_fields\x18\x02 \x03(\x0b\x32R.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse.DisallowedFieldsEntryB\x03\xe0\x41\x02R\x10\x64isallowedFields\x1a\x43\n\x15\x44isallowedFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n\x1fListUserDefinedFunctionsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xb4\x01\n ListUserDefinedFunctionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\x82\x02\n&ListUserDefinedFunctionVersionsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xbb\x01\n\'ListUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xee\x18\n\x1aUserDefinedFunctionService\x12\xaf\x02\n\x16GetUserDefinedFunction\x12=.sift.user_defined_functions.v1.GetUserDefinedFunctionRequest\x1a>.sift.user_defined_functions.v1.GetUserDefinedFunctionResponse\"\x95\x01\x92\x41Q\x12\x16GetUserDefinedFunction\x1a\x37Retrieve the latest version of a user defined function.\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/user-defined-functions/{user_defined_function_id}\x12\xdc\x02\n\x1dGetUserDefinedFunctionVersion\x12\x44.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionRequest\x1a\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionResponse\"\xad\x01\x92\x41X\x12\x1dGetUserDefinedFunctionVersion\x1a\x37Retrieve a specific version of a user defined function.\x82\xd3\xe4\x93\x02L\x12J/api/v1/user-defined-functions/versions/{user_defined_function_version_id}\x12\xb2\x02\n\x1eGetUserDefinedFunctionVersions\x12\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsRequest\x1a\x46.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsResponse\"\x80\x01\x92\x41N\x12\x1eGetUserDefinedFunctionVersions\x1a,Retrieve versions of user defined functions.\x82\xd3\xe4\x93\x02)\x12\'/api/v1/user-defined-functions/versions\x12\xbf\x02\n GetUserDefinedFunctionDependents\x12G.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsRequest\x1aH.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsResponse\"\x87\x01\x92\x41S\x12 GetUserDefinedFunctionDependents\x1a/Retrieve dependents of a user defined function.\x82\xd3\xe4\x93\x02+\x12)/api/v1/user-defined-functions/dependents\x12\x8a\x02\n\x19\x43reateUserDefinedFunction\x12@.sift.user_defined_functions.v1.CreateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.CreateUserDefinedFunctionResponse\"h\x92\x41<\x12\x19\x43reateUserDefinedFunction\x1a\x1f\x43reate a user defined function.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/user-defined-functions:\x01*\x12\xa9\x02\n\x1bValidateUserDefinedFunction\x12\x42.sift.user_defined_functions.v1.ValidateUserDefinedFunctionRequest\x1a\x43.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse\"\x80\x01\x92\x41K\x12\x1bValidateUserDefinedFunction\x1a,Validates a potential user defined function.\x82\xd3\xe4\x93\x02,\"\'/api/v1/user-defined-functions:validate:\x01*\x12\xa7\x02\n\x19UpdateUserDefinedFunction\x12@.sift.user_defined_functions.v1.UpdateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.UpdateUserDefinedFunctionResponse\"\x84\x01\x92\x41X\x12\x19UpdateUserDefinedFunction\x1a;Update and create a new version of a user defined function.\x82\xd3\xe4\x93\x02#2\x1e/api/v1/user-defined-functions:\x01*\x12\xb5\x02\n\x14\x43heckUpdatableFields\x12;.sift.user_defined_functions.v1.CheckUpdatableFieldsRequest\x1a<.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse\"\xa1\x01\x92\x41g\x12\x14\x43heckUpdatableFields\x1aOCheck if given update paths are allowed to update for the user defined function\x82\xd3\xe4\x93\x02\x31\"//api/v1/user-defined-functions/updatable-fields\x12\xb8\x02\n\x18ListUserDefinedFunctions\x12?.sift.user_defined_functions.v1.ListUserDefinedFunctionsRequest\x1a@.sift.user_defined_functions.v1.ListUserDefinedFunctionsResponse\"\x98\x01\x92\x41o\x12\x18ListUserDefinedFunctions\x1aSRetrieve the latest versions of user defined functions based on an optional filter.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/user-defined-functions\x12\xf1\x02\n\x1fListUserDefinedFunctionVersions\x12\x46.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsRequest\x1aG.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsResponse\"\xbc\x01\x92\x41o\x12\x1fListUserDefinedFunctionVersions\x1aLList versions of a particular user defined function with an optional filter.\x82\xd3\xe4\x93\x02\x44\x12\x42/api/v1/user-defined-functions/{user_defined_function_id}/versionsB\xd1\x01\n\"com.sift.user_defined_functions.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x1cSift.UserDefinedFunctions.V1\xca\x02\x1cSift\\UserDefinedFunctions\\V1\xe2\x02(Sift\\UserDefinedFunctions\\V1\\GPBMetadata\xea\x02\x1eSift::UserDefinedFunctions::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;sift/user_defined_functions/v1/user_defined_functions.proto\x12\x1esift.user_defined_functions.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v2/calculated_channels.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\x1a\x19sift/rules/v1/rules.proto\"~\n\x1dGetUserDefinedFunctionRequest\x12\x44\n\x18user_defined_function_id\x18\x01 \x01(\tB\x0b\xe0\x41\x01\xbaH\x05r\x03\xb0\x01\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\"\x83\x01\n\x1eGetUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"{\n$GetUserDefinedFunctionVersionRequest\x12S\n user_defined_function_version_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x1cuserDefinedFunctionVersionId\"\x8a\x01\n%GetUserDefinedFunctionVersionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\xc7\x02\n\'GetUserDefinedFunctionDependentsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\x46\n\x18user_defined_function_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xbaH\x05r\x03\xb0\x01\x01H\x00R\x15userDefinedFunctionId\x12\x42\n\x1auser_defined_function_name\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\x17userDefinedFunctionName\x12U\n user_defined_function_version_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xbaH\x05r\x03\xb0\x01\x01H\x00R\x1cuserDefinedFunctionVersionIdB\x17\n\x15user_defined_function\"\x82\x04\n(GetUserDefinedFunctionDependentsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12T\n%next_page_token_user_defined_function\x18\x02 \x01(\tB\x03\xe0\x41\x01R nextPageTokenUserDefinedFunction\x12\x64\n\x13\x63\x61lculated_channels\x18\x03 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x12\x63\x61lculatedChannels\x12O\n\"next_page_token_calculated_channel\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x1enextPageTokenCalculatedChannel\x12.\n\x05rules\x18\x05 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12\x34\n\x14next_page_token_rule\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x11nextPageTokenRule\"\x83\x01\n%GetUserDefinedFunctionVersionsRequest\x12Z\n!user_defined_function_version_ids\x18\x01 \x03(\tB\x10\xe0\x41\x02\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x1duserDefinedFunctionVersionIds\"\x8d\x01\n&GetUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\"\xa6\x04\n CreateUserDefinedFunctionRequest\x12\xd4\x01\n\x04name\x18\x01 \x01(\tB\xbf\x01\xe0\x41\x02\xbaH\xb8\x01\xba\x01\xb4\x01\n\x0cinvalid_name\x12\x64name must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\x1a>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12#\n\nexpression\x18\x03 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x04 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\'\n\nuser_notes\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\tuserNotes\x88\x01\x01\x12@\n\x08metadata\x18\x06 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\x0e\n\x0c_descriptionB\r\n\x0b_user_notes\"\x86\x01\n!CreateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9b\x01\n\"ValidateUserDefinedFunctionRequest\x12#\n\nexpression\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x02 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\"\xab\x04\n#ValidateUserDefinedFunctionResponse\x12\x84\x01\n\x05\x65rror\x18\x01 \x01(\x0b\x32l.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.ErrorValidatingUserDefinedFunctionResultH\x00R\x05\x65rror\x12\x8a\x01\n\x07success\x18\x02 \x01(\x0b\x32n.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.SuccessValidatingUserDefinedFunctionResultH\x00R\x07success\x1aT\n(ErrorValidatingUserDefinedFunctionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x1a\x8f\x01\n*SuccessValidatingUserDefinedFunctionResult\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunctionB\x08\n\x06result\"\xc7\x01\n UpdateUserDefinedFunctionRequest\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x86\x01\n!UpdateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9d\x01\n\x1b\x43heckUpdatableFieldsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\xb2\x02\n\x1c\x43heckUpdatableFieldsResponse\x12\x46\n\x0e\x61llowed_fields\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\rallowedFields\x12\x84\x01\n\x11\x64isallowed_fields\x18\x02 \x03(\x0b\x32R.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse.DisallowedFieldsEntryB\x03\xe0\x41\x02R\x10\x64isallowedFields\x1a\x43\n\x15\x44isallowedFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n\x1fListUserDefinedFunctionsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xb4\x01\n ListUserDefinedFunctionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\x82\x02\n&ListUserDefinedFunctionVersionsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xbb\x01\n\'ListUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xee\x18\n\x1aUserDefinedFunctionService\x12\xaf\x02\n\x16GetUserDefinedFunction\x12=.sift.user_defined_functions.v1.GetUserDefinedFunctionRequest\x1a>.sift.user_defined_functions.v1.GetUserDefinedFunctionResponse\"\x95\x01\x92\x41Q\x12\x16GetUserDefinedFunction\x1a\x37Retrieve the latest version of a user defined function.\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/user-defined-functions/{user_defined_function_id}\x12\xdc\x02\n\x1dGetUserDefinedFunctionVersion\x12\x44.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionRequest\x1a\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionResponse\"\xad\x01\x92\x41X\x12\x1dGetUserDefinedFunctionVersion\x1a\x37Retrieve a specific version of a user defined function.\x82\xd3\xe4\x93\x02L\x12J/api/v1/user-defined-functions/versions/{user_defined_function_version_id}\x12\xb2\x02\n\x1eGetUserDefinedFunctionVersions\x12\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsRequest\x1a\x46.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsResponse\"\x80\x01\x92\x41N\x12\x1eGetUserDefinedFunctionVersions\x1a,Retrieve versions of user defined functions.\x82\xd3\xe4\x93\x02)\x12\'/api/v1/user-defined-functions/versions\x12\xbf\x02\n GetUserDefinedFunctionDependents\x12G.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsRequest\x1aH.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsResponse\"\x87\x01\x92\x41S\x12 GetUserDefinedFunctionDependents\x1a/Retrieve dependents of a user defined function.\x82\xd3\xe4\x93\x02+\x12)/api/v1/user-defined-functions/dependents\x12\x8a\x02\n\x19\x43reateUserDefinedFunction\x12@.sift.user_defined_functions.v1.CreateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.CreateUserDefinedFunctionResponse\"h\x92\x41<\x12\x19\x43reateUserDefinedFunction\x1a\x1f\x43reate a user defined function.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/user-defined-functions:\x01*\x12\xa9\x02\n\x1bValidateUserDefinedFunction\x12\x42.sift.user_defined_functions.v1.ValidateUserDefinedFunctionRequest\x1a\x43.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse\"\x80\x01\x92\x41K\x12\x1bValidateUserDefinedFunction\x1a,Validates a potential user defined function.\x82\xd3\xe4\x93\x02,\"\'/api/v1/user-defined-functions:validate:\x01*\x12\xa7\x02\n\x19UpdateUserDefinedFunction\x12@.sift.user_defined_functions.v1.UpdateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.UpdateUserDefinedFunctionResponse\"\x84\x01\x92\x41X\x12\x19UpdateUserDefinedFunction\x1a;Update and create a new version of a user defined function.\x82\xd3\xe4\x93\x02#2\x1e/api/v1/user-defined-functions:\x01*\x12\xb5\x02\n\x14\x43heckUpdatableFields\x12;.sift.user_defined_functions.v1.CheckUpdatableFieldsRequest\x1a<.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse\"\xa1\x01\x92\x41g\x12\x14\x43heckUpdatableFields\x1aOCheck if given update paths are allowed to update for the user defined function\x82\xd3\xe4\x93\x02\x31\"//api/v1/user-defined-functions/updatable-fields\x12\xb8\x02\n\x18ListUserDefinedFunctions\x12?.sift.user_defined_functions.v1.ListUserDefinedFunctionsRequest\x1a@.sift.user_defined_functions.v1.ListUserDefinedFunctionsResponse\"\x98\x01\x92\x41o\x12\x18ListUserDefinedFunctions\x1aSRetrieve the latest versions of user defined functions based on an optional filter.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/user-defined-functions\x12\xf1\x02\n\x1fListUserDefinedFunctionVersions\x12\x46.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsRequest\x1aG.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsResponse\"\xbc\x01\x92\x41o\x12\x1fListUserDefinedFunctionVersions\x1aLList versions of a particular user defined function with an optional filter.\x82\xd3\xe4\x93\x02\x44\x12\x42/api/v1/user-defined-functions/{user_defined_function_id}/versionsB\xd1\x01\n\"com.sift.user_defined_functions.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x1cSift.UserDefinedFunctions.V1\xca\x02\x1cSift\\UserDefinedFunctions\\V1\xe2\x02(Sift\\UserDefinedFunctions\\V1\\GPBMetadata\xea\x02\x1eSift::UserDefinedFunctions::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,23 +32,23 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\"com.sift.user_defined_functions.v1B\031UserDefinedFunctionsProtoP\001\242\002\003SUX\252\002\034Sift.UserDefinedFunctions.V1\312\002\034Sift\\UserDefinedFunctions\\V1\342\002(Sift\\UserDefinedFunctions\\V1\\GPBMetadata\352\002\036Sift::UserDefinedFunctions::V1' _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['user_defined_function_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001' + _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001\272H\005r\003\260\001\001' _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONRESPONSE'].fields_by_name['user_defined_function']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONRESPONSE'].fields_by_name['user_defined_function']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST'].fields_by_name['user_defined_function_version_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002' + _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE'].fields_by_name['user_defined_function']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE'].fields_by_name['user_defined_function']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['page_size']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001' + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001\272H\005r\003\260\001\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_name']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_name']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_version_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\001' + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\001\272H\005r\003\260\001\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['user_defined_functions']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['user_defined_functions']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['next_page_token_user_defined_function']._loaded_options = None @@ -61,11 +62,11 @@ _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['next_page_token_rule']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['next_page_token_rule']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST'].fields_by_name['user_defined_function_version_ids']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST'].fields_by_name['user_defined_function_version_ids']._serialized_options = b'\340A\002' + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST'].fields_by_name['user_defined_function_version_ids']._serialized_options = b'\340A\002\272H\n\222\001\007\"\005r\003\260\001\001' _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE'].fields_by_name['user_defined_functions']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE'].fields_by_name['user_defined_functions']._serialized_options = b'\340A\002' _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._loaded_options = None - _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' + _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002\272H\270\001\272\001\264\001\n\014invalid_name\022dname must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\032>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')' _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['description']._loaded_options = None _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['description']._serialized_options = b'\340A\001' _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['expression']._loaded_options = None @@ -150,52 +151,52 @@ _globals['_USERDEFINEDFUNCTIONSERVICE'].methods_by_name['ListUserDefinedFunctions']._serialized_options = b'\222Ao\022\030ListUserDefinedFunctions\032SRetrieve the latest versions of user defined functions based on an optional filter.\202\323\344\223\002 \022\036/api/v1/user-defined-functions' _globals['_USERDEFINEDFUNCTIONSERVICE'].methods_by_name['ListUserDefinedFunctionVersions']._loaded_options = None _globals['_USERDEFINEDFUNCTIONSERVICE'].methods_by_name['ListUserDefinedFunctionVersions']._serialized_options = b'\222Ao\022\037ListUserDefinedFunctionVersions\032LList versions of a particular user defined function with an optional filter.\202\323\344\223\002D\022B/api/v1/user-defined-functions/{user_defined_function_id}/versions' - _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_start=405 - _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_end=523 - _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=526 - _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=657 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_start=659 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_end=774 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_start=777 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_end=915 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_start=918 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_end=1229 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_start=1232 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_end=1746 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=1748 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=1866 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=1869 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=2010 - _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2013 - _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2373 - _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2376 - _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=2510 - _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2513 - _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2668 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2671 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3226 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=2986 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3070 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=3073 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3216 - _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=3229 - _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=3428 - _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=3431 - _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3565 - _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_start=3568 - _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_end=3725 - _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_start=3728 - _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_end=4034 - _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_start=3967 - _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_end=4034 - _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_start=4037 - _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_end=4201 - _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_start=4204 - _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_end=4384 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=4387 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=4645 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=4648 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=4835 - _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_start=4838 - _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_end=8020 + _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_start=434 + _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_end=560 + _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=563 + _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=694 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_start=696 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_end=819 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_start=822 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_end=960 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_start=963 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_end=1290 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_start=1293 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_end=1807 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=1810 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=1941 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=1944 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=2085 + _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2088 + _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2638 + _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2641 + _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=2775 + _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2778 + _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2933 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2936 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3491 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=3251 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3335 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=3338 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3481 + _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=3494 + _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=3693 + _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=3696 + _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3830 + _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_start=3833 + _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_end=3990 + _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_start=3993 + _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_end=4299 + _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_start=4232 + _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_end=4299 + _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_start=4302 + _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_end=4466 + _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_start=4469 + _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_end=4649 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=4652 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=4910 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=4913 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=5100 + _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_start=5103 + _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_end=8285 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.pyi b/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.pyi index 33a36310f..e13bbdfaa 100644 --- a/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.pyi +++ b/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.pyi @@ -316,7 +316,7 @@ class UpdateUserDefinedFunctionRequest(google.protobuf.message.Message): the current version is returned. If name is changed then only name will be changed. If archive date is changed then only archive date will be changed. To archive user defined function, specify `archived_date` in the `update mask` as well as a non-null value for `archived_date` in the `user_defined_function` object. To unarchive a user defined function, specify `archived_date` in the `update mask` and a `null` value for `archived_date` - in the `user_defined_function` object. + in the `user_defined_function` object. Alternatively, use `is_archived` with a boolean value to archive/unarchive. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -329,10 +329,11 @@ class UpdateUserDefinedFunctionRequest(google.protobuf.message.Message): @property def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: - """The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `expression`, and `function_inputs`. + """The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `expression`, `function_inputs`, and `metadata`. -- `name` can't be updated if the function has ever had any dependencies -- `function_inputs` inputs can't be updated if the function has any dependents (functions or calculated channels with a dependency on this function). -- `expression` can't be updated if the function has dependents and the expression changes the output type. + -- `metadata` updates metadata associated with the function """ def __init__( @@ -445,7 +446,7 @@ class ListUserDefinedFunctionsRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - There are currently no available fields. + Available fields to filter by are `user_defined_function_id`, `name`, `archived_date`, and `is_archived`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). """ order_by: builtins.str @@ -517,7 +518,7 @@ class ListUserDefinedFunctionVersionsRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - There are currently no available fields. + Available fields to filter by are `user_defined_function_id`, `name`, `version`, `archived_date`, and `is_archived`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). """ order_by: builtins.str diff --git a/python/lib/sift/user_groups/v2/user_groups_pb2.py b/python/lib/sift/user_groups/v2/user_groups_pb2.py index 91643e627..3d0b797e4 100644 --- a/python/lib/sift/user_groups/v2/user_groups_pb2.py +++ b/python/lib/sift/user_groups/v2/user_groups_pb2.py @@ -12,6 +12,7 @@ _sym_db = _symbol_database.Default() +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 @@ -19,7 +20,7 @@ from sift.roles.v2 import roles_pb2 as sift_dot_roles_dot_v2_dot_roles__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sift/user_groups/v2/user_groups.proto\x12\x13sift.user_groups.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x19sift/roles/v2/roles.proto\"\xcd\x02\n\tUserGroup\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0buserGroupId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1c\n\x07role_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06roleId\x12\"\n\nis_default\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\tisDefault\x12J\n\tresources\x18\x06 \x01(\x0b\x32\'.sift.user_groups.v2.UserGroup.ResourceB\x03\xe0\x41\x01R\tresources\x12\x1e\n\x08user_ids\x18\x07 \x03(\tB\x03\xe0\x41\x01R\x07userIds\x1aP\n\x08Resource\x12 \n\tasset_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x08\x61ssetIds\x12\"\n\nall_assets\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\tallAssets\"\x9a\x01\n\x15ListUserGroupsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8b\x01\n\x16ListUserGroupsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"9\n\x13GetUserGroupRequest\x12\"\n\ruser_group_id\x18\x01 \x01(\tR\x0buserGroupId\"Z\n\x14GetUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"\\\n\x1bUpdateUserUserGroupsRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12$\n\x0euser_group_ids\x18\x02 \x03(\tR\x0cuserGroupIds\"\x1e\n\x1cUpdateUserUserGroupsResponse\"\\\n\x16\x43reateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"]\n\x17\x43reateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"\x9e\x01\n\x16UpdateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"]\n\x17UpdateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"A\n\x16\x44\x65leteUserGroupRequest\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0buserGroupId\"\x19\n\x17\x44\x65leteUserGroupResponse\"b\n\x19\x41\x64\x64UserToUserGroupRequest\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0buserGroupId\x12\x1c\n\x07user_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06userId\"\x1c\n\x1a\x41\x64\x64UserToUserGroupResponse\"g\n\x1eRemoveUserFromUserGroupRequest\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0buserGroupId\x12\x1c\n\x07user_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06userId\"!\n\x1fRemoveUserFromUserGroupResponse\"A\n\x1dGetUserGroupsForAssetsRequest\x12 \n\tasset_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\"\x96\x01\n\x1eGetUserGroupsForAssetsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12.\n\x05roles\x18\x02 \x03(\x0b\x32\x13.sift.roles.v2.RoleB\x03\xe0\x41\x02R\x05roles2\xe8\x11\n\x10UserGroupService\x12\xee\x01\n\x0eListUserGroups\x12*.sift.user_groups.v2.ListUserGroupsRequest\x1a+.sift.user_groups.v2.ListUserGroupsResponse\"\x82\x01\x92\x41\x64\x12\x0eListUserGroups\x1a/Retrieves user groups using an optional filter.*!UserGroupService_ListUserGroupsV2\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v2/user-groups\x12\xdb\x01\n\x0cGetUserGroup\x12(.sift.user_groups.v2.GetUserGroupRequest\x1a).sift.user_groups.v2.GetUserGroupResponse\"v\x92\x41H\x12\x0cGetUserGroup\x1a\x17Retrieves a user group.*\x1fUserGroupService_GetUserGroupV2\x82\xd3\xe4\x93\x02%\x12#/api/v2/user-groups/{user_group_id}\x12\xdb\x01\n\x0f\x43reateUserGroup\x12+.sift.user_groups.v2.CreateUserGroupRequest\x1a,.sift.user_groups.v2.CreateUserGroupResponse\"m\x92\x41L\x12\x0f\x43reateUserGroup\x1a\x15\x43reates a user group.*\"UserGroupService_CreateUserGroupV2\x82\xd3\xe4\x93\x02\x18\"\x13/api/v2/user-groups:\x01*\x12\xf7\x01\n\x0fUpdateUserGroup\x12+.sift.user_groups.v2.UpdateUserGroupRequest\x1a,.sift.user_groups.v2.UpdateUserGroupResponse\"\x88\x01\x92\x41L\x12\x0fUpdateUserGroup\x1a\x15Updates a user group.*\"UserGroupService_UpdateUserGroupV2\x82\xd3\xe4\x93\x02\x33\x32./api/v2/user-groups/{user_group.user_group_id}:\x01*\x12\xe8\x01\n\x0f\x44\x65leteUserGroup\x12+.sift.user_groups.v2.DeleteUserGroupRequest\x1a,.sift.user_groups.v2.DeleteUserGroupResponse\"z\x92\x41L\x12\x0f\x44\x65leteUserGroup\x1a\x15\x44\x65letes a user group.*\"UserGroupService_DeleteUserGroupV2\x82\xd3\xe4\x93\x02%*#/api/v2/user-groups/{user_group_id}\x12\xf8\x01\n\x12\x41\x64\x64UserToUserGroup\x12..sift.user_groups.v2.AddUserToUserGroupRequest\x1a/.sift.user_groups.v2.AddUserToUserGroupResponse\"\x80\x01\x92\x41Y\x12\x12\x41\x64\x64UserToUserGroup\x1a\x1c\x41\x64\x64s a user to a user group.*%UserGroupService_AddUserToUserGroupV2\x82\xd3\xe4\x93\x02\x1e\"\x1c/api/v2/user-groups:add-user\x12\x99\x02\n\x17RemoveUserFromUserGroup\x12\x33.sift.user_groups.v2.RemoveUserFromUserGroupRequest\x1a\x34.sift.user_groups.v2.RemoveUserFromUserGroupResponse\"\x92\x01\x92\x41h\x12\x17RemoveUserFromUserGroup\x1a!Removes a user from a user group.**UserGroupService_RemoveUserFromUserGroupV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:remove-user\x12\x86\x02\n\x14UpdateUserUserGroups\x12\x30.sift.user_groups.v2.UpdateUserUserGroupsRequest\x1a\x31.sift.user_groups.v2.UpdateUserUserGroupsResponse\"\x88\x01\x92\x41^\x12\x14UpdateUserUserGroups\x1a\x1dUpdates a user\'s user groups.*\'UserGroupService_UpdateUserUserGroupsV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:update-user\x12\xa1\x02\n\x16GetUserGroupsForAssets\x12\x32.sift.user_groups.v2.GetUserGroupsForAssetsRequest\x1a\x33.sift.user_groups.v2.GetUserGroupsForAssetsResponse\"\x9d\x01\x92\x41p\x12\x16GetUserGroupsForAssets\x1a+Retrieves user groups for a list of assets.*)UserGroupService_GetUserGroupsForAssetsV2\x82\xd3\xe4\x93\x02$\x12\"/api/v2/user-groups:get-for-assetsB\xad\x01\n\x17\x63om.sift.user_groups.v2B\x0fUserGroupsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x12Sift.UserGroups.V2\xca\x02\x12Sift\\UserGroups\\V2\xe2\x02\x1eSift\\UserGroups\\V2\\GPBMetadata\xea\x02\x14Sift::UserGroups::V2\x92\x41\x16\x12\x14\n\x12User Group Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sift/user_groups/v2/user_groups.proto\x12\x13sift.user_groups.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x19sift/roles/v2/roles.proto\"\x8d\x03\n\tUserGroup\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0buserGroupId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1c\n\x07role_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06roleId\x12\"\n\nis_default\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\tisDefault\x12J\n\tresources\x18\x06 \x01(\x0b\x32\'.sift.user_groups.v2.UserGroup.ResourceB\x03\xe0\x41\x01R\tresources\x12+\n\x08user_ids\x18\x07 \x03(\tB\x10\xe0\x41\x01\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x07userIds\x12$\n\x0bis_external\x18\x08 \x01(\x08\x42\x03\xe0\x41\x02R\nisExternal\x1a]\n\x08Resource\x12-\n\tasset_ids\x18\x01 \x03(\tB\x10\xe0\x41\x01\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x08\x61ssetIds\x12\"\n\nall_assets\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\tallAssets\"\x9a\x01\n\x15ListUserGroupsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8b\x01\n\x16ListUserGroupsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"C\n\x13GetUserGroupRequest\x12,\n\ruser_group_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\"Z\n\x14GetUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"u\n\x1bUpdateUserUserGroupsRequest\x12!\n\x07user_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x06userId\x12\x33\n\x0euser_group_ids\x18\x02 \x03(\tB\r\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x0cuserGroupIds\"\x1e\n\x1cUpdateUserUserGroupsResponse\"\\\n\x16\x43reateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"]\n\x17\x43reateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"\xec\x02\n\x16UpdateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\x12\x8d\x02\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\xcf\x01\xe0\x41\x02\xbaH\xc8\x01\xba\x01\xc4\x01\n\x17invalid_field_mask_path\x12Rfield mask path must be in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\']\x1aUthis.paths.all(path, path in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\'])R\nupdateMask\"]\n\x17UpdateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"I\n\x16\x44\x65leteUserGroupRequest\x12/\n\ruser_group_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\"\x19\n\x17\x44\x65leteUserGroupResponse\"r\n\x19\x41\x64\x64UserToUserGroupRequest\x12/\n\ruser_group_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\x12$\n\x07user_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x06userId\"\x1c\n\x1a\x41\x64\x64UserToUserGroupResponse\"w\n\x1eRemoveUserFromUserGroupRequest\x12/\n\ruser_group_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\x12$\n\x07user_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x06userId\"!\n\x1fRemoveUserFromUserGroupResponse\"N\n\x1dGetUserGroupsForAssetsRequest\x12-\n\tasset_ids\x18\x01 \x03(\tB\x10\xe0\x41\x02\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x08\x61ssetIds\"\x96\x01\n\x1eGetUserGroupsForAssetsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12.\n\x05roles\x18\x02 \x03(\x0b\x32\x13.sift.roles.v2.RoleB\x03\xe0\x41\x02R\x05roles2\xe8\x11\n\x10UserGroupService\x12\xee\x01\n\x0eListUserGroups\x12*.sift.user_groups.v2.ListUserGroupsRequest\x1a+.sift.user_groups.v2.ListUserGroupsResponse\"\x82\x01\x92\x41\x64\x12\x0eListUserGroups\x1a/Retrieves user groups using an optional filter.*!UserGroupService_ListUserGroupsV2\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v2/user-groups\x12\xdb\x01\n\x0cGetUserGroup\x12(.sift.user_groups.v2.GetUserGroupRequest\x1a).sift.user_groups.v2.GetUserGroupResponse\"v\x92\x41H\x12\x0cGetUserGroup\x1a\x17Retrieves a user group.*\x1fUserGroupService_GetUserGroupV2\x82\xd3\xe4\x93\x02%\x12#/api/v2/user-groups/{user_group_id}\x12\xdb\x01\n\x0f\x43reateUserGroup\x12+.sift.user_groups.v2.CreateUserGroupRequest\x1a,.sift.user_groups.v2.CreateUserGroupResponse\"m\x92\x41L\x12\x0f\x43reateUserGroup\x1a\x15\x43reates a user group.*\"UserGroupService_CreateUserGroupV2\x82\xd3\xe4\x93\x02\x18\"\x13/api/v2/user-groups:\x01*\x12\xf7\x01\n\x0fUpdateUserGroup\x12+.sift.user_groups.v2.UpdateUserGroupRequest\x1a,.sift.user_groups.v2.UpdateUserGroupResponse\"\x88\x01\x92\x41L\x12\x0fUpdateUserGroup\x1a\x15Updates a user group.*\"UserGroupService_UpdateUserGroupV2\x82\xd3\xe4\x93\x02\x33\x32./api/v2/user-groups/{user_group.user_group_id}:\x01*\x12\xe8\x01\n\x0f\x44\x65leteUserGroup\x12+.sift.user_groups.v2.DeleteUserGroupRequest\x1a,.sift.user_groups.v2.DeleteUserGroupResponse\"z\x92\x41L\x12\x0f\x44\x65leteUserGroup\x1a\x15\x44\x65letes a user group.*\"UserGroupService_DeleteUserGroupV2\x82\xd3\xe4\x93\x02%*#/api/v2/user-groups/{user_group_id}\x12\xf8\x01\n\x12\x41\x64\x64UserToUserGroup\x12..sift.user_groups.v2.AddUserToUserGroupRequest\x1a/.sift.user_groups.v2.AddUserToUserGroupResponse\"\x80\x01\x92\x41Y\x12\x12\x41\x64\x64UserToUserGroup\x1a\x1c\x41\x64\x64s a user to a user group.*%UserGroupService_AddUserToUserGroupV2\x82\xd3\xe4\x93\x02\x1e\"\x1c/api/v2/user-groups:add-user\x12\x99\x02\n\x17RemoveUserFromUserGroup\x12\x33.sift.user_groups.v2.RemoveUserFromUserGroupRequest\x1a\x34.sift.user_groups.v2.RemoveUserFromUserGroupResponse\"\x92\x01\x92\x41h\x12\x17RemoveUserFromUserGroup\x1a!Removes a user from a user group.**UserGroupService_RemoveUserFromUserGroupV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:remove-user\x12\x86\x02\n\x14UpdateUserUserGroups\x12\x30.sift.user_groups.v2.UpdateUserUserGroupsRequest\x1a\x31.sift.user_groups.v2.UpdateUserUserGroupsResponse\"\x88\x01\x92\x41^\x12\x14UpdateUserUserGroups\x1a\x1dUpdates a user\'s user groups.*\'UserGroupService_UpdateUserUserGroupsV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:update-user\x12\xa1\x02\n\x16GetUserGroupsForAssets\x12\x32.sift.user_groups.v2.GetUserGroupsForAssetsRequest\x1a\x33.sift.user_groups.v2.GetUserGroupsForAssetsResponse\"\x9d\x01\x92\x41p\x12\x16GetUserGroupsForAssets\x1a+Retrieves user groups for a list of assets.*)UserGroupService_GetUserGroupsForAssetsV2\x82\xd3\xe4\x93\x02$\x12\"/api/v2/user-groups:get-for-assetsB\xad\x01\n\x17\x63om.sift.user_groups.v2B\x0fUserGroupsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x12Sift.UserGroups.V2\xca\x02\x12Sift\\UserGroups\\V2\xe2\x02\x1eSift\\UserGroups\\V2\\GPBMetadata\xea\x02\x14Sift::UserGroups::V2\x92\x41\x16\x12\x14\n\x12User Group Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -28,7 +29,7 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\027com.sift.user_groups.v2B\017UserGroupsProtoP\001\242\002\003SUX\252\002\022Sift.UserGroups.V2\312\002\022Sift\\UserGroups\\V2\342\002\036Sift\\UserGroups\\V2\\GPBMetadata\352\002\024Sift::UserGroups::V2\222A\026\022\024\n\022User Group Service' _globals['_USERGROUP_RESOURCE'].fields_by_name['asset_ids']._loaded_options = None - _globals['_USERGROUP_RESOURCE'].fields_by_name['asset_ids']._serialized_options = b'\340A\001' + _globals['_USERGROUP_RESOURCE'].fields_by_name['asset_ids']._serialized_options = b'\340A\001\272H\n\222\001\007\"\005r\003\260\001\001' _globals['_USERGROUP_RESOURCE'].fields_by_name['all_assets']._loaded_options = None _globals['_USERGROUP_RESOURCE'].fields_by_name['all_assets']._serialized_options = b'\340A\002' _globals['_USERGROUP'].fields_by_name['user_group_id']._loaded_options = None @@ -42,7 +43,9 @@ _globals['_USERGROUP'].fields_by_name['resources']._loaded_options = None _globals['_USERGROUP'].fields_by_name['resources']._serialized_options = b'\340A\001' _globals['_USERGROUP'].fields_by_name['user_ids']._loaded_options = None - _globals['_USERGROUP'].fields_by_name['user_ids']._serialized_options = b'\340A\001' + _globals['_USERGROUP'].fields_by_name['user_ids']._serialized_options = b'\340A\001\272H\n\222\001\007\"\005r\003\260\001\001' + _globals['_USERGROUP'].fields_by_name['is_external']._loaded_options = None + _globals['_USERGROUP'].fields_by_name['is_external']._serialized_options = b'\340A\002' _globals['_LISTUSERGROUPSREQUEST'].fields_by_name['page_size']._loaded_options = None _globals['_LISTUSERGROUPSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' _globals['_LISTUSERGROUPSREQUEST'].fields_by_name['page_token']._loaded_options = None @@ -55,8 +58,14 @@ _globals['_LISTUSERGROUPSRESPONSE'].fields_by_name['user_groups']._serialized_options = b'\340A\002' _globals['_LISTUSERGROUPSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None _globals['_LISTUSERGROUPSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\001' + _globals['_GETUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None + _globals['_GETUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_GETUSERGROUPRESPONSE'].fields_by_name['user_group']._loaded_options = None _globals['_GETUSERGROUPRESPONSE'].fields_by_name['user_group']._serialized_options = b'\340A\002' + _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_id']._loaded_options = None + _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_group_ids']._loaded_options = None + _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_group_ids']._serialized_options = b'\272H\n\222\001\007\"\005r\003\260\001\001' _globals['_CREATEUSERGROUPREQUEST'].fields_by_name['user_group']._loaded_options = None _globals['_CREATEUSERGROUPREQUEST'].fields_by_name['user_group']._serialized_options = b'\340A\002' _globals['_CREATEUSERGROUPRESPONSE'].fields_by_name['user_group']._loaded_options = None @@ -64,21 +73,21 @@ _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['user_group']._loaded_options = None _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['user_group']._serialized_options = b'\340A\002' _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['update_mask']._loaded_options = None - _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002' + _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002\272H\310\001\272\001\304\001\n\027invalid_field_mask_path\022Rfield mask path must be in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\']\032Uthis.paths.all(path, path in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\'])' _globals['_UPDATEUSERGROUPRESPONSE'].fields_by_name['user_group']._loaded_options = None _globals['_UPDATEUSERGROUPRESPONSE'].fields_by_name['user_group']._serialized_options = b'\340A\002' _globals['_DELETEUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None - _globals['_DELETEUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002' + _globals['_DELETEUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None - _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002' + _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_id']._loaded_options = None - _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002' + _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None - _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002' + _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_id']._loaded_options = None - _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002' + _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' _globals['_GETUSERGROUPSFORASSETSREQUEST'].fields_by_name['asset_ids']._loaded_options = None - _globals['_GETUSERGROUPSFORASSETSREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002' + _globals['_GETUSERGROUPSFORASSETSREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002\272H\n\222\001\007\"\005r\003\260\001\001' _globals['_GETUSERGROUPSFORASSETSRESPONSE'].fields_by_name['user_groups']._loaded_options = None _globals['_GETUSERGROUPSFORASSETSRESPONSE'].fields_by_name['user_groups']._serialized_options = b'\340A\002' _globals['_GETUSERGROUPSFORASSETSRESPONSE'].fields_by_name['roles']._loaded_options = None @@ -101,46 +110,46 @@ _globals['_USERGROUPSERVICE'].methods_by_name['UpdateUserUserGroups']._serialized_options = b'\222A^\022\024UpdateUserUserGroups\032\035Updates a user\'s user groups.*\'UserGroupService_UpdateUserUserGroupsV2\202\323\344\223\002!\"\037/api/v2/user-groups:update-user' _globals['_USERGROUPSERVICE'].methods_by_name['GetUserGroupsForAssets']._loaded_options = None _globals['_USERGROUPSERVICE'].methods_by_name['GetUserGroupsForAssets']._serialized_options = b'\222Ap\022\026GetUserGroupsForAssets\032+Retrieves user groups for a list of assets.*)UserGroupService_GetUserGroupsForAssetsV2\202\323\344\223\002$\022\"/api/v2/user-groups:get-for-assets' - _globals['_USERGROUP']._serialized_start=235 - _globals['_USERGROUP']._serialized_end=568 - _globals['_USERGROUP_RESOURCE']._serialized_start=488 - _globals['_USERGROUP_RESOURCE']._serialized_end=568 - _globals['_LISTUSERGROUPSREQUEST']._serialized_start=571 - _globals['_LISTUSERGROUPSREQUEST']._serialized_end=725 - _globals['_LISTUSERGROUPSRESPONSE']._serialized_start=728 - _globals['_LISTUSERGROUPSRESPONSE']._serialized_end=867 - _globals['_GETUSERGROUPREQUEST']._serialized_start=869 - _globals['_GETUSERGROUPREQUEST']._serialized_end=926 - _globals['_GETUSERGROUPRESPONSE']._serialized_start=928 - _globals['_GETUSERGROUPRESPONSE']._serialized_end=1018 - _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_start=1020 - _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_end=1112 - _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_start=1114 - _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_end=1144 - _globals['_CREATEUSERGROUPREQUEST']._serialized_start=1146 - _globals['_CREATEUSERGROUPREQUEST']._serialized_end=1238 - _globals['_CREATEUSERGROUPRESPONSE']._serialized_start=1240 - _globals['_CREATEUSERGROUPRESPONSE']._serialized_end=1333 - _globals['_UPDATEUSERGROUPREQUEST']._serialized_start=1336 - _globals['_UPDATEUSERGROUPREQUEST']._serialized_end=1494 - _globals['_UPDATEUSERGROUPRESPONSE']._serialized_start=1496 - _globals['_UPDATEUSERGROUPRESPONSE']._serialized_end=1589 - _globals['_DELETEUSERGROUPREQUEST']._serialized_start=1591 - _globals['_DELETEUSERGROUPREQUEST']._serialized_end=1656 - _globals['_DELETEUSERGROUPRESPONSE']._serialized_start=1658 - _globals['_DELETEUSERGROUPRESPONSE']._serialized_end=1683 - _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_start=1685 - _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_end=1783 - _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_start=1785 - _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_end=1813 - _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_start=1815 - _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_end=1918 - _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_start=1920 - _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_end=1953 - _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_start=1955 - _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_end=2020 - _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_start=2023 - _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_end=2173 - _globals['_USERGROUPSERVICE']._serialized_start=2176 - _globals['_USERGROUPSERVICE']._serialized_end=4456 + _globals['_USERGROUP']._serialized_start=264 + _globals['_USERGROUP']._serialized_end=661 + _globals['_USERGROUP_RESOURCE']._serialized_start=568 + _globals['_USERGROUP_RESOURCE']._serialized_end=661 + _globals['_LISTUSERGROUPSREQUEST']._serialized_start=664 + _globals['_LISTUSERGROUPSREQUEST']._serialized_end=818 + _globals['_LISTUSERGROUPSRESPONSE']._serialized_start=821 + _globals['_LISTUSERGROUPSRESPONSE']._serialized_end=960 + _globals['_GETUSERGROUPREQUEST']._serialized_start=962 + _globals['_GETUSERGROUPREQUEST']._serialized_end=1029 + _globals['_GETUSERGROUPRESPONSE']._serialized_start=1031 + _globals['_GETUSERGROUPRESPONSE']._serialized_end=1121 + _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_start=1123 + _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_end=1240 + _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_start=1242 + _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_end=1272 + _globals['_CREATEUSERGROUPREQUEST']._serialized_start=1274 + _globals['_CREATEUSERGROUPREQUEST']._serialized_end=1366 + _globals['_CREATEUSERGROUPRESPONSE']._serialized_start=1368 + _globals['_CREATEUSERGROUPRESPONSE']._serialized_end=1461 + _globals['_UPDATEUSERGROUPREQUEST']._serialized_start=1464 + _globals['_UPDATEUSERGROUPREQUEST']._serialized_end=1828 + _globals['_UPDATEUSERGROUPRESPONSE']._serialized_start=1830 + _globals['_UPDATEUSERGROUPRESPONSE']._serialized_end=1923 + _globals['_DELETEUSERGROUPREQUEST']._serialized_start=1925 + _globals['_DELETEUSERGROUPREQUEST']._serialized_end=1998 + _globals['_DELETEUSERGROUPRESPONSE']._serialized_start=2000 + _globals['_DELETEUSERGROUPRESPONSE']._serialized_end=2025 + _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_start=2027 + _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_end=2141 + _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_start=2143 + _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_end=2171 + _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_start=2173 + _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_end=2292 + _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_start=2294 + _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_end=2327 + _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_start=2329 + _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_end=2407 + _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_start=2410 + _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_end=2560 + _globals['_USERGROUPSERVICE']._serialized_start=2563 + _globals['_USERGROUPSERVICE']._serialized_end=4843 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/user_groups/v2/user_groups_pb2.pyi b/python/lib/sift/user_groups/v2/user_groups_pb2.pyi index 003899dd8..972044e9a 100644 --- a/python/lib/sift/user_groups/v2/user_groups_pb2.pyi +++ b/python/lib/sift/user_groups/v2/user_groups_pb2.pyi @@ -41,10 +41,12 @@ class UserGroup(google.protobuf.message.Message): IS_DEFAULT_FIELD_NUMBER: builtins.int RESOURCES_FIELD_NUMBER: builtins.int USER_IDS_FIELD_NUMBER: builtins.int + IS_EXTERNAL_FIELD_NUMBER: builtins.int user_group_id: builtins.str name: builtins.str role_id: builtins.str is_default: builtins.bool + is_external: builtins.bool @property def resources(self) -> global___UserGroup.Resource: ... @property @@ -58,9 +60,10 @@ class UserGroup(google.protobuf.message.Message): is_default: builtins.bool = ..., resources: global___UserGroup.Resource | None = ..., user_ids: collections.abc.Iterable[builtins.str] | None = ..., + is_external: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["resources", b"resources"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["is_default", b"is_default", "name", b"name", "resources", b"resources", "role_id", b"role_id", "user_group_id", b"user_group_id", "user_ids", b"user_ids"]) -> None: ... + def ClearField(self, field_name: typing.Literal["is_default", b"is_default", "is_external", b"is_external", "name", b"name", "resources", b"resources", "role_id", b"role_id", "user_group_id", b"user_group_id", "user_ids", b"user_ids"]) -> None: ... global___UserGroup = UserGroup @@ -92,9 +95,10 @@ class ListUserGroupsRequest(google.protobuf.message.Message): """ order_by: builtins.str """How to order the retrieved user groups. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - Available fields to order_by are: - - created_date - - modified_date + Available fields to order_by are `name`, `created_date`, and `modified_date`. + If left empty, items are ordered by `name` in ascending order (A-Z). + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date desc,modified_date" """ def __init__( self, diff --git a/python/lib/sift/users/v2/users_pb2.py b/python/lib/sift/users/v2/users_pb2.py index b3f3c79ed..dd7db000a 100644 --- a/python/lib/sift/users/v2/users_pb2.py +++ b/python/lib/sift/users/v2/users_pb2.py @@ -18,7 +18,7 @@ from sift.common.type.v1 import user_pb2 as sift_dot_common_dot_type_dot_v1_dot_user__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/users/v2/users.proto\x12\rsift.users.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1esift/common/type/v1/user.proto\"\x7f\n#UpdateUserOrganizationActiveRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x16\n\x06\x61\x63tive\x18\x03 \x01(\x08R\x06\x61\x63tive\"&\n$UpdateUserOrganizationActiveResponse\".\n\x0eGetUserRequest\x12\x1c\n\x07user_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06userId\"@\n\x0fGetUserResponse\x12-\n\x04user\x18\x01 \x01(\x0b\x32\x19.sift.common.type.v1.UserR\x04user\"\xc9\x01\n\x16ListActiveUsersRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"r\n\x17ListActiveUsersResponse\x12/\n\x05users\x18\x01 \x03(\x0b\x32\x19.sift.common.type.v1.UserR\x05users\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\x98\x05\n\x0bUserService\x12\x96\x02\n\x1cUpdateUserOrganizationActive\x12\x32.sift.users.v2.UpdateUserOrganizationActiveRequest\x1a\x33.sift.users.v2.UpdateUserOrganizationActiveResponse\"\x8c\x01\x92\x41`\x12\x1cUpdateUserOrganizationActive\x1a@Used to toggle a user\'s active status within their organization.\x82\xd3\xe4\x93\x02#\"\x1e/api/v2/users/{user_id}/active:\x01*\x12\x8f\x01\n\x07GetUser\x12\x1d.sift.users.v2.GetUserRequest\x1a\x1e.sift.users.v2.GetUserResponse\"E\x92\x41#\x12\x07GetUser\x1a\x18Retrieves a user object.\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v2/users/{user_id}\x12\x9f\x01\n\x0fListActiveUsers\x12%.sift.users.v2.ListActiveUsersRequest\x1a&.sift.users.v2.ListActiveUsersResponse\"=\x92\x41%\x12\x0fListActiveUsers\x1a\x12List active users.\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v2/users\x1a<\x92\x41\x39\x12\x37Service to programmatically interact with user objects.B\x88\x01\n\x11\x63om.sift.users.v2B\nUsersProtoP\x01\xa2\x02\x03SUX\xaa\x02\rSift.Users.V2\xca\x02\rSift\\Users\\V2\xe2\x02\x19Sift\\Users\\V2\\GPBMetadata\xea\x02\x0fSift::Users::V2\x92\x41\x10\x12\x0e\n\x0cUser Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/users/v2/users.proto\x12\rsift.users.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1esift/common/type/v1/user.proto\"\x7f\n#UpdateUserOrganizationActiveRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x16\n\x06\x61\x63tive\x18\x03 \x01(\x08R\x06\x61\x63tive\"&\n$UpdateUserOrganizationActiveResponse\".\n\x0eGetUserRequest\x12\x1c\n\x07user_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06userId\"@\n\x0fGetUserResponse\x12-\n\x04user\x18\x01 \x01(\x0b\x32\x19.sift.common.type.v1.UserR\x04user\"\xc9\x01\n\x16ListActiveUsersRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"r\n\x17ListActiveUsersResponse\x12/\n\x05users\x18\x01 \x03(\x0b\x32\x19.sift.common.type.v1.UserR\x05users\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x95\x01\n\x10ListUsersRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"l\n\x11ListUsersResponse\x12/\n\x05users\x18\x01 \x03(\x0b\x32\x19.sift.common.type.v1.UserR\x05users\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\xb8\x06\n\x0bUserService\x12\x96\x02\n\x1cUpdateUserOrganizationActive\x12\x32.sift.users.v2.UpdateUserOrganizationActiveRequest\x1a\x33.sift.users.v2.UpdateUserOrganizationActiveResponse\"\x8c\x01\x92\x41`\x12\x1cUpdateUserOrganizationActive\x1a@Used to toggle a user\'s active status within their organization.\x82\xd3\xe4\x93\x02#\"\x1e/api/v2/users/{user_id}/active:\x01*\x12\x8f\x01\n\x07GetUser\x12\x1d.sift.users.v2.GetUserRequest\x1a\x1e.sift.users.v2.GetUserResponse\"E\x92\x41#\x12\x07GetUser\x1a\x18Retrieves a user object.\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v2/users/{user_id}\x12\x9f\x01\n\x0fListActiveUsers\x12%.sift.users.v2.ListActiveUsersRequest\x1a&.sift.users.v2.ListActiveUsersResponse\"=\x92\x41%\x12\x0fListActiveUsers\x1a\x12List active users.\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v2/users\x12\x9d\x01\n\tListUsers\x12\x1f.sift.users.v2.ListUsersRequest\x1a .sift.users.v2.ListUsersResponse\"M\x92\x41\x31\x12\tListUsers\x1a\x0bList users.*\x17UserService_ListUsersV2\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v2/users:all\x1a<\x92\x41\x39\x12\x37Service to programmatically interact with user objects.B\x88\x01\n\x11\x63om.sift.users.v2B\nUsersProtoP\x01\xa2\x02\x03SUX\xaa\x02\rSift.Users.V2\xca\x02\rSift\\Users\\V2\xe2\x02\x19Sift\\Users\\V2\\GPBMetadata\xea\x02\x0fSift::Users::V2\x92\x41\x10\x12\x0e\n\x0cUser Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -38,6 +38,14 @@ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['order_by']._loaded_options = None _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_LISTUSERSREQUEST'].fields_by_name['page_size']._loaded_options = None + _globals['_LISTUSERSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' + _globals['_LISTUSERSREQUEST'].fields_by_name['page_token']._loaded_options = None + _globals['_LISTUSERSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001' + _globals['_LISTUSERSREQUEST'].fields_by_name['filter']._loaded_options = None + _globals['_LISTUSERSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001' + _globals['_LISTUSERSREQUEST'].fields_by_name['order_by']._loaded_options = None + _globals['_LISTUSERSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' _globals['_USERSERVICE']._loaded_options = None _globals['_USERSERVICE']._serialized_options = b'\222A9\0227Service to programmatically interact with user objects.' _globals['_USERSERVICE'].methods_by_name['UpdateUserOrganizationActive']._loaded_options = None @@ -46,6 +54,8 @@ _globals['_USERSERVICE'].methods_by_name['GetUser']._serialized_options = b'\222A#\022\007GetUser\032\030Retrieves a user object.\202\323\344\223\002\031\022\027/api/v2/users/{user_id}' _globals['_USERSERVICE'].methods_by_name['ListActiveUsers']._loaded_options = None _globals['_USERSERVICE'].methods_by_name['ListActiveUsers']._serialized_options = b'\222A%\022\017ListActiveUsers\032\022List active users.\202\323\344\223\002\017\022\r/api/v2/users' + _globals['_USERSERVICE'].methods_by_name['ListUsers']._loaded_options = None + _globals['_USERSERVICE'].methods_by_name['ListUsers']._serialized_options = b'\222A1\022\tListUsers\032\013List users.*\027UserService_ListUsersV2\202\323\344\223\002\023\022\021/api/v2/users:all' _globals['_UPDATEUSERORGANIZATIONACTIVEREQUEST']._serialized_start=187 _globals['_UPDATEUSERORGANIZATIONACTIVEREQUEST']._serialized_end=314 _globals['_UPDATEUSERORGANIZATIONACTIVERESPONSE']._serialized_start=316 @@ -58,6 +68,10 @@ _globals['_LISTACTIVEUSERSREQUEST']._serialized_end=672 _globals['_LISTACTIVEUSERSRESPONSE']._serialized_start=674 _globals['_LISTACTIVEUSERSRESPONSE']._serialized_end=788 - _globals['_USERSERVICE']._serialized_start=791 - _globals['_USERSERVICE']._serialized_end=1455 + _globals['_LISTUSERSREQUEST']._serialized_start=791 + _globals['_LISTUSERSREQUEST']._serialized_end=940 + _globals['_LISTUSERSRESPONSE']._serialized_start=942 + _globals['_LISTUSERSRESPONSE']._serialized_end=1050 + _globals['_USERSERVICE']._serialized_start=1053 + _globals['_USERSERVICE']._serialized_end=1877 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/users/v2/users_pb2.pyi b/python/lib/sift/users/v2/users_pb2.pyi index a48264ffc..4d048ee9f 100644 --- a/python/lib/sift/users/v2/users_pb2.pyi +++ b/python/lib/sift/users/v2/users_pb2.pyi @@ -111,9 +111,10 @@ class ListActiveUsersRequest(google.protobuf.message.Message): """Optional. If provided, this will scope down the user search to just those in the organization ID provided.""" order_by: builtins.str """How to order the retrieved users. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". - Available fields to order_by are: - - created_date - - modified_date + Available fields to order_by are `name`, `created_date`, and `modified_date`. + If left empty, items are ordered by `name` in ascending order (A-Z). + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date desc,modified_date" """ def __init__( self, @@ -148,3 +149,69 @@ class ListActiveUsersResponse(google.protobuf.message.Message): def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "users", b"users"]) -> None: ... global___ListActiveUsersResponse = ListActiveUsersResponse + +@typing.final +class ListUsersRequest(google.protobuf.message.Message): + """The request for a call to `UserService_ListUsers` to retrieve users.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of users to return. The service may return fewer than this value. + If unspecified, at most 50 users will be returned. The maximum value is 1000; values above + 1000 will be coerced to 1000. Optional. + """ + page_token: builtins.str + """A page token, received from a previous `ListUsers` call. + Provide this to retrieve the subsequent page. + When paginating, all other parameters provided to `ListUsers` must match + the call that provided the page token. Optional. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Available fields to filter by are `user_id` and `name`. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/users#user). Optional. + """ + order_by: builtins.str + """How to order the retrieved users. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available fields to order_by are: + - created_date + - modified_date + """ + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + filter: builtins.str = ..., + order_by: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListUsersRequest = ListUsersRequest + +@typing.final +class ListUsersResponse(google.protobuf.message.Message): + """The response of a call to `UserService_ListUsersResponse`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + USERS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + @property + def users(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.user_pb2.User]: ... + def __init__( + self, + *, + users: collections.abc.Iterable[sift.common.type.v1.user_pb2.User] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "users", b"users"]) -> None: ... + +global___ListUsersResponse = ListUsersResponse diff --git a/python/lib/sift/users/v2/users_pb2_grpc.py b/python/lib/sift/users/v2/users_pb2_grpc.py index 4a75ce29a..e9065895a 100644 --- a/python/lib/sift/users/v2/users_pb2_grpc.py +++ b/python/lib/sift/users/v2/users_pb2_grpc.py @@ -29,6 +29,11 @@ def __init__(self, channel): request_serializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersRequest.SerializeToString, response_deserializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersResponse.FromString, ) + self.ListUsers = channel.unary_unary( + '/sift.users.v2.UserService/ListUsers', + request_serializer=sift_dot_users_dot_v2_dot_users__pb2.ListUsersRequest.SerializeToString, + response_deserializer=sift_dot_users_dot_v2_dot_users__pb2.ListUsersResponse.FromString, + ) class UserServiceServicer(object): @@ -55,6 +60,13 @@ def ListActiveUsers(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def ListUsers(self, request, context): + """List users. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_UserServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -73,6 +85,11 @@ def add_UserServiceServicer_to_server(servicer, server): request_deserializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersRequest.FromString, response_serializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersResponse.SerializeToString, ), + 'ListUsers': grpc.unary_unary_rpc_method_handler( + servicer.ListUsers, + request_deserializer=sift_dot_users_dot_v2_dot_users__pb2.ListUsersRequest.FromString, + response_serializer=sift_dot_users_dot_v2_dot_users__pb2.ListUsersResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'sift.users.v2.UserService', rpc_method_handlers) @@ -133,3 +150,20 @@ def ListActiveUsers(request, sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListUsers(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.users.v2.UserService/ListUsers', + sift_dot_users_dot_v2_dot_users__pb2.ListUsersRequest.SerializeToString, + sift_dot_users_dot_v2_dot_users__pb2.ListUsersResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/lib/sift/users/v2/users_pb2_grpc.pyi b/python/lib/sift/users/v2/users_pb2_grpc.pyi index f4f5eb28a..b70cc358e 100644 --- a/python/lib/sift/users/v2/users_pb2_grpc.pyi +++ b/python/lib/sift/users/v2/users_pb2_grpc.pyi @@ -37,6 +37,12 @@ class UserServiceStub: ] """List active users.""" + ListUsers: grpc.UnaryUnaryMultiCallable[ + sift.users.v2.users_pb2.ListUsersRequest, + sift.users.v2.users_pb2.ListUsersResponse, + ] + """List users.""" + class UserServiceAsyncStub: UpdateUserOrganizationActive: grpc.aio.UnaryUnaryMultiCallable[ sift.users.v2.users_pb2.UpdateUserOrganizationActiveRequest, @@ -56,6 +62,12 @@ class UserServiceAsyncStub: ] """List active users.""" + ListUsers: grpc.aio.UnaryUnaryMultiCallable[ + sift.users.v2.users_pb2.ListUsersRequest, + sift.users.v2.users_pb2.ListUsersResponse, + ] + """List users.""" + class UserServiceServicer(metaclass=abc.ABCMeta): @abc.abstractmethod def UpdateUserOrganizationActive( @@ -81,4 +93,12 @@ class UserServiceServicer(metaclass=abc.ABCMeta): ) -> typing.Union[sift.users.v2.users_pb2.ListActiveUsersResponse, collections.abc.Awaitable[sift.users.v2.users_pb2.ListActiveUsersResponse]]: """List active users.""" + @abc.abstractmethod + def ListUsers( + self, + request: sift.users.v2.users_pb2.ListUsersRequest, + context: _ServicerContext, + ) -> typing.Union[sift.users.v2.users_pb2.ListUsersResponse, collections.abc.Awaitable[sift.users.v2.users_pb2.ListUsersResponse]]: + """List users.""" + def add_UserServiceServicer_to_server(servicer: UserServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/python/lib/sift/webhooks/__init__.py b/python/lib/sift/webhooks/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/webhooks/v1/__init__.py b/python/lib/sift/webhooks/v1/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/webhooks/v1/webhooks_pb2.py b/python/lib/sift/webhooks/v1/webhooks_pb2.py new file mode 100644 index 000000000..e5eea375f --- /dev/null +++ b/python/lib/sift/webhooks/v1/webhooks_pb2.py @@ -0,0 +1,259 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sift/webhooks/v1/webhooks.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/webhooks/v1/webhooks.proto\x12\x10sift.webhooks.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xff\x05\n\x07Webhook\x12*\n\nwebhook_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\twebhookId\x12\x34\n\x0forganization_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0eorganizationId\x12*\n\ntarget_url\x18\x03 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\ttargetUrl\x12\x1e\n\x04name\x18\x04 \x01(\tB\n\xe0\x41\x02\xbaH\x04r\x02\x10\x01R\x04name\x12\x46\n\nevent_type\x18\x05 \x01(\x0e\x32\".sift.webhooks.v1.WebhookEventTypeB\x03\xe0\x41\x02R\teventType\x12\"\n\x07payload\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12I\n\rarchived_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x61rchivedDate\x88\x01\x01\x12\x38\n\x12\x63reated_by_user_id\x18\n \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0f\x63reatedByUserId\x12:\n\x13modified_by_user_id\x18\x0b \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x10modifiedByUserId\x12K\n\x0chttp_headers\x18\x0c \x03(\x0b\x32#.sift.webhooks.v1.WebhookHttpHeaderB\x03\xe0\x41\x02R\x0bhttpHeaders\x12$\n\x0bis_archived\x18\r \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\n\n\x08_payloadB\x10\n\x0e_archived_date\"\xd5\x05\n\nWebhookLog\x12\x31\n\x0ewebhook_log_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\x0cwebhookLogId\x12*\n\nwebhook_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\twebhookId\x12\x1e\n\x08\x65vent_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07\x65ventId\x12\x34\n\x0forganization_id\x18\x04 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\x0eorganizationId\x12?\n\x06status\x18\x05 \x01(\x0e\x32\".sift.webhooks.v1.WebhookLogStatusB\x03\xe0\x41\x02R\x06status\x12\"\n\x07payload\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12\x35\n\x14retry_attempt_number\x18\x07 \x01(\rB\x03\xe0\x41\x02R\x12retryAttemptNumber\x12+\n\x0c\x65rror_reason\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x65rrorReason\x88\x01\x01\x12<\n\tsent_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08sentDate\x12\x42\n\x0c\x63reated_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x0c \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserIdB\n\n\x08_payloadB\x0f\n\r_error_reason\"\xcc\x02\n\x13WebhookSignatureKey\x12(\n\rsignature_key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0csignatureKey\x12\x1b\n\x06\x61\x63tive\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\x06\x61\x63tive\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\"O\n\x11WebhookHttpHeader\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xc0\x01\x01R\x04name\x12\x19\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x05value\"?\n\x11GetWebhookRequest\x12*\n\nwebhook_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\twebhookId\"N\n\x12GetWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\xc0\x04\n\x14UpdateWebhookRequest\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\x12\xed\x03\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\xaf\x03\xe0\x41\x02\xbaH\xa8\x03\xba\x01\xa4\x03\n\x17invalid_field_mask_path\x12\xc1\x01\x66ield mask path must be in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\']\x1a\xc4\x01this.paths.all(path, path in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\'])R\nupdateMask\"Q\n\x15UpdateWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\xa7\x02\n\x14\x43reateWebhookRequest\x12\x1e\n\x04name\x18\x01 \x01(\tB\n\xe0\x41\x02\xbaH\x04r\x02\x10\x01R\x04name\x12*\n\ntarget_url\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\ttargetUrl\x12\x46\n\nevent_type\x18\x03 \x01(\x0e\x32\".sift.webhooks.v1.WebhookEventTypeB\x03\xe0\x41\x02R\teventType\x12\"\n\x07payload\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12K\n\x0chttp_headers\x18\x05 \x03(\x0b\x32#.sift.webhooks.v1.WebhookHttpHeaderB\x03\xe0\x41\x02R\x0bhttpHeadersB\n\n\x08_payload\"Q\n\x15\x43reateWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\xa0\x01\n\x13ListWebhooksRequest\x12(\n\tpage_size\x18\x01 \x01(\rB\x0b\xe0\x41\x01\xbaH\x05*\x03\x18\xe8\x07R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x7f\n\x14ListWebhooksResponse\x12:\n\x08webhooks\x18\x01 \x03(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x08webhooks\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\"\xc5\x01\n\x12TestWebhookRequest\x12\x1f\n\nwebhook_id\x18\x01 \x01(\tH\x00R\twebhookId\x12\x35\n\x07webhook\x18\x02 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookH\x00R\x07webhook\x12O\n\x0e\x63reate_request\x18\x03 \x01(\x0b\x32&.sift.webhooks.v1.CreateWebhookRequestH\x00R\rcreateRequestB\x06\n\x04\x66orm\"{\n\x13TestWebhookResponse\x12\x31\n\x12http_response_code\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x10httpResponseCode\x12\x31\n\x12http_response_body\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02R\x10httpResponseBody\"\"\n CreateWebhookSignatureKeyRequest\"t\n!CreateWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"M\n\x1dGetWebhookSignatureKeyRequest\x12,\n\x0forganization_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"q\n\x1eGetWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"I\n*ToggleWebhookSignatureKeyActivationRequest\x12\x1b\n\x06\x65nable\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x06\x65nable\"~\n+ToggleWebhookSignatureKeyActivationResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"\"\n RotateWebhookSignatureKeyRequest\"t\n!RotateWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"\xa3\x01\n\x16ListWebhookLogsRequest\x12(\n\tpage_size\x18\x01 \x01(\rB\x0b\xe0\x41\x01\xbaH\x05*\x03\x18\xe8\x07R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"}\n\x17ListWebhookLogsResponse\x12\x35\n\x04logs\x18\x01 \x03(\x0b\x32\x1c.sift.webhooks.v1.WebhookLogB\x03\xe0\x41\x02R\x04logs\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\"\x91\x03\n\x17\x43reateWebhookLogRequest\x12*\n\nwebhook_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\twebhookId\x12&\n\x08\x65vent_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x07\x65ventId\x12\x35\n\x14retry_attempt_number\x18\x03 \x01(\rB\x03\xe0\x41\x02R\x12retryAttemptNumber\x12?\n\x06status\x18\x04 \x01(\x0e\x32\".sift.webhooks.v1.WebhookLogStatusB\x03\xe0\x41\x02R\x06status\x12\"\n\x07payload\x18\x05 \x01(\tB\x03\xe0\x41\x02H\x00R\x07payload\x88\x01\x01\x12+\n\x0c\x65rror_reason\x18\x06 \x01(\tB\x03\xe0\x41\x02H\x01R\x0b\x65rrorReason\x88\x01\x01\x12<\n\tsent_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08sentDateB\n\n\x08_payloadB\x0f\n\r_error_reason\"t\n\x1d\x42\x61tchCreateWebhookLogsRequest\x12S\n\x08requests\x18\x01 \x03(\x0b\x32).sift.webhooks.v1.CreateWebhookLogRequestB\x0c\xe0\x41\x02\xbaH\x06\x92\x01\x03\x10\xe8\x07R\x08requests\" \n\x1e\x42\x61tchCreateWebhookLogsResponse*]\n\x10WebhookEventType\x12\"\n\x1eWEBHOOK_EVENT_TYPE_UNSPECIFIED\x10\x00\x12%\n!WEBHOOK_EVENT_TYPE_RULE_VIOLATION\x10\x01*\x93\x01\n\x10WebhookLogStatus\x12\"\n\x1eWEBHOOK_LOG_STATUS_UNSPECIFIED\x10\x00\x12\x1b\n\x17WEBHOOK_LOG_STATUS_SENT\x10\x01\x12\x1d\n\x19WEBHOOK_LOG_STATUS_FAILED\x10\x02\x12\x1f\n\x1bWEBHOOK_LOG_STATUS_RETRYING\x10\x03\x32\xbb\x19\n\x0eWebhookService\x12\xa8\x01\n\nGetWebhook\x12#.sift.webhooks.v1.GetWebhookRequest\x1a$.sift.webhooks.v1.GetWebhookResponse\"O\x92\x41\'\x12\nGetWebhook\x1a\x19Retrieve a webhook by ID.\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v1/webhooks/{webhook_id}\x12\xa2\x01\n\rCreateWebhook\x12&.sift.webhooks.v1.CreateWebhookRequest\x1a\'.sift.webhooks.v1.CreateWebhookResponse\"@\x92\x41\"\x12\rCreateWebhook\x1a\x11\x43reate a webhook.\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/webhooks:\x01*\x12\xbd\x01\n\rUpdateWebhook\x12&.sift.webhooks.v1.UpdateWebhookRequest\x1a\'.sift.webhooks.v1.UpdateWebhookResponse\"[\x92\x41=\x12\rUpdateWebhook\x1a,Update select fields of an existing webhook.\x82\xd3\xe4\x93\x02\x15\x32\x10/api/v1/webhooks:\x01*\x12\xbc\x01\n\x0cListWebhooks\x12%.sift.webhooks.v1.ListWebhooksRequest\x1a&.sift.webhooks.v1.ListWebhooksResponse\"]\x92\x41\x42\x12\x0cListWebhooks\x1a\x32Retrieve and optionally filter a list of webhooks.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/webhooks\x12\xc2\x02\n\x0bTestWebhook\x12$.sift.webhooks.v1.TestWebhookRequest\x1a%.sift.webhooks.v1.TestWebhookResponse\"\xe5\x01\x92\x41\xc1\x01\x12\x0bTestWebhook\x1a\xb1\x01Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook with the provided parameters and forward back the response from the target.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/webhooks:test:\x01*\x12\x8a\x05\n\x19\x43reateWebhookSignatureKey\x12\x32.sift.webhooks.v1.CreateWebhookSignatureKeyRequest\x1a\x33.sift.webhooks.v1.CreateWebhookSignatureKeyResponse\"\x83\x04\x92\x41\xd6\x03\x12!CreateOrUpdateWebhookSignatureKey\x1a\xb0\x03\x43reate a webhook signature key and set its activation state. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256.The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then this will simply return it.See `WebhookService_RotateWebhookSignatureKey` to rotate the key.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/webhooks/signature-key:\x01*\x12\xa4\x02\n\x16GetWebhookSignatureKey\x12/.sift.webhooks.v1.GetWebhookSignatureKeyRequest\x1a\x30.sift.webhooks.v1.GetWebhookSignatureKeyResponse\"\xa6\x01\x92\x41}\x12\x16GetWebhookSignatureKey\x1a\x63Retrieve the current webhook signature key. Will return a not found error if one doesn\'t yet exist.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/webhooks/signature-key\x12\xff\x02\n#ToggleWebhookSignatureKeyActivation\x12<.sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest\x1a=.sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse\"\xda\x01\x92\x41\xad\x01\x12#ToggleWebhookSignatureKeyActivation\x1a\x85\x01Set the activation state of the organization\'s current webhook signature key. Will return a not found error if one doesn\'t yet exist.\x82\xd3\xe4\x93\x02#2\x1e/api/v1/webhooks/signature-key:\x01*\x12\xf3\x02\n\x19RotateWebhookSignatureKey\x12\x32.sift.webhooks.v1.RotateWebhookSignatureKeyRequest\x1a\x33.sift.webhooks.v1.RotateWebhookSignatureKeyResponse\"\xec\x01\x92\x41\xbf\x01\x12#ToggleWebhookSignatureKeyActivation\x1a\x97\x01Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.\x82\xd3\xe4\x93\x02#\x1a\x1e/api/v1/webhooks/signature-key:\x01*\x12\x94\x02\n\x16\x42\x61tchCreateWebhookLogs\x12/.sift.webhooks.v1.BatchCreateWebhookLogsRequest\x1a\x30.sift.webhooks.v1.BatchCreateWebhookLogsResponse\"\x96\x01\x92\x41\x66\x12\x16\x42\x61tchCreateWebhookLogs\x1aLCreate a batch of webhook logs. Users should not have to call this directly.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/webhooks/logs:batch-create:\x01*\x12\xd1\x01\n\x0fListWebhookLogs\x12(.sift.webhooks.v1.ListWebhookLogsRequest\x1a).sift.webhooks.v1.ListWebhookLogsResponse\"i\x92\x41I\x12\x0fListWebhookLogs\x1a\x36Retrieve and optionally filter a list of webhook logs.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/webhooks/logsB\x87\x01\n\x14\x63om.sift.webhooks.v1B\rWebhooksProtoP\x01\xa2\x02\x03SWX\xaa\x02\x10Sift.Webhooks.V1\xca\x02\x10Sift\\Webhooks\\V1\xe2\x02\x1cSift\\Webhooks\\V1\\GPBMetadata\xea\x02\x12Sift::Webhooks::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.webhooks.v1.webhooks_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.sift.webhooks.v1B\rWebhooksProtoP\001\242\002\003SWX\252\002\020Sift.Webhooks.V1\312\002\020Sift\\Webhooks\\V1\342\002\034Sift\\Webhooks\\V1\\GPBMetadata\352\002\022Sift::Webhooks::V1' + _globals['_WEBHOOK'].fields_by_name['webhook_id']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['organization_id']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['organization_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['target_url']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['target_url']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOK'].fields_by_name['name']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['name']._serialized_options = b'\340A\002\272H\004r\002\020\001' + _globals['_WEBHOOK'].fields_by_name['event_type']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['event_type']._serialized_options = b'\340A\002' + _globals['_WEBHOOK'].fields_by_name['payload']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['payload']._serialized_options = b'\340A\001' + _globals['_WEBHOOK'].fields_by_name['created_date']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['created_date']._serialized_options = b'\340A\002' + _globals['_WEBHOOK'].fields_by_name['modified_date']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['modified_date']._serialized_options = b'\340A\002' + _globals['_WEBHOOK'].fields_by_name['archived_date']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['archived_date']._serialized_options = b'\340A\001' + _globals['_WEBHOOK'].fields_by_name['created_by_user_id']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['modified_by_user_id']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['http_headers']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['http_headers']._serialized_options = b'\340A\002' + _globals['_WEBHOOK'].fields_by_name['is_archived']._loaded_options = None + _globals['_WEBHOOK'].fields_by_name['is_archived']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['webhook_log_id']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['webhook_log_id']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOKLOG'].fields_by_name['webhook_id']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOKLOG'].fields_by_name['event_id']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['event_id']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['organization_id']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['organization_id']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOKLOG'].fields_by_name['status']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['status']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['payload']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['payload']._serialized_options = b'\340A\001' + _globals['_WEBHOOKLOG'].fields_by_name['retry_attempt_number']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['retry_attempt_number']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['error_reason']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['error_reason']._serialized_options = b'\340A\001' + _globals['_WEBHOOKLOG'].fields_by_name['sent_date']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['sent_date']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['created_date']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['created_date']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['modified_date']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['modified_date']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['created_by_user_id']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\002' + _globals['_WEBHOOKLOG'].fields_by_name['modified_by_user_id']._loaded_options = None + _globals['_WEBHOOKLOG'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002' + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['signature_key']._loaded_options = None + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['signature_key']._serialized_options = b'\340A\002' + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['active']._loaded_options = None + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['active']._serialized_options = b'\340A\002' + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['created_date']._loaded_options = None + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['created_date']._serialized_options = b'\340A\002' + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['modified_date']._loaded_options = None + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['modified_date']._serialized_options = b'\340A\002' + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['created_by_user_id']._loaded_options = None + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\002' + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['modified_by_user_id']._loaded_options = None + _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002' + _globals['_WEBHOOKHTTPHEADER'].fields_by_name['name']._loaded_options = None + _globals['_WEBHOOKHTTPHEADER'].fields_by_name['name']._serialized_options = b'\340A\002\272H\005r\003\300\001\001' + _globals['_WEBHOOKHTTPHEADER'].fields_by_name['value']._loaded_options = None + _globals['_WEBHOOKHTTPHEADER'].fields_by_name['value']._serialized_options = b'\340A\002' + _globals['_GETWEBHOOKREQUEST'].fields_by_name['webhook_id']._loaded_options = None + _globals['_GETWEBHOOKREQUEST'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_GETWEBHOOKRESPONSE'].fields_by_name['webhook']._loaded_options = None + _globals['_GETWEBHOOKRESPONSE'].fields_by_name['webhook']._serialized_options = b'\340A\002' + _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['webhook']._loaded_options = None + _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['webhook']._serialized_options = b'\340A\002' + _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['update_mask']._loaded_options = None + _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002\272H\250\003\272\001\244\003\n\027invalid_field_mask_path\022\301\001field mask path must be in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\']\032\304\001this.paths.all(path, path in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\'])' + _globals['_UPDATEWEBHOOKRESPONSE'].fields_by_name['webhook']._loaded_options = None + _globals['_UPDATEWEBHOOKRESPONSE'].fields_by_name['webhook']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['name']._loaded_options = None + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002\272H\004r\002\020\001' + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['target_url']._loaded_options = None + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['target_url']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['event_type']._loaded_options = None + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['event_type']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['payload']._loaded_options = None + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['payload']._serialized_options = b'\340A\001' + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['http_headers']._loaded_options = None + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['http_headers']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKRESPONSE'].fields_by_name['webhook']._loaded_options = None + _globals['_CREATEWEBHOOKRESPONSE'].fields_by_name['webhook']._serialized_options = b'\340A\002' + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_size']._loaded_options = None + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001\272H\005*\003\030\350\007' + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_token']._loaded_options = None + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001' + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['filter']._loaded_options = None + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001' + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['order_by']._loaded_options = None + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_LISTWEBHOOKSRESPONSE'].fields_by_name['webhooks']._loaded_options = None + _globals['_LISTWEBHOOKSRESPONSE'].fields_by_name['webhooks']._serialized_options = b'\340A\002' + _globals['_LISTWEBHOOKSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None + _globals['_LISTWEBHOOKSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\002' + _globals['_TESTWEBHOOKRESPONSE'].fields_by_name['http_response_code']._loaded_options = None + _globals['_TESTWEBHOOKRESPONSE'].fields_by_name['http_response_code']._serialized_options = b'\340A\002' + _globals['_TESTWEBHOOKRESPONSE'].fields_by_name['http_response_body']._loaded_options = None + _globals['_TESTWEBHOOKRESPONSE'].fields_by_name['http_response_body']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._loaded_options = None + _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._serialized_options = b'\340A\002' + _globals['_GETWEBHOOKSIGNATUREKEYREQUEST'].fields_by_name['organization_id']._loaded_options = None + _globals['_GETWEBHOOKSIGNATUREKEYREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' + _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._loaded_options = None + _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._serialized_options = b'\340A\002' + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST'].fields_by_name['enable']._loaded_options = None + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST'].fields_by_name['enable']._serialized_options = b'\340A\002' + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE'].fields_by_name['signature_key']._loaded_options = None + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE'].fields_by_name['signature_key']._serialized_options = b'\340A\002' + _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._loaded_options = None + _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._serialized_options = b'\340A\002' + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_size']._loaded_options = None + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001\272H\005*\003\030\350\007' + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_token']._loaded_options = None + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001' + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['filter']._loaded_options = None + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001' + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['order_by']._loaded_options = None + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_LISTWEBHOOKLOGSRESPONSE'].fields_by_name['logs']._loaded_options = None + _globals['_LISTWEBHOOKLOGSRESPONSE'].fields_by_name['logs']._serialized_options = b'\340A\002' + _globals['_LISTWEBHOOKLOGSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None + _globals['_LISTWEBHOOKLOGSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['webhook_id']._loaded_options = None + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['event_id']._loaded_options = None + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['event_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['retry_attempt_number']._loaded_options = None + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['retry_attempt_number']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['status']._loaded_options = None + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['status']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['payload']._loaded_options = None + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['payload']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['error_reason']._loaded_options = None + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['error_reason']._serialized_options = b'\340A\002' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['sent_date']._loaded_options = None + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['sent_date']._serialized_options = b'\340A\002' + _globals['_BATCHCREATEWEBHOOKLOGSREQUEST'].fields_by_name['requests']._loaded_options = None + _globals['_BATCHCREATEWEBHOOKLOGSREQUEST'].fields_by_name['requests']._serialized_options = b'\340A\002\272H\006\222\001\003\020\350\007' + _globals['_WEBHOOKSERVICE'].methods_by_name['GetWebhook']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['GetWebhook']._serialized_options = b'\222A\'\022\nGetWebhook\032\031Retrieve a webhook by ID.\202\323\344\223\002\037\022\035/api/v1/webhooks/{webhook_id}' + _globals['_WEBHOOKSERVICE'].methods_by_name['CreateWebhook']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['CreateWebhook']._serialized_options = b'\222A\"\022\rCreateWebhook\032\021Create a webhook.\202\323\344\223\002\025\"\020/api/v1/webhooks:\001*' + _globals['_WEBHOOKSERVICE'].methods_by_name['UpdateWebhook']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['UpdateWebhook']._serialized_options = b'\222A=\022\rUpdateWebhook\032,Update select fields of an existing webhook.\202\323\344\223\002\0252\020/api/v1/webhooks:\001*' + _globals['_WEBHOOKSERVICE'].methods_by_name['ListWebhooks']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['ListWebhooks']._serialized_options = b'\222AB\022\014ListWebhooks\0322Retrieve and optionally filter a list of webhooks.\202\323\344\223\002\022\022\020/api/v1/webhooks' + _globals['_WEBHOOKSERVICE'].methods_by_name['TestWebhook']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['TestWebhook']._serialized_options = b'\222A\301\001\022\013TestWebhook\032\261\001Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook with the provided parameters and forward back the response from the target.\202\323\344\223\002\032\"\025/api/v1/webhooks:test:\001*' + _globals['_WEBHOOKSERVICE'].methods_by_name['CreateWebhookSignatureKey']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['CreateWebhookSignatureKey']._serialized_options = b'\222A\326\003\022!CreateOrUpdateWebhookSignatureKey\032\260\003Create a webhook signature key and set its activation state. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256.The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then this will simply return it.See `WebhookService_RotateWebhookSignatureKey` to rotate the key.\202\323\344\223\002#\"\036/api/v1/webhooks/signature-key:\001*' + _globals['_WEBHOOKSERVICE'].methods_by_name['GetWebhookSignatureKey']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['GetWebhookSignatureKey']._serialized_options = b'\222A}\022\026GetWebhookSignatureKey\032cRetrieve the current webhook signature key. Will return a not found error if one doesn\'t yet exist.\202\323\344\223\002 \022\036/api/v1/webhooks/signature-key' + _globals['_WEBHOOKSERVICE'].methods_by_name['ToggleWebhookSignatureKeyActivation']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['ToggleWebhookSignatureKeyActivation']._serialized_options = b'\222A\255\001\022#ToggleWebhookSignatureKeyActivation\032\205\001Set the activation state of the organization\'s current webhook signature key. Will return a not found error if one doesn\'t yet exist.\202\323\344\223\002#2\036/api/v1/webhooks/signature-key:\001*' + _globals['_WEBHOOKSERVICE'].methods_by_name['RotateWebhookSignatureKey']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['RotateWebhookSignatureKey']._serialized_options = b'\222A\277\001\022#ToggleWebhookSignatureKeyActivation\032\227\001Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.\202\323\344\223\002#\032\036/api/v1/webhooks/signature-key:\001*' + _globals['_WEBHOOKSERVICE'].methods_by_name['BatchCreateWebhookLogs']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['BatchCreateWebhookLogs']._serialized_options = b'\222Af\022\026BatchCreateWebhookLogs\032LCreate a batch of webhook logs. Users should not have to call this directly.\202\323\344\223\002\'\"\"/api/v1/webhooks/logs:batch-create:\001*' + _globals['_WEBHOOKSERVICE'].methods_by_name['ListWebhookLogs']._loaded_options = None + _globals['_WEBHOOKSERVICE'].methods_by_name['ListWebhookLogs']._serialized_options = b'\222AI\022\017ListWebhookLogs\0326Retrieve and optionally filter a list of webhook logs.\202\323\344\223\002\027\022\025/api/v1/webhooks/logs' + _globals['_WEBHOOKEVENTTYPE']._serialized_start=5533 + _globals['_WEBHOOKEVENTTYPE']._serialized_end=5626 + _globals['_WEBHOOKLOGSTATUS']._serialized_start=5629 + _globals['_WEBHOOKLOGSTATUS']._serialized_end=5776 + _globals['_WEBHOOK']._serialized_start=261 + _globals['_WEBHOOK']._serialized_end=1028 + _globals['_WEBHOOKLOG']._serialized_start=1031 + _globals['_WEBHOOKLOG']._serialized_end=1756 + _globals['_WEBHOOKSIGNATUREKEY']._serialized_start=1759 + _globals['_WEBHOOKSIGNATUREKEY']._serialized_end=2091 + _globals['_WEBHOOKHTTPHEADER']._serialized_start=2093 + _globals['_WEBHOOKHTTPHEADER']._serialized_end=2172 + _globals['_GETWEBHOOKREQUEST']._serialized_start=2174 + _globals['_GETWEBHOOKREQUEST']._serialized_end=2237 + _globals['_GETWEBHOOKRESPONSE']._serialized_start=2239 + _globals['_GETWEBHOOKRESPONSE']._serialized_end=2317 + _globals['_UPDATEWEBHOOKREQUEST']._serialized_start=2320 + _globals['_UPDATEWEBHOOKREQUEST']._serialized_end=2896 + _globals['_UPDATEWEBHOOKRESPONSE']._serialized_start=2898 + _globals['_UPDATEWEBHOOKRESPONSE']._serialized_end=2979 + _globals['_CREATEWEBHOOKREQUEST']._serialized_start=2982 + _globals['_CREATEWEBHOOKREQUEST']._serialized_end=3277 + _globals['_CREATEWEBHOOKRESPONSE']._serialized_start=3279 + _globals['_CREATEWEBHOOKRESPONSE']._serialized_end=3360 + _globals['_LISTWEBHOOKSREQUEST']._serialized_start=3363 + _globals['_LISTWEBHOOKSREQUEST']._serialized_end=3523 + _globals['_LISTWEBHOOKSRESPONSE']._serialized_start=3525 + _globals['_LISTWEBHOOKSRESPONSE']._serialized_end=3652 + _globals['_TESTWEBHOOKREQUEST']._serialized_start=3655 + _globals['_TESTWEBHOOKREQUEST']._serialized_end=3852 + _globals['_TESTWEBHOOKRESPONSE']._serialized_start=3854 + _globals['_TESTWEBHOOKRESPONSE']._serialized_end=3977 + _globals['_CREATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=3979 + _globals['_CREATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=4013 + _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=4015 + _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=4131 + _globals['_GETWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=4133 + _globals['_GETWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=4210 + _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=4212 + _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=4325 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST']._serialized_start=4327 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST']._serialized_end=4400 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE']._serialized_start=4402 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE']._serialized_end=4528 + _globals['_ROTATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=4530 + _globals['_ROTATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=4564 + _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=4566 + _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=4682 + _globals['_LISTWEBHOOKLOGSREQUEST']._serialized_start=4685 + _globals['_LISTWEBHOOKLOGSREQUEST']._serialized_end=4848 + _globals['_LISTWEBHOOKLOGSRESPONSE']._serialized_start=4850 + _globals['_LISTWEBHOOKLOGSRESPONSE']._serialized_end=4975 + _globals['_CREATEWEBHOOKLOGREQUEST']._serialized_start=4978 + _globals['_CREATEWEBHOOKLOGREQUEST']._serialized_end=5379 + _globals['_BATCHCREATEWEBHOOKLOGSREQUEST']._serialized_start=5381 + _globals['_BATCHCREATEWEBHOOKLOGSREQUEST']._serialized_end=5497 + _globals['_BATCHCREATEWEBHOOKLOGSRESPONSE']._serialized_start=5499 + _globals['_BATCHCREATEWEBHOOKLOGSRESPONSE']._serialized_end=5531 + _globals['_WEBHOOKSERVICE']._serialized_start=5779 + _globals['_WEBHOOKSERVICE']._serialized_end=9038 +# @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/webhooks/v1/webhooks_pb2.pyi b/python/lib/sift/webhooks/v1/webhooks_pb2.pyi new file mode 100644 index 000000000..2db1ee87e --- /dev/null +++ b/python/lib/sift/webhooks/v1/webhooks_pb2.pyi @@ -0,0 +1,767 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.field_mask_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _WebhookEventType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _WebhookEventTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WebhookEventType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + WEBHOOK_EVENT_TYPE_UNSPECIFIED: _WebhookEventType.ValueType # 0 + WEBHOOK_EVENT_TYPE_RULE_VIOLATION: _WebhookEventType.ValueType # 1 + +class WebhookEventType(_WebhookEventType, metaclass=_WebhookEventTypeEnumTypeWrapper): ... + +WEBHOOK_EVENT_TYPE_UNSPECIFIED: WebhookEventType.ValueType # 0 +WEBHOOK_EVENT_TYPE_RULE_VIOLATION: WebhookEventType.ValueType # 1 +global___WebhookEventType = WebhookEventType + +class _WebhookLogStatus: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _WebhookLogStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WebhookLogStatus.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + WEBHOOK_LOG_STATUS_UNSPECIFIED: _WebhookLogStatus.ValueType # 0 + WEBHOOK_LOG_STATUS_SENT: _WebhookLogStatus.ValueType # 1 + WEBHOOK_LOG_STATUS_FAILED: _WebhookLogStatus.ValueType # 2 + WEBHOOK_LOG_STATUS_RETRYING: _WebhookLogStatus.ValueType # 3 + +class WebhookLogStatus(_WebhookLogStatus, metaclass=_WebhookLogStatusEnumTypeWrapper): ... + +WEBHOOK_LOG_STATUS_UNSPECIFIED: WebhookLogStatus.ValueType # 0 +WEBHOOK_LOG_STATUS_SENT: WebhookLogStatus.ValueType # 1 +WEBHOOK_LOG_STATUS_FAILED: WebhookLogStatus.ValueType # 2 +WEBHOOK_LOG_STATUS_RETRYING: WebhookLogStatus.ValueType # 3 +global___WebhookLogStatus = WebhookLogStatus + +@typing.final +class Webhook(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_ID_FIELD_NUMBER: builtins.int + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + TARGET_URL_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + EVENT_TYPE_FIELD_NUMBER: builtins.int + PAYLOAD_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + MODIFIED_DATE_FIELD_NUMBER: builtins.int + ARCHIVED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int + HTTP_HEADERS_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int + webhook_id: builtins.str + organization_id: builtins.str + target_url: builtins.str + name: builtins.str + event_type: global___WebhookEventType.ValueType + payload: builtins.str + created_by_user_id: builtins.str + modified_by_user_id: builtins.str + is_archived: builtins.bool + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def http_headers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebhookHttpHeader]: ... + def __init__( + self, + *, + webhook_id: builtins.str = ..., + organization_id: builtins.str = ..., + target_url: builtins.str = ..., + name: builtins.str = ..., + event_type: global___WebhookEventType.ValueType = ..., + payload: builtins.str | None = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + modified_by_user_id: builtins.str = ..., + http_headers: collections.abc.Iterable[global___WebhookHttpHeader] | None = ..., + is_archived: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_payload", b"_payload", "archived_date", b"archived_date", "created_date", b"created_date", "modified_date", b"modified_date", "payload", b"payload"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_payload", b"_payload", "archived_date", b"archived_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "event_type", b"event_type", "http_headers", b"http_headers", "is_archived", b"is_archived", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "payload", b"payload", "target_url", b"target_url", "webhook_id", b"webhook_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_payload", b"_payload"]) -> typing.Literal["payload"] | None: ... + +global___Webhook = Webhook + +@typing.final +class WebhookLog(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_LOG_ID_FIELD_NUMBER: builtins.int + WEBHOOK_ID_FIELD_NUMBER: builtins.int + EVENT_ID_FIELD_NUMBER: builtins.int + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + PAYLOAD_FIELD_NUMBER: builtins.int + RETRY_ATTEMPT_NUMBER_FIELD_NUMBER: builtins.int + ERROR_REASON_FIELD_NUMBER: builtins.int + SENT_DATE_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + MODIFIED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int + webhook_log_id: builtins.str + webhook_id: builtins.str + event_id: builtins.str + organization_id: builtins.str + status: global___WebhookLogStatus.ValueType + payload: builtins.str + retry_attempt_number: builtins.int + error_reason: builtins.str + created_by_user_id: builtins.str + modified_by_user_id: builtins.str + @property + def sent_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + webhook_log_id: builtins.str = ..., + webhook_id: builtins.str = ..., + event_id: builtins.str = ..., + organization_id: builtins.str = ..., + status: global___WebhookLogStatus.ValueType = ..., + payload: builtins.str | None = ..., + retry_attempt_number: builtins.int = ..., + error_reason: builtins.str | None = ..., + sent_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + modified_by_user_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_error_reason", b"_error_reason", "_payload", b"_payload", "created_date", b"created_date", "error_reason", b"error_reason", "modified_date", b"modified_date", "payload", b"payload", "sent_date", b"sent_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_error_reason", b"_error_reason", "_payload", b"_payload", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "error_reason", b"error_reason", "event_id", b"event_id", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "organization_id", b"organization_id", "payload", b"payload", "retry_attempt_number", b"retry_attempt_number", "sent_date", b"sent_date", "status", b"status", "webhook_id", b"webhook_id", "webhook_log_id", b"webhook_log_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_error_reason", b"_error_reason"]) -> typing.Literal["error_reason"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_payload", b"_payload"]) -> typing.Literal["payload"] | None: ... + +global___WebhookLog = WebhookLog + +@typing.final +class WebhookSignatureKey(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SIGNATURE_KEY_FIELD_NUMBER: builtins.int + ACTIVE_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + MODIFIED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int + signature_key: builtins.str + active: builtins.bool + created_by_user_id: builtins.str + modified_by_user_id: builtins.str + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + signature_key: builtins.str = ..., + active: builtins.bool = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + modified_by_user_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["active", b"active", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "signature_key", b"signature_key"]) -> None: ... + +global___WebhookSignatureKey = WebhookSignatureKey + +@typing.final +class WebhookHttpHeader(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + name: builtins.str + value: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["name", b"name", "value", b"value"]) -> None: ... + +global___WebhookHttpHeader = WebhookHttpHeader + +@typing.final +class GetWebhookRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_GetWebhook` to retrieve a webhook.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_ID_FIELD_NUMBER: builtins.int + webhook_id: builtins.str + def __init__( + self, + *, + webhook_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["webhook_id", b"webhook_id"]) -> None: ... + +global___GetWebhookRequest = GetWebhookRequest + +@typing.final +class GetWebhookResponse(google.protobuf.message.Message): + """The response of a call to `WebhookService_GetWebhook`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_FIELD_NUMBER: builtins.int + @property + def webhook(self) -> global___Webhook: ... + def __init__( + self, + *, + webhook: global___Webhook | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["webhook", b"webhook"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["webhook", b"webhook"]) -> None: ... + +global___GetWebhookResponse = GetWebhookResponse + +@typing.final +class UpdateWebhookRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_UpdateWebhook` to update a webhook.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_FIELD_NUMBER: builtins.int + UPDATE_MASK_FIELD_NUMBER: builtins.int + @property + def webhook(self) -> global___Webhook: + """The webhook to update. The webhook's `webhook_id` field is used to identify + the webhook to update and is required. + """ + + @property + def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: + """The list of fields to be updated. The fields available to be updated are + 'target_url', 'name', 'event_type', 'payload', 'http_headers', 'archived_date', 'is_archived'. + """ + + def __init__( + self, + *, + webhook: global___Webhook | None = ..., + update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["update_mask", b"update_mask", "webhook", b"webhook"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["update_mask", b"update_mask", "webhook", b"webhook"]) -> None: ... + +global___UpdateWebhookRequest = UpdateWebhookRequest + +@typing.final +class UpdateWebhookResponse(google.protobuf.message.Message): + """The response of a call to `WebhookService_UpdateWebhook`. To archive a webhook, specify `archived_date` + in the `update mask` as well as a non-null value for `archived_date` in the `webhook` object. + To unarchive a webhook, specify `archived_date` in the `update mask` and a `null` value for + `archived_date` in the `webhook` object. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_FIELD_NUMBER: builtins.int + @property + def webhook(self) -> global___Webhook: ... + def __init__( + self, + *, + webhook: global___Webhook | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["webhook", b"webhook"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["webhook", b"webhook"]) -> None: ... + +global___UpdateWebhookResponse = UpdateWebhookResponse + +@typing.final +class CreateWebhookRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_CreateWebhook` to create a webhook.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + TARGET_URL_FIELD_NUMBER: builtins.int + EVENT_TYPE_FIELD_NUMBER: builtins.int + PAYLOAD_FIELD_NUMBER: builtins.int + HTTP_HEADERS_FIELD_NUMBER: builtins.int + name: builtins.str + target_url: builtins.str + event_type: global___WebhookEventType.ValueType + payload: builtins.str + @property + def http_headers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebhookHttpHeader]: ... + def __init__( + self, + *, + name: builtins.str = ..., + target_url: builtins.str = ..., + event_type: global___WebhookEventType.ValueType = ..., + payload: builtins.str | None = ..., + http_headers: collections.abc.Iterable[global___WebhookHttpHeader] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_payload", b"_payload", "payload", b"payload"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_payload", b"_payload", "event_type", b"event_type", "http_headers", b"http_headers", "name", b"name", "payload", b"payload", "target_url", b"target_url"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_payload", b"_payload"]) -> typing.Literal["payload"] | None: ... + +global___CreateWebhookRequest = CreateWebhookRequest + +@typing.final +class CreateWebhookResponse(google.protobuf.message.Message): + """The response of a call to `WebhookService_CreateWebhook`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_FIELD_NUMBER: builtins.int + @property + def webhook(self) -> global___Webhook: ... + def __init__( + self, + *, + webhook: global___Webhook | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["webhook", b"webhook"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["webhook", b"webhook"]) -> None: ... + +global___CreateWebhookResponse = CreateWebhookResponse + +@typing.final +class ListWebhooksRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_ListWebhooks` to retrieve and filter webhooks.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of webhooks to return. + The service may return fewer than this value. + If unspecified, at most 50 runs will be returned. + The maximum value is 1000. + """ + page_token: builtins.str + """A page token, received from a previous `ListWebhooks` call. + Provide this to retrieve the subsequent page. + When paginating, all other parameters provided to `ListWebhooks` must match + the call that provided the page token. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Available fields to filter by are `webhook_id`, `name`, `event_type`, `is_archived`, and `archived_date`. + """ + order_by: builtins.str + """How to order the retrieved webhooks. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available field to order_by is `created_date`. + If left empty, items are ordered by `created_date` in ascending order (oldest-first). + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date desc" + """ + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + filter: builtins.str = ..., + order_by: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListWebhooksRequest = ListWebhooksRequest + +@typing.final +class ListWebhooksResponse(google.protobuf.message.Message): + """The response of a call to `WebhookService_ListWebhooks`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOKS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + @property + def webhooks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Webhook]: ... + def __init__( + self, + *, + webhooks: collections.abc.Iterable[global___Webhook] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "webhooks", b"webhooks"]) -> None: ... + +global___ListWebhooksResponse = ListWebhooksResponse + +@typing.final +class TestWebhookRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_TestWebhook` to test an existing webhook + or a webhook create request. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_ID_FIELD_NUMBER: builtins.int + WEBHOOK_FIELD_NUMBER: builtins.int + CREATE_REQUEST_FIELD_NUMBER: builtins.int + webhook_id: builtins.str + @property + def webhook(self) -> global___Webhook: ... + @property + def create_request(self) -> global___CreateWebhookRequest: ... + def __init__( + self, + *, + webhook_id: builtins.str = ..., + webhook: global___Webhook | None = ..., + create_request: global___CreateWebhookRequest | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["create_request", b"create_request", "form", b"form", "webhook", b"webhook", "webhook_id", b"webhook_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["create_request", b"create_request", "form", b"form", "webhook", b"webhook", "webhook_id", b"webhook_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["form", b"form"]) -> typing.Literal["webhook_id", "webhook", "create_request"] | None: ... + +global___TestWebhookRequest = TestWebhookRequest + +@typing.final +class TestWebhookResponse(google.protobuf.message.Message): + """The response of a call to `WebhookService_TestWebhook`. The response code and body will come from the HTTP response + from the target URL. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + HTTP_RESPONSE_CODE_FIELD_NUMBER: builtins.int + HTTP_RESPONSE_BODY_FIELD_NUMBER: builtins.int + http_response_code: builtins.int + http_response_body: builtins.bytes + def __init__( + self, + *, + http_response_code: builtins.int = ..., + http_response_body: builtins.bytes = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["http_response_body", b"http_response_body", "http_response_code", b"http_response_code"]) -> None: ... + +global___TestWebhookResponse = TestWebhookResponse + +@typing.final +class CreateWebhookSignatureKeyRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_CreateWebhookSignatureKey` to create a webhook signature key.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___CreateWebhookSignatureKeyRequest = CreateWebhookSignatureKeyRequest + +@typing.final +class CreateWebhookSignatureKeyResponse(google.protobuf.message.Message): + """The response for a call to `WebhookService_CreateWebhookSignatureKey`. The `active` field indicates whether + or not whether the key is currently active. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SIGNATURE_KEY_FIELD_NUMBER: builtins.int + @property + def signature_key(self) -> global___WebhookSignatureKey: ... + def __init__( + self, + *, + signature_key: global___WebhookSignatureKey | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> None: ... + +global___CreateWebhookSignatureKeyResponse = CreateWebhookSignatureKeyResponse + +@typing.final +class GetWebhookSignatureKeyRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_GetWebhookSignatureKey` to retrieve the current webhook signature key.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + organization_id: builtins.str + """Optional organization ID.""" + def __init__( + self, + *, + organization_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["organization_id", b"organization_id"]) -> None: ... + +global___GetWebhookSignatureKeyRequest = GetWebhookSignatureKeyRequest + +@typing.final +class GetWebhookSignatureKeyResponse(google.protobuf.message.Message): + """The response for a call to `WebhookService_GetWebhookSignatureKey`. The `active` field indicates whether + or not whether the key is currently active. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SIGNATURE_KEY_FIELD_NUMBER: builtins.int + @property + def signature_key(self) -> global___WebhookSignatureKey: ... + def __init__( + self, + *, + signature_key: global___WebhookSignatureKey | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> None: ... + +global___GetWebhookSignatureKeyResponse = GetWebhookSignatureKeyResponse + +@typing.final +class ToggleWebhookSignatureKeyActivationRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_ToggleWebhookSignatureKeyActivation` to enable or disable the current + webhook signature key. Set `enable` to `true` to activate the signature key, and `false` to deactivate. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENABLE_FIELD_NUMBER: builtins.int + enable: builtins.bool + def __init__( + self, + *, + enable: builtins.bool = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["enable", b"enable"]) -> None: ... + +global___ToggleWebhookSignatureKeyActivationRequest = ToggleWebhookSignatureKeyActivationRequest + +@typing.final +class ToggleWebhookSignatureKeyActivationResponse(google.protobuf.message.Message): + """The response for a call to `WebhookService_ToggleWebhookSignatureKeyActivation`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SIGNATURE_KEY_FIELD_NUMBER: builtins.int + @property + def signature_key(self) -> global___WebhookSignatureKey: ... + def __init__( + self, + *, + signature_key: global___WebhookSignatureKey | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> None: ... + +global___ToggleWebhookSignatureKeyActivationResponse = ToggleWebhookSignatureKeyActivationResponse + +@typing.final +class RotateWebhookSignatureKeyRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_RotateWebhookSignatureKey` replace the current webhook signature key + with a new one. The activation state of the new signature key will be inherited from the previous key. If no key + exists then this will return an error - see `WebhookService_CreateWebhookSignatureKey`. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___RotateWebhookSignatureKeyRequest = RotateWebhookSignatureKeyRequest + +@typing.final +class RotateWebhookSignatureKeyResponse(google.protobuf.message.Message): + """The response for a call to `WebhookService_RotateWebhookSignatureKey`. The `active` field indicates whether + or not whether the key is currently active. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SIGNATURE_KEY_FIELD_NUMBER: builtins.int + @property + def signature_key(self) -> global___WebhookSignatureKey: ... + def __init__( + self, + *, + signature_key: global___WebhookSignatureKey | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["signature_key", b"signature_key"]) -> None: ... + +global___RotateWebhookSignatureKeyResponse = RotateWebhookSignatureKeyResponse + +@typing.final +class ListWebhookLogsRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_ListWebhookLogs` to retrieve and filter webhook logs.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of webhook logs to return. + The service may return fewer than this value. + If unspecified, at most 50 runs will be returned. + The maximum value is 1000. + """ + page_token: builtins.str + """A page token, received from a previous `ListWebhookLogs` call. + Provide this to retrieve the subsequent page. + When paginating, all other parameters provided to `ListWebhookLogs` must match + the call that provided the page token. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + The available fields to filter by are `webhook_id`, `status`. + """ + order_by: builtins.str + """How to order the retrieved webhook logs. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available field to order_by is `created_date`. + If left empty, items are ordered by `created_date` in ascending order (oldest-first). + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date desc" + """ + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + filter: builtins.str = ..., + order_by: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListWebhookLogsRequest = ListWebhookLogsRequest + +@typing.final +class ListWebhookLogsResponse(google.protobuf.message.Message): + """The response of a call to `WebhookService_ListWebhookLogsResponse`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOGS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + @property + def logs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebhookLog]: ... + def __init__( + self, + *, + logs: collections.abc.Iterable[global___WebhookLog] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["logs", b"logs", "next_page_token", b"next_page_token"]) -> None: ... + +global___ListWebhookLogsResponse = ListWebhookLogsResponse + +@typing.final +class CreateWebhookLogRequest(google.protobuf.message.Message): + """Request to create a single webhook log entry.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WEBHOOK_ID_FIELD_NUMBER: builtins.int + EVENT_ID_FIELD_NUMBER: builtins.int + RETRY_ATTEMPT_NUMBER_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + PAYLOAD_FIELD_NUMBER: builtins.int + ERROR_REASON_FIELD_NUMBER: builtins.int + SENT_DATE_FIELD_NUMBER: builtins.int + webhook_id: builtins.str + event_id: builtins.str + retry_attempt_number: builtins.int + status: global___WebhookLogStatus.ValueType + payload: builtins.str + error_reason: builtins.str + @property + def sent_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + webhook_id: builtins.str = ..., + event_id: builtins.str = ..., + retry_attempt_number: builtins.int = ..., + status: global___WebhookLogStatus.ValueType = ..., + payload: builtins.str | None = ..., + error_reason: builtins.str | None = ..., + sent_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_error_reason", b"_error_reason", "_payload", b"_payload", "error_reason", b"error_reason", "payload", b"payload", "sent_date", b"sent_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_error_reason", b"_error_reason", "_payload", b"_payload", "error_reason", b"error_reason", "event_id", b"event_id", "payload", b"payload", "retry_attempt_number", b"retry_attempt_number", "sent_date", b"sent_date", "status", b"status", "webhook_id", b"webhook_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_error_reason", b"_error_reason"]) -> typing.Literal["error_reason"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_payload", b"_payload"]) -> typing.Literal["payload"] | None: ... + +global___CreateWebhookLogRequest = CreateWebhookLogRequest + +@typing.final +class BatchCreateWebhookLogsRequest(google.protobuf.message.Message): + """The request for a call to `WebhookService_BatchCreateWebhookLogs` to create a batch of webhook logs.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REQUESTS_FIELD_NUMBER: builtins.int + @property + def requests(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CreateWebhookLogRequest]: ... + def __init__( + self, + *, + requests: collections.abc.Iterable[global___CreateWebhookLogRequest] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["requests", b"requests"]) -> None: ... + +global___BatchCreateWebhookLogsRequest = BatchCreateWebhookLogsRequest + +@typing.final +class BatchCreateWebhookLogsResponse(google.protobuf.message.Message): + """The response of a call to `WebhookService_BatchCreateWebhookResponse`.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___BatchCreateWebhookLogsResponse = BatchCreateWebhookLogsResponse diff --git a/python/lib/sift/webhooks/v1/webhooks_pb2_grpc.py b/python/lib/sift/webhooks/v1/webhooks_pb2_grpc.py new file mode 100644 index 000000000..a5652614d --- /dev/null +++ b/python/lib/sift/webhooks/v1/webhooks_pb2_grpc.py @@ -0,0 +1,410 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from sift.webhooks.v1 import webhooks_pb2 as sift_dot_webhooks_dot_v1_dot_webhooks__pb2 + + +class WebhookServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetWebhook = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/GetWebhook', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookResponse.FromString, + ) + self.CreateWebhook = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/CreateWebhook', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookResponse.FromString, + ) + self.UpdateWebhook = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/UpdateWebhook', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.UpdateWebhookRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.UpdateWebhookResponse.FromString, + ) + self.ListWebhooks = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/ListWebhooks', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhooksRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhooksResponse.FromString, + ) + self.TestWebhook = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/TestWebhook', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.TestWebhookRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.TestWebhookResponse.FromString, + ) + self.CreateWebhookSignatureKey = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookSignatureKeyRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookSignatureKeyResponse.FromString, + ) + self.GetWebhookSignatureKey = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookSignatureKeyRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookSignatureKeyResponse.FromString, + ) + self.ToggleWebhookSignatureKeyActivation = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ToggleWebhookSignatureKeyActivationRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ToggleWebhookSignatureKeyActivationResponse.FromString, + ) + self.RotateWebhookSignatureKey = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.RotateWebhookSignatureKeyRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.RotateWebhookSignatureKeyResponse.FromString, + ) + self.BatchCreateWebhookLogs = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.BatchCreateWebhookLogsRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.BatchCreateWebhookLogsResponse.FromString, + ) + self.ListWebhookLogs = channel.unary_unary( + '/sift.webhooks.v1.WebhookService/ListWebhookLogs', + request_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhookLogsRequest.SerializeToString, + response_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhookLogsResponse.FromString, + ) + + +class WebhookServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetWebhook(self, request, context): + """Retrieve a webhook by ID. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateWebhook(self, request, context): + """Create a webhook. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateWebhook(self, request, context): + """Update select fields of an existing webhook. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListWebhooks(self, request, context): + """Retrieve and optionally filter a list of webhooks. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TestWebhook(self, request, context): + """Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook + with the provided parameters and forward back the response from the target. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateWebhookSignatureKey(self, request, context): + """Create an webhook signature key. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256. + The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then + this will simply return it. See `WebhookService_RotateWebhookSignatureKey` to rotate the key. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetWebhookSignatureKey(self, request, context): + """Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ToggleWebhookSignatureKeyActivation(self, request, context): + """Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RotateWebhookSignatureKey(self, request, context): + """Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchCreateWebhookLogs(self, request, context): + """Create a batch of webhook logs. Users should not have to call this directly. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListWebhookLogs(self, request, context): + """Retrieve and optionally filter a list of webhook logs. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_WebhookServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetWebhook': grpc.unary_unary_rpc_method_handler( + servicer.GetWebhook, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookResponse.SerializeToString, + ), + 'CreateWebhook': grpc.unary_unary_rpc_method_handler( + servicer.CreateWebhook, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookResponse.SerializeToString, + ), + 'UpdateWebhook': grpc.unary_unary_rpc_method_handler( + servicer.UpdateWebhook, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.UpdateWebhookRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.UpdateWebhookResponse.SerializeToString, + ), + 'ListWebhooks': grpc.unary_unary_rpc_method_handler( + servicer.ListWebhooks, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhooksRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhooksResponse.SerializeToString, + ), + 'TestWebhook': grpc.unary_unary_rpc_method_handler( + servicer.TestWebhook, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.TestWebhookRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.TestWebhookResponse.SerializeToString, + ), + 'CreateWebhookSignatureKey': grpc.unary_unary_rpc_method_handler( + servicer.CreateWebhookSignatureKey, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookSignatureKeyRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookSignatureKeyResponse.SerializeToString, + ), + 'GetWebhookSignatureKey': grpc.unary_unary_rpc_method_handler( + servicer.GetWebhookSignatureKey, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookSignatureKeyRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookSignatureKeyResponse.SerializeToString, + ), + 'ToggleWebhookSignatureKeyActivation': grpc.unary_unary_rpc_method_handler( + servicer.ToggleWebhookSignatureKeyActivation, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ToggleWebhookSignatureKeyActivationRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ToggleWebhookSignatureKeyActivationResponse.SerializeToString, + ), + 'RotateWebhookSignatureKey': grpc.unary_unary_rpc_method_handler( + servicer.RotateWebhookSignatureKey, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.RotateWebhookSignatureKeyRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.RotateWebhookSignatureKeyResponse.SerializeToString, + ), + 'BatchCreateWebhookLogs': grpc.unary_unary_rpc_method_handler( + servicer.BatchCreateWebhookLogs, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.BatchCreateWebhookLogsRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.BatchCreateWebhookLogsResponse.SerializeToString, + ), + 'ListWebhookLogs': grpc.unary_unary_rpc_method_handler( + servicer.ListWebhookLogs, + request_deserializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhookLogsRequest.FromString, + response_serializer=sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhookLogsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sift.webhooks.v1.WebhookService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class WebhookService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetWebhook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/GetWebhook', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateWebhook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/CreateWebhook', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateWebhook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/UpdateWebhook', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.UpdateWebhookRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.UpdateWebhookResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListWebhooks(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/ListWebhooks', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhooksRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhooksResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def TestWebhook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/TestWebhook', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.TestWebhookRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.TestWebhookResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateWebhookSignatureKey(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookSignatureKeyRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.CreateWebhookSignatureKeyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetWebhookSignatureKey(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookSignatureKeyRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.GetWebhookSignatureKeyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ToggleWebhookSignatureKeyActivation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ToggleWebhookSignatureKeyActivationRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ToggleWebhookSignatureKeyActivationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RotateWebhookSignatureKey(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.RotateWebhookSignatureKeyRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.RotateWebhookSignatureKeyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def BatchCreateWebhookLogs(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.BatchCreateWebhookLogsRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.BatchCreateWebhookLogsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListWebhookLogs(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.webhooks.v1.WebhookService/ListWebhookLogs', + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhookLogsRequest.SerializeToString, + sift_dot_webhooks_dot_v1_dot_webhooks__pb2.ListWebhookLogsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/lib/sift/webhooks/v1/webhooks_pb2_grpc.pyi b/python/lib/sift/webhooks/v1/webhooks_pb2_grpc.pyi new file mode 100644 index 000000000..92a5b4cf0 --- /dev/null +++ b/python/lib/sift/webhooks/v1/webhooks_pb2_grpc.pyi @@ -0,0 +1,259 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sift.webhooks.v1.webhooks_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class WebhookServiceStub: + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + GetWebhook: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.GetWebhookRequest, + sift.webhooks.v1.webhooks_pb2.GetWebhookResponse, + ] + """Retrieve a webhook by ID.""" + + CreateWebhook: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.CreateWebhookRequest, + sift.webhooks.v1.webhooks_pb2.CreateWebhookResponse, + ] + """Create a webhook.""" + + UpdateWebhook: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.UpdateWebhookRequest, + sift.webhooks.v1.webhooks_pb2.UpdateWebhookResponse, + ] + """Update select fields of an existing webhook.""" + + ListWebhooks: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.ListWebhooksRequest, + sift.webhooks.v1.webhooks_pb2.ListWebhooksResponse, + ] + """Retrieve and optionally filter a list of webhooks.""" + + TestWebhook: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.TestWebhookRequest, + sift.webhooks.v1.webhooks_pb2.TestWebhookResponse, + ] + """Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook + with the provided parameters and forward back the response from the target. + """ + + CreateWebhookSignatureKey: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.CreateWebhookSignatureKeyRequest, + sift.webhooks.v1.webhooks_pb2.CreateWebhookSignatureKeyResponse, + ] + """Create an webhook signature key. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256. + The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then + this will simply return it. See `WebhookService_RotateWebhookSignatureKey` to rotate the key. + """ + + GetWebhookSignatureKey: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.GetWebhookSignatureKeyRequest, + sift.webhooks.v1.webhooks_pb2.GetWebhookSignatureKeyResponse, + ] + """Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist.""" + + ToggleWebhookSignatureKeyActivation: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.ToggleWebhookSignatureKeyActivationRequest, + sift.webhooks.v1.webhooks_pb2.ToggleWebhookSignatureKeyActivationResponse, + ] + """Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist.""" + + RotateWebhookSignatureKey: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.RotateWebhookSignatureKeyRequest, + sift.webhooks.v1.webhooks_pb2.RotateWebhookSignatureKeyResponse, + ] + """Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.""" + + BatchCreateWebhookLogs: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.BatchCreateWebhookLogsRequest, + sift.webhooks.v1.webhooks_pb2.BatchCreateWebhookLogsResponse, + ] + """Create a batch of webhook logs. Users should not have to call this directly.""" + + ListWebhookLogs: grpc.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.ListWebhookLogsRequest, + sift.webhooks.v1.webhooks_pb2.ListWebhookLogsResponse, + ] + """Retrieve and optionally filter a list of webhook logs.""" + +class WebhookServiceAsyncStub: + GetWebhook: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.GetWebhookRequest, + sift.webhooks.v1.webhooks_pb2.GetWebhookResponse, + ] + """Retrieve a webhook by ID.""" + + CreateWebhook: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.CreateWebhookRequest, + sift.webhooks.v1.webhooks_pb2.CreateWebhookResponse, + ] + """Create a webhook.""" + + UpdateWebhook: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.UpdateWebhookRequest, + sift.webhooks.v1.webhooks_pb2.UpdateWebhookResponse, + ] + """Update select fields of an existing webhook.""" + + ListWebhooks: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.ListWebhooksRequest, + sift.webhooks.v1.webhooks_pb2.ListWebhooksResponse, + ] + """Retrieve and optionally filter a list of webhooks.""" + + TestWebhook: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.TestWebhookRequest, + sift.webhooks.v1.webhooks_pb2.TestWebhookResponse, + ] + """Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook + with the provided parameters and forward back the response from the target. + """ + + CreateWebhookSignatureKey: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.CreateWebhookSignatureKeyRequest, + sift.webhooks.v1.webhooks_pb2.CreateWebhookSignatureKeyResponse, + ] + """Create an webhook signature key. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256. + The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then + this will simply return it. See `WebhookService_RotateWebhookSignatureKey` to rotate the key. + """ + + GetWebhookSignatureKey: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.GetWebhookSignatureKeyRequest, + sift.webhooks.v1.webhooks_pb2.GetWebhookSignatureKeyResponse, + ] + """Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist.""" + + ToggleWebhookSignatureKeyActivation: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.ToggleWebhookSignatureKeyActivationRequest, + sift.webhooks.v1.webhooks_pb2.ToggleWebhookSignatureKeyActivationResponse, + ] + """Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist.""" + + RotateWebhookSignatureKey: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.RotateWebhookSignatureKeyRequest, + sift.webhooks.v1.webhooks_pb2.RotateWebhookSignatureKeyResponse, + ] + """Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.""" + + BatchCreateWebhookLogs: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.BatchCreateWebhookLogsRequest, + sift.webhooks.v1.webhooks_pb2.BatchCreateWebhookLogsResponse, + ] + """Create a batch of webhook logs. Users should not have to call this directly.""" + + ListWebhookLogs: grpc.aio.UnaryUnaryMultiCallable[ + sift.webhooks.v1.webhooks_pb2.ListWebhookLogsRequest, + sift.webhooks.v1.webhooks_pb2.ListWebhookLogsResponse, + ] + """Retrieve and optionally filter a list of webhook logs.""" + +class WebhookServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def GetWebhook( + self, + request: sift.webhooks.v1.webhooks_pb2.GetWebhookRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.GetWebhookResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.GetWebhookResponse]]: + """Retrieve a webhook by ID.""" + + @abc.abstractmethod + def CreateWebhook( + self, + request: sift.webhooks.v1.webhooks_pb2.CreateWebhookRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.CreateWebhookResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.CreateWebhookResponse]]: + """Create a webhook.""" + + @abc.abstractmethod + def UpdateWebhook( + self, + request: sift.webhooks.v1.webhooks_pb2.UpdateWebhookRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.UpdateWebhookResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.UpdateWebhookResponse]]: + """Update select fields of an existing webhook.""" + + @abc.abstractmethod + def ListWebhooks( + self, + request: sift.webhooks.v1.webhooks_pb2.ListWebhooksRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.ListWebhooksResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.ListWebhooksResponse]]: + """Retrieve and optionally filter a list of webhooks.""" + + @abc.abstractmethod + def TestWebhook( + self, + request: sift.webhooks.v1.webhooks_pb2.TestWebhookRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.TestWebhookResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.TestWebhookResponse]]: + """Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook + with the provided parameters and forward back the response from the target. + """ + + @abc.abstractmethod + def CreateWebhookSignatureKey( + self, + request: sift.webhooks.v1.webhooks_pb2.CreateWebhookSignatureKeyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.CreateWebhookSignatureKeyResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.CreateWebhookSignatureKeyResponse]]: + """Create an webhook signature key. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256. + The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then + this will simply return it. See `WebhookService_RotateWebhookSignatureKey` to rotate the key. + """ + + @abc.abstractmethod + def GetWebhookSignatureKey( + self, + request: sift.webhooks.v1.webhooks_pb2.GetWebhookSignatureKeyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.GetWebhookSignatureKeyResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.GetWebhookSignatureKeyResponse]]: + """Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist.""" + + @abc.abstractmethod + def ToggleWebhookSignatureKeyActivation( + self, + request: sift.webhooks.v1.webhooks_pb2.ToggleWebhookSignatureKeyActivationRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.ToggleWebhookSignatureKeyActivationResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.ToggleWebhookSignatureKeyActivationResponse]]: + """Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist.""" + + @abc.abstractmethod + def RotateWebhookSignatureKey( + self, + request: sift.webhooks.v1.webhooks_pb2.RotateWebhookSignatureKeyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.RotateWebhookSignatureKeyResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.RotateWebhookSignatureKeyResponse]]: + """Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.""" + + @abc.abstractmethod + def BatchCreateWebhookLogs( + self, + request: sift.webhooks.v1.webhooks_pb2.BatchCreateWebhookLogsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.BatchCreateWebhookLogsResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.BatchCreateWebhookLogsResponse]]: + """Create a batch of webhook logs. Users should not have to call this directly.""" + + @abc.abstractmethod + def ListWebhookLogs( + self, + request: sift.webhooks.v1.webhooks_pb2.ListWebhookLogsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.webhooks.v1.webhooks_pb2.ListWebhookLogsResponse, collections.abc.Awaitable[sift.webhooks.v1.webhooks_pb2.ListWebhookLogsResponse]]: + """Retrieve and optionally filter a list of webhook logs.""" + +def add_WebhookServiceServicer_to_server(servicer: WebhookServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/python/pyproject.toml b/python/pyproject.toml index 1c2e2d5ef..82483cc42 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -109,6 +109,7 @@ exclude = [ "site-packages", "venv", "lib/sift", + "lib/buf", "lib/google", "lib/protoc_gen_openapiv2", ] @@ -181,6 +182,7 @@ exclude = [ "venv", "lib/sift", "lib/google", + "lib/buf", "lib/protoc_gen_openapiv2", ] diff --git a/rust/crates/sift_rs/buf.gen.yaml b/rust/crates/sift_rs/buf.gen.yaml index cd0d9374c..702e9f528 100644 --- a/rust/crates/sift_rs/buf.gen.yaml +++ b/rust/crates/sift_rs/buf.gen.yaml @@ -16,3 +16,5 @@ plugins: - no_features - plugin: buf.build/community/neoeinstein-prost-serde:v0.3.0 out: src/gen + opt: + - extern_path=.google.protobuf=::pbjson_types diff --git a/rust/crates/sift_rs/src/gen/buf.validate.rs b/rust/crates/sift_rs/src/gen/buf.validate.rs new file mode 100644 index 000000000..5eabbb518 --- /dev/null +++ b/rust/crates/sift_rs/src/gen/buf.validate.rs @@ -0,0 +1,892 @@ +// @generated +// This file is @generated by prost-build. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Rule { + #[prost(string, optional, tag="1")] + pub id: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="2")] + pub message: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="3")] + pub expression: ::core::option::Option<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MessageRules { + #[prost(message, repeated, tag="3")] + pub cel: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub oneof: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MessageOneofRule { + #[prost(string, repeated, tag="1")] + pub fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(bool, optional, tag="2")] + pub required: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct OneofRules { + #[prost(bool, optional, tag="1")] + pub required: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FieldRules { + #[prost(message, repeated, tag="23")] + pub cel: ::prost::alloc::vec::Vec, + #[prost(bool, optional, tag="25")] + pub required: ::core::option::Option, + #[prost(enumeration="Ignore", optional, tag="27")] + pub ignore: ::core::option::Option, + #[prost(oneof="field_rules::Type", tags="1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22")] + pub r#type: ::core::option::Option, +} +/// Nested message and enum types in `FieldRules`. +pub mod field_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Type { + #[prost(message, tag="1")] + Float(super::FloatRules), + #[prost(message, tag="2")] + Double(super::DoubleRules), + #[prost(message, tag="3")] + Int32(super::Int32Rules), + #[prost(message, tag="4")] + Int64(super::Int64Rules), + #[prost(message, tag="5")] + Uint32(super::UInt32Rules), + #[prost(message, tag="6")] + Uint64(super::UInt64Rules), + #[prost(message, tag="7")] + Sint32(super::SInt32Rules), + #[prost(message, tag="8")] + Sint64(super::SInt64Rules), + #[prost(message, tag="9")] + Fixed32(super::Fixed32Rules), + #[prost(message, tag="10")] + Fixed64(super::Fixed64Rules), + #[prost(message, tag="11")] + Sfixed32(super::SFixed32Rules), + #[prost(message, tag="12")] + Sfixed64(super::SFixed64Rules), + #[prost(message, tag="13")] + Bool(super::BoolRules), + #[prost(message, tag="14")] + String(super::StringRules), + #[prost(message, tag="15")] + Bytes(super::BytesRules), + #[prost(message, tag="16")] + Enum(super::EnumRules), + #[prost(message, tag="18")] + Repeated(::prost::alloc::boxed::Box), + #[prost(message, tag="19")] + Map(::prost::alloc::boxed::Box), + #[prost(message, tag="20")] + Any(super::AnyRules), + #[prost(message, tag="21")] + Duration(super::DurationRules), + #[prost(message, tag="22")] + Timestamp(super::TimestampRules), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PredefinedRules { + #[prost(message, repeated, tag="1")] + pub cel: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FloatRules { + #[prost(float, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(float, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(float, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(bool, optional, tag="8")] + pub finite: ::core::option::Option, + #[prost(float, repeated, packed="false", tag="9")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="float_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="float_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `FloatRules`. +pub mod float_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(float, tag="2")] + Lt(f32), + #[prost(float, tag="3")] + Lte(f32), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(float, tag="4")] + Gt(f32), + #[prost(float, tag="5")] + Gte(f32), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DoubleRules { + #[prost(double, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(double, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(double, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(bool, optional, tag="8")] + pub finite: ::core::option::Option, + #[prost(double, repeated, packed="false", tag="9")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="double_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="double_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `DoubleRules`. +pub mod double_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(double, tag="2")] + Lt(f64), + #[prost(double, tag="3")] + Lte(f64), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(double, tag="4")] + Gt(f64), + #[prost(double, tag="5")] + Gte(f64), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Int32Rules { + #[prost(int32, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(int32, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(int32, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(int32, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="int32_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="int32_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `Int32Rules`. +pub mod int32_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(int32, tag="2")] + Lt(i32), + #[prost(int32, tag="3")] + Lte(i32), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(int32, tag="4")] + Gt(i32), + #[prost(int32, tag="5")] + Gte(i32), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Int64Rules { + #[prost(int64, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(int64, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(int64, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(int64, repeated, packed="false", tag="9")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="int64_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="int64_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `Int64Rules`. +pub mod int64_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(int64, tag="2")] + Lt(i64), + #[prost(int64, tag="3")] + Lte(i64), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(int64, tag="4")] + Gt(i64), + #[prost(int64, tag="5")] + Gte(i64), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UInt32Rules { + #[prost(uint32, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(uint32, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="u_int32_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="u_int32_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `UInt32Rules`. +pub mod u_int32_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(uint32, tag="2")] + Lt(u32), + #[prost(uint32, tag="3")] + Lte(u32), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(uint32, tag="4")] + Gt(u32), + #[prost(uint32, tag="5")] + Gte(u32), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UInt64Rules { + #[prost(uint64, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(uint64, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="u_int64_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="u_int64_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `UInt64Rules`. +pub mod u_int64_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(uint64, tag="2")] + Lt(u64), + #[prost(uint64, tag="3")] + Lte(u64), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(uint64, tag="4")] + Gt(u64), + #[prost(uint64, tag="5")] + Gte(u64), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SInt32Rules { + #[prost(sint32, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(sint32, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(sint32, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(sint32, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="s_int32_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="s_int32_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `SInt32Rules`. +pub mod s_int32_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(sint32, tag="2")] + Lt(i32), + #[prost(sint32, tag="3")] + Lte(i32), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(sint32, tag="4")] + Gt(i32), + #[prost(sint32, tag="5")] + Gte(i32), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SInt64Rules { + #[prost(sint64, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(sint64, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(sint64, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(sint64, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="s_int64_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="s_int64_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `SInt64Rules`. +pub mod s_int64_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(sint64, tag="2")] + Lt(i64), + #[prost(sint64, tag="3")] + Lte(i64), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(sint64, tag="4")] + Gt(i64), + #[prost(sint64, tag="5")] + Gte(i64), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fixed32Rules { + #[prost(fixed32, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(fixed32, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(fixed32, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(fixed32, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="fixed32_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="fixed32_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `Fixed32Rules`. +pub mod fixed32_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(fixed32, tag="2")] + Lt(u32), + #[prost(fixed32, tag="3")] + Lte(u32), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(fixed32, tag="4")] + Gt(u32), + #[prost(fixed32, tag="5")] + Gte(u32), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fixed64Rules { + #[prost(fixed64, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(fixed64, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(fixed64, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(fixed64, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="fixed64_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="fixed64_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `Fixed64Rules`. +pub mod fixed64_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(fixed64, tag="2")] + Lt(u64), + #[prost(fixed64, tag="3")] + Lte(u64), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(fixed64, tag="4")] + Gt(u64), + #[prost(fixed64, tag="5")] + Gte(u64), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SFixed32Rules { + #[prost(sfixed32, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(sfixed32, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(sfixed32, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(sfixed32, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="s_fixed32_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="s_fixed32_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `SFixed32Rules`. +pub mod s_fixed32_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(sfixed32, tag="2")] + Lt(i32), + #[prost(sfixed32, tag="3")] + Lte(i32), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(sfixed32, tag="4")] + Gt(i32), + #[prost(sfixed32, tag="5")] + Gte(i32), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SFixed64Rules { + #[prost(sfixed64, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(sfixed64, repeated, packed="false", tag="6")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(sfixed64, repeated, packed="false", tag="7")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(sfixed64, repeated, packed="false", tag="8")] + pub example: ::prost::alloc::vec::Vec, + #[prost(oneof="s_fixed64_rules::LessThan", tags="2, 3")] + pub less_than: ::core::option::Option, + #[prost(oneof="s_fixed64_rules::GreaterThan", tags="4, 5")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `SFixed64Rules`. +pub mod s_fixed64_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(sfixed64, tag="2")] + Lt(i64), + #[prost(sfixed64, tag="3")] + Lte(i64), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(sfixed64, tag="4")] + Gt(i64), + #[prost(sfixed64, tag="5")] + Gte(i64), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BoolRules { + #[prost(bool, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(bool, repeated, packed="false", tag="2")] + pub example: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StringRules { + #[prost(string, optional, tag="1")] + pub r#const: ::core::option::Option<::prost::alloc::string::String>, + #[prost(uint64, optional, tag="19")] + pub len: ::core::option::Option, + #[prost(uint64, optional, tag="2")] + pub min_len: ::core::option::Option, + #[prost(uint64, optional, tag="3")] + pub max_len: ::core::option::Option, + #[prost(uint64, optional, tag="20")] + pub len_bytes: ::core::option::Option, + #[prost(uint64, optional, tag="4")] + pub min_bytes: ::core::option::Option, + #[prost(uint64, optional, tag="5")] + pub max_bytes: ::core::option::Option, + #[prost(string, optional, tag="6")] + pub pattern: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="7")] + pub prefix: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="8")] + pub suffix: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="9")] + pub contains: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="23")] + pub not_contains: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, repeated, tag="10")] + pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="11")] + pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(bool, optional, tag="25")] + pub strict: ::core::option::Option, + #[prost(string, repeated, tag="34")] + pub example: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(oneof="string_rules::WellKnown", tags="12, 13, 14, 15, 16, 17, 18, 21, 22, 33, 26, 27, 28, 29, 30, 31, 32, 24")] + pub well_known: ::core::option::Option, +} +/// Nested message and enum types in `StringRules`. +pub mod string_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum WellKnown { + #[prost(bool, tag="12")] + Email(bool), + #[prost(bool, tag="13")] + Hostname(bool), + #[prost(bool, tag="14")] + Ip(bool), + #[prost(bool, tag="15")] + Ipv4(bool), + #[prost(bool, tag="16")] + Ipv6(bool), + #[prost(bool, tag="17")] + Uri(bool), + #[prost(bool, tag="18")] + UriRef(bool), + #[prost(bool, tag="21")] + Address(bool), + #[prost(bool, tag="22")] + Uuid(bool), + #[prost(bool, tag="33")] + Tuuid(bool), + #[prost(bool, tag="26")] + IpWithPrefixlen(bool), + #[prost(bool, tag="27")] + Ipv4WithPrefixlen(bool), + #[prost(bool, tag="28")] + Ipv6WithPrefixlen(bool), + #[prost(bool, tag="29")] + IpPrefix(bool), + #[prost(bool, tag="30")] + Ipv4Prefix(bool), + #[prost(bool, tag="31")] + Ipv6Prefix(bool), + #[prost(bool, tag="32")] + HostAndPort(bool), + #[prost(enumeration="super::KnownRegex", tag="24")] + WellKnownRegex(i32), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BytesRules { + #[prost(bytes="vec", optional, tag="1")] + pub r#const: ::core::option::Option<::prost::alloc::vec::Vec>, + #[prost(uint64, optional, tag="13")] + pub len: ::core::option::Option, + #[prost(uint64, optional, tag="2")] + pub min_len: ::core::option::Option, + #[prost(uint64, optional, tag="3")] + pub max_len: ::core::option::Option, + #[prost(string, optional, tag="4")] + pub pattern: ::core::option::Option<::prost::alloc::string::String>, + #[prost(bytes="vec", optional, tag="5")] + pub prefix: ::core::option::Option<::prost::alloc::vec::Vec>, + #[prost(bytes="vec", optional, tag="6")] + pub suffix: ::core::option::Option<::prost::alloc::vec::Vec>, + #[prost(bytes="vec", optional, tag="7")] + pub contains: ::core::option::Option<::prost::alloc::vec::Vec>, + #[prost(bytes="vec", repeated, tag="8")] + pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + #[prost(bytes="vec", repeated, tag="9")] + pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + #[prost(bytes="vec", repeated, tag="14")] + pub example: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + #[prost(oneof="bytes_rules::WellKnown", tags="10, 11, 12")] + pub well_known: ::core::option::Option, +} +/// Nested message and enum types in `BytesRules`. +pub mod bytes_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum WellKnown { + #[prost(bool, tag="10")] + Ip(bool), + #[prost(bool, tag="11")] + Ipv4(bool), + #[prost(bool, tag="12")] + Ipv6(bool), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EnumRules { + #[prost(int32, optional, tag="1")] + pub r#const: ::core::option::Option, + #[prost(bool, optional, tag="2")] + pub defined_only: ::core::option::Option, + #[prost(int32, repeated, packed="false", tag="3")] + pub r#in: ::prost::alloc::vec::Vec, + #[prost(int32, repeated, packed="false", tag="4")] + pub not_in: ::prost::alloc::vec::Vec, + #[prost(int32, repeated, packed="false", tag="5")] + pub example: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RepeatedRules { + #[prost(uint64, optional, tag="1")] + pub min_items: ::core::option::Option, + #[prost(uint64, optional, tag="2")] + pub max_items: ::core::option::Option, + #[prost(bool, optional, tag="3")] + pub unique: ::core::option::Option, + #[prost(message, optional, boxed, tag="4")] + pub items: ::core::option::Option<::prost::alloc::boxed::Box>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MapRules { + #[prost(uint64, optional, tag="1")] + pub min_pairs: ::core::option::Option, + #[prost(uint64, optional, tag="2")] + pub max_pairs: ::core::option::Option, + #[prost(message, optional, boxed, tag="4")] + pub keys: ::core::option::Option<::prost::alloc::boxed::Box>, + #[prost(message, optional, boxed, tag="5")] + pub values: ::core::option::Option<::prost::alloc::boxed::Box>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AnyRules { + #[prost(string, repeated, tag="2")] + pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="3")] + pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DurationRules { + #[prost(message, optional, tag="2")] + pub r#const: ::core::option::Option<::pbjson_types::Duration>, + #[prost(message, repeated, tag="7")] + pub r#in: ::prost::alloc::vec::Vec<::pbjson_types::Duration>, + #[prost(message, repeated, tag="8")] + pub not_in: ::prost::alloc::vec::Vec<::pbjson_types::Duration>, + #[prost(message, repeated, tag="9")] + pub example: ::prost::alloc::vec::Vec<::pbjson_types::Duration>, + #[prost(oneof="duration_rules::LessThan", tags="3, 4")] + pub less_than: ::core::option::Option, + #[prost(oneof="duration_rules::GreaterThan", tags="5, 6")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `DurationRules`. +pub mod duration_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(message, tag="3")] + Lt(::pbjson_types::Duration), + #[prost(message, tag="4")] + Lte(::pbjson_types::Duration), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(message, tag="5")] + Gt(::pbjson_types::Duration), + #[prost(message, tag="6")] + Gte(::pbjson_types::Duration), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TimestampRules { + #[prost(message, optional, tag="2")] + pub r#const: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="9")] + pub within: ::core::option::Option<::pbjson_types::Duration>, + #[prost(message, repeated, tag="10")] + pub example: ::prost::alloc::vec::Vec<::pbjson_types::Timestamp>, + #[prost(oneof="timestamp_rules::LessThan", tags="3, 4, 7")] + pub less_than: ::core::option::Option, + #[prost(oneof="timestamp_rules::GreaterThan", tags="5, 6, 8")] + pub greater_than: ::core::option::Option, +} +/// Nested message and enum types in `TimestampRules`. +pub mod timestamp_rules { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum LessThan { + #[prost(message, tag="3")] + Lt(::pbjson_types::Timestamp), + #[prost(message, tag="4")] + Lte(::pbjson_types::Timestamp), + #[prost(bool, tag="7")] + LtNow(bool), + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] + pub enum GreaterThan { + #[prost(message, tag="5")] + Gt(::pbjson_types::Timestamp), + #[prost(message, tag="6")] + Gte(::pbjson_types::Timestamp), + #[prost(bool, tag="8")] + GtNow(bool), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Violations { + #[prost(message, repeated, tag="1")] + pub violations: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Violation { + #[prost(message, optional, tag="5")] + pub field: ::core::option::Option, + #[prost(message, optional, tag="6")] + pub rule: ::core::option::Option, + #[prost(string, optional, tag="2")] + pub rule_id: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="3")] + pub message: ::core::option::Option<::prost::alloc::string::String>, + #[prost(bool, optional, tag="4")] + pub for_key: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FieldPath { + #[prost(message, repeated, tag="1")] + pub elements: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FieldPathElement { + #[prost(int32, optional, tag="1")] + pub field_number: ::core::option::Option, + #[prost(string, optional, tag="2")] + pub field_name: ::core::option::Option<::prost::alloc::string::String>, + #[prost(enumeration="::pbjson_types::field_descriptor_proto::Type", optional, tag="3")] + pub field_type: ::core::option::Option, + #[prost(enumeration="::pbjson_types::field_descriptor_proto::Type", optional, tag="4")] + pub key_type: ::core::option::Option, + #[prost(enumeration="::pbjson_types::field_descriptor_proto::Type", optional, tag="5")] + pub value_type: ::core::option::Option, + #[prost(oneof="field_path_element::Subscript", tags="6, 7, 8, 9, 10")] + pub subscript: ::core::option::Option, +} +/// Nested message and enum types in `FieldPathElement`. +pub mod field_path_element { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Subscript { + #[prost(uint64, tag="6")] + Index(u64), + #[prost(bool, tag="7")] + BoolKey(bool), + #[prost(int64, tag="8")] + IntKey(i64), + #[prost(uint64, tag="9")] + UintKey(u64), + #[prost(string, tag="10")] + StringKey(::prost::alloc::string::String), + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ignore { + Unspecified = 0, + IfZeroValue = 1, + Always = 3, +} +impl Ignore { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ignore::Unspecified => "IGNORE_UNSPECIFIED", + Ignore::IfZeroValue => "IGNORE_IF_ZERO_VALUE", + Ignore::Always => "IGNORE_ALWAYS", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IGNORE_UNSPECIFIED" => Some(Self::Unspecified), + "IGNORE_IF_ZERO_VALUE" => Some(Self::IfZeroValue), + "IGNORE_ALWAYS" => Some(Self::Always), + _ => None, + } + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum KnownRegex { + Unspecified = 0, + HttpHeaderName = 1, + HttpHeaderValue = 2, +} +impl KnownRegex { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + KnownRegex::Unspecified => "KNOWN_REGEX_UNSPECIFIED", + KnownRegex::HttpHeaderName => "KNOWN_REGEX_HTTP_HEADER_NAME", + KnownRegex::HttpHeaderValue => "KNOWN_REGEX_HTTP_HEADER_VALUE", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "KNOWN_REGEX_UNSPECIFIED" => Some(Self::Unspecified), + "KNOWN_REGEX_HTTP_HEADER_NAME" => Some(Self::HttpHeaderName), + "KNOWN_REGEX_HTTP_HEADER_VALUE" => Some(Self::HttpHeaderValue), + _ => None, + } + } +} +include!("buf.validate.serde.rs"); +// @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/buf.validate.serde.rs b/rust/crates/sift_rs/src/gen/buf.validate.serde.rs new file mode 100644 index 000000000..a48ecc6ca --- /dev/null +++ b/rust/crates/sift_rs/src/gen/buf.validate.serde.rs @@ -0,0 +1,6440 @@ +// @generated +impl serde::Serialize for AnyRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.AnyRules", len)?; + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AnyRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "in", + "not_in", + "notIn", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + In, + NotIn, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AnyRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.AnyRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#in__ = None; + let mut not_in__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = Some(map_.next_value()?); + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = Some(map_.next_value()?); + } + } + } + Ok(AnyRules { + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("buf.validate.AnyRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BoolRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.BoolRules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BoolRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "example", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + Example, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "example" => Ok(GeneratedField::Example), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BoolRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.BoolRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut example__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = map_.next_value()?; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = Some(map_.next_value()?); + } + } + } + Ok(BoolRules { + r#const: r#const__, + example: example__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("buf.validate.BoolRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BytesRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if self.len.is_some() { + len += 1; + } + if self.min_len.is_some() { + len += 1; + } + if self.max_len.is_some() { + len += 1; + } + if self.pattern.is_some() { + len += 1; + } + if self.prefix.is_some() { + len += 1; + } + if self.suffix.is_some() { + len += 1; + } + if self.contains.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.well_known.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.BytesRules", len)?; + if let Some(v) = self.r#const.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("const", pbjson::private::base64::encode(&v).as_str())?; + } + if let Some(v) = self.len.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("len", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.min_len.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("minLen", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.max_len.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("maxLen", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.pattern.as_ref() { + struct_ser.serialize_field("pattern", v)?; + } + if let Some(v) = self.prefix.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("prefix", pbjson::private::base64::encode(&v).as_str())?; + } + if let Some(v) = self.suffix.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("suffix", pbjson::private::base64::encode(&v).as_str())?; + } + if let Some(v) = self.contains.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("contains", pbjson::private::base64::encode(&v).as_str())?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in.iter().map(pbjson::private::base64::encode).collect::>())?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in.iter().map(pbjson::private::base64::encode).collect::>())?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example.iter().map(pbjson::private::base64::encode).collect::>())?; + } + if let Some(v) = self.well_known.as_ref() { + match v { + bytes_rules::WellKnown::Ip(v) => { + struct_ser.serialize_field("ip", v)?; + } + bytes_rules::WellKnown::Ipv4(v) => { + struct_ser.serialize_field("ipv4", v)?; + } + bytes_rules::WellKnown::Ipv6(v) => { + struct_ser.serialize_field("ipv6", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BytesRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "len", + "min_len", + "minLen", + "max_len", + "maxLen", + "pattern", + "prefix", + "suffix", + "contains", + "in", + "not_in", + "notIn", + "example", + "ip", + "ipv4", + "ipv6", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + Len, + MinLen, + MaxLen, + Pattern, + Prefix, + Suffix, + Contains, + In, + NotIn, + Example, + Ip, + Ipv4, + Ipv6, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "len" => Ok(GeneratedField::Len), + "minLen" | "min_len" => Ok(GeneratedField::MinLen), + "maxLen" | "max_len" => Ok(GeneratedField::MaxLen), + "pattern" => Ok(GeneratedField::Pattern), + "prefix" => Ok(GeneratedField::Prefix), + "suffix" => Ok(GeneratedField::Suffix), + "contains" => Ok(GeneratedField::Contains), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "ip" => Ok(GeneratedField::Ip), + "ipv4" => Ok(GeneratedField::Ipv4), + "ipv6" => Ok(GeneratedField::Ipv6), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BytesRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.BytesRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut len__ = None; + let mut min_len__ = None; + let mut max_len__ = None; + let mut pattern__ = None; + let mut prefix__ = None; + let mut suffix__ = None; + let mut contains__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut well_known__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::BytesDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::Len => { + if len__.is_some() { + return Err(serde::de::Error::duplicate_field("len")); + } + len__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MinLen => { + if min_len__.is_some() { + return Err(serde::de::Error::duplicate_field("minLen")); + } + min_len__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MaxLen => { + if max_len__.is_some() { + return Err(serde::de::Error::duplicate_field("maxLen")); + } + max_len__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::Pattern => { + if pattern__.is_some() { + return Err(serde::de::Error::duplicate_field("pattern")); + } + pattern__ = map_.next_value()?; + } + GeneratedField::Prefix => { + if prefix__.is_some() { + return Err(serde::de::Error::duplicate_field("prefix")); + } + prefix__ = + map_.next_value::<::std::option::Option<::pbjson::private::BytesDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::Suffix => { + if suffix__.is_some() { + return Err(serde::de::Error::duplicate_field("suffix")); + } + suffix__ = + map_.next_value::<::std::option::Option<::pbjson::private::BytesDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::Contains => { + if contains__.is_some() { + return Err(serde::de::Error::duplicate_field("contains")); + } + contains__ = + map_.next_value::<::std::option::Option<::pbjson::private::BytesDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Ip => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ip")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(bytes_rules::WellKnown::Ip); + } + GeneratedField::Ipv4 => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv4")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(bytes_rules::WellKnown::Ipv4); + } + GeneratedField::Ipv6 => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv6")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(bytes_rules::WellKnown::Ipv6); + } + } + } + Ok(BytesRules { + r#const: r#const__, + len: len__, + min_len: min_len__, + max_len: max_len__, + pattern: pattern__, + prefix: prefix__, + suffix: suffix__, + contains: contains__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + well_known: well_known__, + }) + } + } + deserializer.deserialize_struct("buf.validate.BytesRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DoubleRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if self.finite.is_some() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.DoubleRules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if let Some(v) = self.finite.as_ref() { + struct_ser.serialize_field("finite", v)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + double_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + double_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + double_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + double_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DoubleRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "finite", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Finite, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "finite" => Ok(GeneratedField::Finite), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DoubleRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.DoubleRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut finite__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Finite => { + if finite__.is_some() { + return Err(serde::de::Error::duplicate_field("finite")); + } + finite__ = map_.next_value()?; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| double_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| double_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| double_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| double_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(DoubleRules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + finite: finite__, + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.DoubleRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DurationRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.DurationRules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + duration_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + duration_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + duration_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + duration_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DurationRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DurationRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.DurationRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = map_.next_value()?; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = Some(map_.next_value()?); + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = Some(map_.next_value()?); + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = Some(map_.next_value()?); + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<_>>()?.map(duration_rules::LessThan::Lt) +; + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<_>>()?.map(duration_rules::LessThan::Lte) +; + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<_>>()?.map(duration_rules::GreaterThan::Gt) +; + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<_>>()?.map(duration_rules::GreaterThan::Gte) +; + } + } + } + Ok(DurationRules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.DurationRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for EnumRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if self.defined_only.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.EnumRules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if let Some(v) = self.defined_only.as_ref() { + struct_ser.serialize_field("definedOnly", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for EnumRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "defined_only", + "definedOnly", + "in", + "not_in", + "notIn", + "example", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + DefinedOnly, + In, + NotIn, + Example, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "definedOnly" | "defined_only" => Ok(GeneratedField::DefinedOnly), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = EnumRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.EnumRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut defined_only__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::DefinedOnly => { + if defined_only__.is_some() { + return Err(serde::de::Error::duplicate_field("definedOnly")); + } + defined_only__ = map_.next_value()?; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + } + } + Ok(EnumRules { + r#const: r#const__, + defined_only: defined_only__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("buf.validate.EnumRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FieldPath { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.elements.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.FieldPath", len)?; + if !self.elements.is_empty() { + struct_ser.serialize_field("elements", &self.elements)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FieldPath { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "elements", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Elements, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "elements" => Ok(GeneratedField::Elements), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FieldPath; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.FieldPath") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut elements__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Elements => { + if elements__.is_some() { + return Err(serde::de::Error::duplicate_field("elements")); + } + elements__ = Some(map_.next_value()?); + } + } + } + Ok(FieldPath { + elements: elements__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("buf.validate.FieldPath", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FieldPathElement { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.field_number.is_some() { + len += 1; + } + if self.field_name.is_some() { + len += 1; + } + if self.field_type.is_some() { + len += 1; + } + if self.key_type.is_some() { + len += 1; + } + if self.value_type.is_some() { + len += 1; + } + if self.subscript.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.FieldPathElement", len)?; + if let Some(v) = self.field_number.as_ref() { + struct_ser.serialize_field("fieldNumber", v)?; + } + if let Some(v) = self.field_name.as_ref() { + struct_ser.serialize_field("fieldName", v)?; + } + if let Some(v) = self.field_type.as_ref() { + let v = ::pbjson_types::field_descriptor_proto::Type::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("fieldType", &v)?; + } + if let Some(v) = self.key_type.as_ref() { + let v = ::pbjson_types::field_descriptor_proto::Type::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("keyType", &v)?; + } + if let Some(v) = self.value_type.as_ref() { + let v = ::pbjson_types::field_descriptor_proto::Type::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("valueType", &v)?; + } + if let Some(v) = self.subscript.as_ref() { + match v { + field_path_element::Subscript::Index(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("index", ToString::to_string(&v).as_str())?; + } + field_path_element::Subscript::BoolKey(v) => { + struct_ser.serialize_field("boolKey", v)?; + } + field_path_element::Subscript::IntKey(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("intKey", ToString::to_string(&v).as_str())?; + } + field_path_element::Subscript::UintKey(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("uintKey", ToString::to_string(&v).as_str())?; + } + field_path_element::Subscript::StringKey(v) => { + struct_ser.serialize_field("stringKey", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FieldPathElement { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "field_number", + "fieldNumber", + "field_name", + "fieldName", + "field_type", + "fieldType", + "key_type", + "keyType", + "value_type", + "valueType", + "index", + "bool_key", + "boolKey", + "int_key", + "intKey", + "uint_key", + "uintKey", + "string_key", + "stringKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FieldNumber, + FieldName, + FieldType, + KeyType, + ValueType, + Index, + BoolKey, + IntKey, + UintKey, + StringKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "fieldNumber" | "field_number" => Ok(GeneratedField::FieldNumber), + "fieldName" | "field_name" => Ok(GeneratedField::FieldName), + "fieldType" | "field_type" => Ok(GeneratedField::FieldType), + "keyType" | "key_type" => Ok(GeneratedField::KeyType), + "valueType" | "value_type" => Ok(GeneratedField::ValueType), + "index" => Ok(GeneratedField::Index), + "boolKey" | "bool_key" => Ok(GeneratedField::BoolKey), + "intKey" | "int_key" => Ok(GeneratedField::IntKey), + "uintKey" | "uint_key" => Ok(GeneratedField::UintKey), + "stringKey" | "string_key" => Ok(GeneratedField::StringKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FieldPathElement; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.FieldPathElement") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut field_number__ = None; + let mut field_name__ = None; + let mut field_type__ = None; + let mut key_type__ = None; + let mut value_type__ = None; + let mut subscript__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FieldNumber => { + if field_number__.is_some() { + return Err(serde::de::Error::duplicate_field("fieldNumber")); + } + field_number__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::FieldName => { + if field_name__.is_some() { + return Err(serde::de::Error::duplicate_field("fieldName")); + } + field_name__ = map_.next_value()?; + } + GeneratedField::FieldType => { + if field_type__.is_some() { + return Err(serde::de::Error::duplicate_field("fieldType")); + } + field_type__ = map_.next_value::<::std::option::Option<::pbjson_types::field_descriptor_proto::Type>>()?.map(|x| x as i32); + } + GeneratedField::KeyType => { + if key_type__.is_some() { + return Err(serde::de::Error::duplicate_field("keyType")); + } + key_type__ = map_.next_value::<::std::option::Option<::pbjson_types::field_descriptor_proto::Type>>()?.map(|x| x as i32); + } + GeneratedField::ValueType => { + if value_type__.is_some() { + return Err(serde::de::Error::duplicate_field("valueType")); + } + value_type__ = map_.next_value::<::std::option::Option<::pbjson_types::field_descriptor_proto::Type>>()?.map(|x| x as i32); + } + GeneratedField::Index => { + if subscript__.is_some() { + return Err(serde::de::Error::duplicate_field("index")); + } + subscript__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| field_path_element::Subscript::Index(x.0)); + } + GeneratedField::BoolKey => { + if subscript__.is_some() { + return Err(serde::de::Error::duplicate_field("boolKey")); + } + subscript__ = map_.next_value::<::std::option::Option<_>>()?.map(field_path_element::Subscript::BoolKey); + } + GeneratedField::IntKey => { + if subscript__.is_some() { + return Err(serde::de::Error::duplicate_field("intKey")); + } + subscript__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| field_path_element::Subscript::IntKey(x.0)); + } + GeneratedField::UintKey => { + if subscript__.is_some() { + return Err(serde::de::Error::duplicate_field("uintKey")); + } + subscript__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| field_path_element::Subscript::UintKey(x.0)); + } + GeneratedField::StringKey => { + if subscript__.is_some() { + return Err(serde::de::Error::duplicate_field("stringKey")); + } + subscript__ = map_.next_value::<::std::option::Option<_>>()?.map(field_path_element::Subscript::StringKey); + } + } + } + Ok(FieldPathElement { + field_number: field_number__, + field_name: field_name__, + field_type: field_type__, + key_type: key_type__, + value_type: value_type__, + subscript: subscript__, + }) + } + } + deserializer.deserialize_struct("buf.validate.FieldPathElement", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FieldRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.cel.is_empty() { + len += 1; + } + if self.required.is_some() { + len += 1; + } + if self.ignore.is_some() { + len += 1; + } + if self.r#type.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.FieldRules", len)?; + if !self.cel.is_empty() { + struct_ser.serialize_field("cel", &self.cel)?; + } + if let Some(v) = self.required.as_ref() { + struct_ser.serialize_field("required", v)?; + } + if let Some(v) = self.ignore.as_ref() { + let v = Ignore::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("ignore", &v)?; + } + if let Some(v) = self.r#type.as_ref() { + match v { + field_rules::Type::Float(v) => { + struct_ser.serialize_field("float", v)?; + } + field_rules::Type::Double(v) => { + struct_ser.serialize_field("double", v)?; + } + field_rules::Type::Int32(v) => { + struct_ser.serialize_field("int32", v)?; + } + field_rules::Type::Int64(v) => { + struct_ser.serialize_field("int64", v)?; + } + field_rules::Type::Uint32(v) => { + struct_ser.serialize_field("uint32", v)?; + } + field_rules::Type::Uint64(v) => { + struct_ser.serialize_field("uint64", v)?; + } + field_rules::Type::Sint32(v) => { + struct_ser.serialize_field("sint32", v)?; + } + field_rules::Type::Sint64(v) => { + struct_ser.serialize_field("sint64", v)?; + } + field_rules::Type::Fixed32(v) => { + struct_ser.serialize_field("fixed32", v)?; + } + field_rules::Type::Fixed64(v) => { + struct_ser.serialize_field("fixed64", v)?; + } + field_rules::Type::Sfixed32(v) => { + struct_ser.serialize_field("sfixed32", v)?; + } + field_rules::Type::Sfixed64(v) => { + struct_ser.serialize_field("sfixed64", v)?; + } + field_rules::Type::Bool(v) => { + struct_ser.serialize_field("bool", v)?; + } + field_rules::Type::String(v) => { + struct_ser.serialize_field("string", v)?; + } + field_rules::Type::Bytes(v) => { + struct_ser.serialize_field("bytes", v)?; + } + field_rules::Type::Enum(v) => { + struct_ser.serialize_field("enum", v)?; + } + field_rules::Type::Repeated(v) => { + struct_ser.serialize_field("repeated", v)?; + } + field_rules::Type::Map(v) => { + struct_ser.serialize_field("map", v)?; + } + field_rules::Type::Any(v) => { + struct_ser.serialize_field("any", v)?; + } + field_rules::Type::Duration(v) => { + struct_ser.serialize_field("duration", v)?; + } + field_rules::Type::Timestamp(v) => { + struct_ser.serialize_field("timestamp", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FieldRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "cel", + "required", + "ignore", + "float", + "double", + "int32", + "int64", + "uint32", + "uint64", + "sint32", + "sint64", + "fixed32", + "fixed64", + "sfixed32", + "sfixed64", + "bool", + "string", + "bytes", + "enum", + "repeated", + "map", + "any", + "duration", + "timestamp", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Cel, + Required, + Ignore, + Float, + Double, + Int32, + Int64, + Uint32, + Uint64, + Sint32, + Sint64, + Fixed32, + Fixed64, + Sfixed32, + Sfixed64, + Bool, + String, + Bytes, + Enum, + Repeated, + Map, + Any, + Duration, + Timestamp, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "cel" => Ok(GeneratedField::Cel), + "required" => Ok(GeneratedField::Required), + "ignore" => Ok(GeneratedField::Ignore), + "float" => Ok(GeneratedField::Float), + "double" => Ok(GeneratedField::Double), + "int32" => Ok(GeneratedField::Int32), + "int64" => Ok(GeneratedField::Int64), + "uint32" => Ok(GeneratedField::Uint32), + "uint64" => Ok(GeneratedField::Uint64), + "sint32" => Ok(GeneratedField::Sint32), + "sint64" => Ok(GeneratedField::Sint64), + "fixed32" => Ok(GeneratedField::Fixed32), + "fixed64" => Ok(GeneratedField::Fixed64), + "sfixed32" => Ok(GeneratedField::Sfixed32), + "sfixed64" => Ok(GeneratedField::Sfixed64), + "bool" => Ok(GeneratedField::Bool), + "string" => Ok(GeneratedField::String), + "bytes" => Ok(GeneratedField::Bytes), + "enum" => Ok(GeneratedField::Enum), + "repeated" => Ok(GeneratedField::Repeated), + "map" => Ok(GeneratedField::Map), + "any" => Ok(GeneratedField::Any), + "duration" => Ok(GeneratedField::Duration), + "timestamp" => Ok(GeneratedField::Timestamp), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FieldRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.FieldRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut cel__ = None; + let mut required__ = None; + let mut ignore__ = None; + let mut r#type__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Cel => { + if cel__.is_some() { + return Err(serde::de::Error::duplicate_field("cel")); + } + cel__ = Some(map_.next_value()?); + } + GeneratedField::Required => { + if required__.is_some() { + return Err(serde::de::Error::duplicate_field("required")); + } + required__ = map_.next_value()?; + } + GeneratedField::Ignore => { + if ignore__.is_some() { + return Err(serde::de::Error::duplicate_field("ignore")); + } + ignore__ = map_.next_value::<::std::option::Option>()?.map(|x| x as i32); + } + GeneratedField::Float => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("float")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Float) +; + } + GeneratedField::Double => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("double")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Double) +; + } + GeneratedField::Int32 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("int32")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Int32) +; + } + GeneratedField::Int64 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("int64")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Int64) +; + } + GeneratedField::Uint32 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("uint32")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Uint32) +; + } + GeneratedField::Uint64 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("uint64")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Uint64) +; + } + GeneratedField::Sint32 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("sint32")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Sint32) +; + } + GeneratedField::Sint64 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("sint64")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Sint64) +; + } + GeneratedField::Fixed32 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("fixed32")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Fixed32) +; + } + GeneratedField::Fixed64 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("fixed64")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Fixed64) +; + } + GeneratedField::Sfixed32 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("sfixed32")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Sfixed32) +; + } + GeneratedField::Sfixed64 => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("sfixed64")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Sfixed64) +; + } + GeneratedField::Bool => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("bool")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Bool) +; + } + GeneratedField::String => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("string")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::String) +; + } + GeneratedField::Bytes => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("bytes")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Bytes) +; + } + GeneratedField::Enum => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("enum")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Enum) +; + } + GeneratedField::Repeated => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("repeated")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Repeated) +; + } + GeneratedField::Map => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("map")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Map) +; + } + GeneratedField::Any => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("any")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Any) +; + } + GeneratedField::Duration => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("duration")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Duration) +; + } + GeneratedField::Timestamp => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + r#type__ = map_.next_value::<::std::option::Option<_>>()?.map(field_rules::Type::Timestamp) +; + } + } + } + Ok(FieldRules { + cel: cel__.unwrap_or_default(), + required: required__, + ignore: ignore__, + r#type: r#type__, + }) + } + } + deserializer.deserialize_struct("buf.validate.FieldRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Fixed32Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.Fixed32Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + fixed32_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + fixed32_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + fixed32_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + fixed32_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Fixed32Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Fixed32Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.Fixed32Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed32_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed32_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed32_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed32_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(Fixed32Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.Fixed32Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Fixed64Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.Fixed64Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("const", ToString::to_string(&v).as_str())?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in.iter().map(ToString::to_string).collect::>())?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in.iter().map(ToString::to_string).collect::>())?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example.iter().map(ToString::to_string).collect::>())?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + fixed64_rules::LessThan::Lt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lt", ToString::to_string(&v).as_str())?; + } + fixed64_rules::LessThan::Lte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lte", ToString::to_string(&v).as_str())?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + fixed64_rules::GreaterThan::Gt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gt", ToString::to_string(&v).as_str())?; + } + fixed64_rules::GreaterThan::Gte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gte", ToString::to_string(&v).as_str())?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Fixed64Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Fixed64Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.Fixed64Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed64_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed64_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed64_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| fixed64_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(Fixed64Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.Fixed64Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FloatRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if self.finite.is_some() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.FloatRules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if let Some(v) = self.finite.as_ref() { + struct_ser.serialize_field("finite", v)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + float_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + float_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + float_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + float_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FloatRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "finite", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Finite, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "finite" => Ok(GeneratedField::Finite), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FloatRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.FloatRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut finite__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Finite => { + if finite__.is_some() { + return Err(serde::de::Error::duplicate_field("finite")); + } + finite__ = map_.next_value()?; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| float_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| float_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| float_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| float_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(FloatRules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + finite: finite__, + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.FloatRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Ignore { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "IGNORE_UNSPECIFIED", + Self::IfZeroValue => "IGNORE_IF_ZERO_VALUE", + Self::Always => "IGNORE_ALWAYS", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for Ignore { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "IGNORE_UNSPECIFIED", + "IGNORE_IF_ZERO_VALUE", + "IGNORE_ALWAYS", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Ignore; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "IGNORE_UNSPECIFIED" => Ok(Ignore::Unspecified), + "IGNORE_IF_ZERO_VALUE" => Ok(Ignore::IfZeroValue), + "IGNORE_ALWAYS" => Ok(Ignore::Always), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for Int32Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.Int32Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + int32_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + int32_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + int32_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + int32_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Int32Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Int32Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.Int32Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int32_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int32_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int32_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int32_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(Int32Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.Int32Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Int64Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.Int64Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("const", ToString::to_string(&v).as_str())?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in.iter().map(ToString::to_string).collect::>())?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in.iter().map(ToString::to_string).collect::>())?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example.iter().map(ToString::to_string).collect::>())?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + int64_rules::LessThan::Lt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lt", ToString::to_string(&v).as_str())?; + } + int64_rules::LessThan::Lte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lte", ToString::to_string(&v).as_str())?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + int64_rules::GreaterThan::Gt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gt", ToString::to_string(&v).as_str())?; + } + int64_rules::GreaterThan::Gte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gte", ToString::to_string(&v).as_str())?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Int64Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Int64Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.Int64Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int64_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int64_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int64_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| int64_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(Int64Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.Int64Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for KnownRegex { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "KNOWN_REGEX_UNSPECIFIED", + Self::HttpHeaderName => "KNOWN_REGEX_HTTP_HEADER_NAME", + Self::HttpHeaderValue => "KNOWN_REGEX_HTTP_HEADER_VALUE", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for KnownRegex { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "KNOWN_REGEX_UNSPECIFIED", + "KNOWN_REGEX_HTTP_HEADER_NAME", + "KNOWN_REGEX_HTTP_HEADER_VALUE", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = KnownRegex; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "KNOWN_REGEX_UNSPECIFIED" => Ok(KnownRegex::Unspecified), + "KNOWN_REGEX_HTTP_HEADER_NAME" => Ok(KnownRegex::HttpHeaderName), + "KNOWN_REGEX_HTTP_HEADER_VALUE" => Ok(KnownRegex::HttpHeaderValue), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for MapRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.min_pairs.is_some() { + len += 1; + } + if self.max_pairs.is_some() { + len += 1; + } + if self.keys.is_some() { + len += 1; + } + if self.values.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.MapRules", len)?; + if let Some(v) = self.min_pairs.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("minPairs", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.max_pairs.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("maxPairs", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.keys.as_ref() { + struct_ser.serialize_field("keys", v)?; + } + if let Some(v) = self.values.as_ref() { + struct_ser.serialize_field("values", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MapRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "min_pairs", + "minPairs", + "max_pairs", + "maxPairs", + "keys", + "values", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + MinPairs, + MaxPairs, + Keys, + Values, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "minPairs" | "min_pairs" => Ok(GeneratedField::MinPairs), + "maxPairs" | "max_pairs" => Ok(GeneratedField::MaxPairs), + "keys" => Ok(GeneratedField::Keys), + "values" => Ok(GeneratedField::Values), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MapRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.MapRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut min_pairs__ = None; + let mut max_pairs__ = None; + let mut keys__ = None; + let mut values__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::MinPairs => { + if min_pairs__.is_some() { + return Err(serde::de::Error::duplicate_field("minPairs")); + } + min_pairs__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MaxPairs => { + if max_pairs__.is_some() { + return Err(serde::de::Error::duplicate_field("maxPairs")); + } + max_pairs__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::Keys => { + if keys__.is_some() { + return Err(serde::de::Error::duplicate_field("keys")); + } + keys__ = map_.next_value()?; + } + GeneratedField::Values => { + if values__.is_some() { + return Err(serde::de::Error::duplicate_field("values")); + } + values__ = map_.next_value()?; + } + } + } + Ok(MapRules { + min_pairs: min_pairs__, + max_pairs: max_pairs__, + keys: keys__, + values: values__, + }) + } + } + deserializer.deserialize_struct("buf.validate.MapRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MessageOneofRule { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.fields.is_empty() { + len += 1; + } + if self.required.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.MessageOneofRule", len)?; + if !self.fields.is_empty() { + struct_ser.serialize_field("fields", &self.fields)?; + } + if let Some(v) = self.required.as_ref() { + struct_ser.serialize_field("required", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MessageOneofRule { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "fields", + "required", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Fields, + Required, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "fields" => Ok(GeneratedField::Fields), + "required" => Ok(GeneratedField::Required), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MessageOneofRule; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.MessageOneofRule") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut fields__ = None; + let mut required__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Fields => { + if fields__.is_some() { + return Err(serde::de::Error::duplicate_field("fields")); + } + fields__ = Some(map_.next_value()?); + } + GeneratedField::Required => { + if required__.is_some() { + return Err(serde::de::Error::duplicate_field("required")); + } + required__ = map_.next_value()?; + } + } + } + Ok(MessageOneofRule { + fields: fields__.unwrap_or_default(), + required: required__, + }) + } + } + deserializer.deserialize_struct("buf.validate.MessageOneofRule", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MessageRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.cel.is_empty() { + len += 1; + } + if !self.oneof.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.MessageRules", len)?; + if !self.cel.is_empty() { + struct_ser.serialize_field("cel", &self.cel)?; + } + if !self.oneof.is_empty() { + struct_ser.serialize_field("oneof", &self.oneof)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MessageRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "cel", + "oneof", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Cel, + Oneof, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "cel" => Ok(GeneratedField::Cel), + "oneof" => Ok(GeneratedField::Oneof), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MessageRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.MessageRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut cel__ = None; + let mut oneof__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Cel => { + if cel__.is_some() { + return Err(serde::de::Error::duplicate_field("cel")); + } + cel__ = Some(map_.next_value()?); + } + GeneratedField::Oneof => { + if oneof__.is_some() { + return Err(serde::de::Error::duplicate_field("oneof")); + } + oneof__ = Some(map_.next_value()?); + } + } + } + Ok(MessageRules { + cel: cel__.unwrap_or_default(), + oneof: oneof__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("buf.validate.MessageRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for OneofRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.required.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.OneofRules", len)?; + if let Some(v) = self.required.as_ref() { + struct_ser.serialize_field("required", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for OneofRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "required", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Required, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "required" => Ok(GeneratedField::Required), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = OneofRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.OneofRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut required__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Required => { + if required__.is_some() { + return Err(serde::de::Error::duplicate_field("required")); + } + required__ = map_.next_value()?; + } + } + } + Ok(OneofRules { + required: required__, + }) + } + } + deserializer.deserialize_struct("buf.validate.OneofRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for PredefinedRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.cel.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.PredefinedRules", len)?; + if !self.cel.is_empty() { + struct_ser.serialize_field("cel", &self.cel)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for PredefinedRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "cel", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Cel, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "cel" => Ok(GeneratedField::Cel), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = PredefinedRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.PredefinedRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut cel__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Cel => { + if cel__.is_some() { + return Err(serde::de::Error::duplicate_field("cel")); + } + cel__ = Some(map_.next_value()?); + } + } + } + Ok(PredefinedRules { + cel: cel__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("buf.validate.PredefinedRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for RepeatedRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.min_items.is_some() { + len += 1; + } + if self.max_items.is_some() { + len += 1; + } + if self.unique.is_some() { + len += 1; + } + if self.items.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.RepeatedRules", len)?; + if let Some(v) = self.min_items.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("minItems", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.max_items.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("maxItems", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.unique.as_ref() { + struct_ser.serialize_field("unique", v)?; + } + if let Some(v) = self.items.as_ref() { + struct_ser.serialize_field("items", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for RepeatedRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "min_items", + "minItems", + "max_items", + "maxItems", + "unique", + "items", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + MinItems, + MaxItems, + Unique, + Items, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "minItems" | "min_items" => Ok(GeneratedField::MinItems), + "maxItems" | "max_items" => Ok(GeneratedField::MaxItems), + "unique" => Ok(GeneratedField::Unique), + "items" => Ok(GeneratedField::Items), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = RepeatedRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.RepeatedRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut min_items__ = None; + let mut max_items__ = None; + let mut unique__ = None; + let mut items__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::MinItems => { + if min_items__.is_some() { + return Err(serde::de::Error::duplicate_field("minItems")); + } + min_items__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MaxItems => { + if max_items__.is_some() { + return Err(serde::de::Error::duplicate_field("maxItems")); + } + max_items__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::Unique => { + if unique__.is_some() { + return Err(serde::de::Error::duplicate_field("unique")); + } + unique__ = map_.next_value()?; + } + GeneratedField::Items => { + if items__.is_some() { + return Err(serde::de::Error::duplicate_field("items")); + } + items__ = map_.next_value()?; + } + } + } + Ok(RepeatedRules { + min_items: min_items__, + max_items: max_items__, + unique: unique__, + items: items__, + }) + } + } + deserializer.deserialize_struct("buf.validate.RepeatedRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Rule { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.id.is_some() { + len += 1; + } + if self.message.is_some() { + len += 1; + } + if self.expression.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.Rule", len)?; + if let Some(v) = self.id.as_ref() { + struct_ser.serialize_field("id", v)?; + } + if let Some(v) = self.message.as_ref() { + struct_ser.serialize_field("message", v)?; + } + if let Some(v) = self.expression.as_ref() { + struct_ser.serialize_field("expression", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Rule { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "id", + "message", + "expression", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Id, + Message, + Expression, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "id" => Ok(GeneratedField::Id), + "message" => Ok(GeneratedField::Message), + "expression" => Ok(GeneratedField::Expression), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Rule; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.Rule") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut id__ = None; + let mut message__ = None; + let mut expression__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Id => { + if id__.is_some() { + return Err(serde::de::Error::duplicate_field("id")); + } + id__ = map_.next_value()?; + } + GeneratedField::Message => { + if message__.is_some() { + return Err(serde::de::Error::duplicate_field("message")); + } + message__ = map_.next_value()?; + } + GeneratedField::Expression => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("expression")); + } + expression__ = map_.next_value()?; + } + } + } + Ok(Rule { + id: id__, + message: message__, + expression: expression__, + }) + } + } + deserializer.deserialize_struct("buf.validate.Rule", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SFixed32Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.SFixed32Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + s_fixed32_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + s_fixed32_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + s_fixed32_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + s_fixed32_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SFixed32Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SFixed32Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.SFixed32Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed32_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed32_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed32_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed32_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(SFixed32Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.SFixed32Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SFixed64Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.SFixed64Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("const", ToString::to_string(&v).as_str())?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in.iter().map(ToString::to_string).collect::>())?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in.iter().map(ToString::to_string).collect::>())?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example.iter().map(ToString::to_string).collect::>())?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + s_fixed64_rules::LessThan::Lt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lt", ToString::to_string(&v).as_str())?; + } + s_fixed64_rules::LessThan::Lte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lte", ToString::to_string(&v).as_str())?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + s_fixed64_rules::GreaterThan::Gt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gt", ToString::to_string(&v).as_str())?; + } + s_fixed64_rules::GreaterThan::Gte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gte", ToString::to_string(&v).as_str())?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SFixed64Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SFixed64Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.SFixed64Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed64_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed64_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed64_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_fixed64_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(SFixed64Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.SFixed64Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SInt32Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.SInt32Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + s_int32_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + s_int32_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + s_int32_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + s_int32_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SInt32Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SInt32Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.SInt32Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int32_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int32_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int32_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int32_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(SInt32Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.SInt32Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SInt64Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.SInt64Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("const", ToString::to_string(&v).as_str())?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in.iter().map(ToString::to_string).collect::>())?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in.iter().map(ToString::to_string).collect::>())?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example.iter().map(ToString::to_string).collect::>())?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + s_int64_rules::LessThan::Lt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lt", ToString::to_string(&v).as_str())?; + } + s_int64_rules::LessThan::Lte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lte", ToString::to_string(&v).as_str())?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + s_int64_rules::GreaterThan::Gt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gt", ToString::to_string(&v).as_str())?; + } + s_int64_rules::GreaterThan::Gte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gte", ToString::to_string(&v).as_str())?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SInt64Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SInt64Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.SInt64Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int64_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int64_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int64_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| s_int64_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(SInt64Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.SInt64Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for StringRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if self.len.is_some() { + len += 1; + } + if self.min_len.is_some() { + len += 1; + } + if self.max_len.is_some() { + len += 1; + } + if self.len_bytes.is_some() { + len += 1; + } + if self.min_bytes.is_some() { + len += 1; + } + if self.max_bytes.is_some() { + len += 1; + } + if self.pattern.is_some() { + len += 1; + } + if self.prefix.is_some() { + len += 1; + } + if self.suffix.is_some() { + len += 1; + } + if self.contains.is_some() { + len += 1; + } + if self.not_contains.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if self.strict.is_some() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.well_known.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.StringRules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if let Some(v) = self.len.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("len", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.min_len.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("minLen", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.max_len.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("maxLen", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.len_bytes.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lenBytes", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.min_bytes.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("minBytes", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.max_bytes.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("maxBytes", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.pattern.as_ref() { + struct_ser.serialize_field("pattern", v)?; + } + if let Some(v) = self.prefix.as_ref() { + struct_ser.serialize_field("prefix", v)?; + } + if let Some(v) = self.suffix.as_ref() { + struct_ser.serialize_field("suffix", v)?; + } + if let Some(v) = self.contains.as_ref() { + struct_ser.serialize_field("contains", v)?; + } + if let Some(v) = self.not_contains.as_ref() { + struct_ser.serialize_field("notContains", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if let Some(v) = self.strict.as_ref() { + struct_ser.serialize_field("strict", v)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.well_known.as_ref() { + match v { + string_rules::WellKnown::Email(v) => { + struct_ser.serialize_field("email", v)?; + } + string_rules::WellKnown::Hostname(v) => { + struct_ser.serialize_field("hostname", v)?; + } + string_rules::WellKnown::Ip(v) => { + struct_ser.serialize_field("ip", v)?; + } + string_rules::WellKnown::Ipv4(v) => { + struct_ser.serialize_field("ipv4", v)?; + } + string_rules::WellKnown::Ipv6(v) => { + struct_ser.serialize_field("ipv6", v)?; + } + string_rules::WellKnown::Uri(v) => { + struct_ser.serialize_field("uri", v)?; + } + string_rules::WellKnown::UriRef(v) => { + struct_ser.serialize_field("uriRef", v)?; + } + string_rules::WellKnown::Address(v) => { + struct_ser.serialize_field("address", v)?; + } + string_rules::WellKnown::Uuid(v) => { + struct_ser.serialize_field("uuid", v)?; + } + string_rules::WellKnown::Tuuid(v) => { + struct_ser.serialize_field("tuuid", v)?; + } + string_rules::WellKnown::IpWithPrefixlen(v) => { + struct_ser.serialize_field("ipWithPrefixlen", v)?; + } + string_rules::WellKnown::Ipv4WithPrefixlen(v) => { + struct_ser.serialize_field("ipv4WithPrefixlen", v)?; + } + string_rules::WellKnown::Ipv6WithPrefixlen(v) => { + struct_ser.serialize_field("ipv6WithPrefixlen", v)?; + } + string_rules::WellKnown::IpPrefix(v) => { + struct_ser.serialize_field("ipPrefix", v)?; + } + string_rules::WellKnown::Ipv4Prefix(v) => { + struct_ser.serialize_field("ipv4Prefix", v)?; + } + string_rules::WellKnown::Ipv6Prefix(v) => { + struct_ser.serialize_field("ipv6Prefix", v)?; + } + string_rules::WellKnown::HostAndPort(v) => { + struct_ser.serialize_field("hostAndPort", v)?; + } + string_rules::WellKnown::WellKnownRegex(v) => { + let v = KnownRegex::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("wellKnownRegex", &v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for StringRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "len", + "min_len", + "minLen", + "max_len", + "maxLen", + "len_bytes", + "lenBytes", + "min_bytes", + "minBytes", + "max_bytes", + "maxBytes", + "pattern", + "prefix", + "suffix", + "contains", + "not_contains", + "notContains", + "in", + "not_in", + "notIn", + "strict", + "example", + "email", + "hostname", + "ip", + "ipv4", + "ipv6", + "uri", + "uri_ref", + "uriRef", + "address", + "uuid", + "tuuid", + "ip_with_prefixlen", + "ipWithPrefixlen", + "ipv4_with_prefixlen", + "ipv4WithPrefixlen", + "ipv6_with_prefixlen", + "ipv6WithPrefixlen", + "ip_prefix", + "ipPrefix", + "ipv4_prefix", + "ipv4Prefix", + "ipv6_prefix", + "ipv6Prefix", + "host_and_port", + "hostAndPort", + "well_known_regex", + "wellKnownRegex", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + Len, + MinLen, + MaxLen, + LenBytes, + MinBytes, + MaxBytes, + Pattern, + Prefix, + Suffix, + Contains, + NotContains, + In, + NotIn, + Strict, + Example, + Email, + Hostname, + Ip, + Ipv4, + Ipv6, + Uri, + UriRef, + Address, + Uuid, + Tuuid, + IpWithPrefixlen, + Ipv4WithPrefixlen, + Ipv6WithPrefixlen, + IpPrefix, + Ipv4Prefix, + Ipv6Prefix, + HostAndPort, + WellKnownRegex, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "len" => Ok(GeneratedField::Len), + "minLen" | "min_len" => Ok(GeneratedField::MinLen), + "maxLen" | "max_len" => Ok(GeneratedField::MaxLen), + "lenBytes" | "len_bytes" => Ok(GeneratedField::LenBytes), + "minBytes" | "min_bytes" => Ok(GeneratedField::MinBytes), + "maxBytes" | "max_bytes" => Ok(GeneratedField::MaxBytes), + "pattern" => Ok(GeneratedField::Pattern), + "prefix" => Ok(GeneratedField::Prefix), + "suffix" => Ok(GeneratedField::Suffix), + "contains" => Ok(GeneratedField::Contains), + "notContains" | "not_contains" => Ok(GeneratedField::NotContains), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "strict" => Ok(GeneratedField::Strict), + "example" => Ok(GeneratedField::Example), + "email" => Ok(GeneratedField::Email), + "hostname" => Ok(GeneratedField::Hostname), + "ip" => Ok(GeneratedField::Ip), + "ipv4" => Ok(GeneratedField::Ipv4), + "ipv6" => Ok(GeneratedField::Ipv6), + "uri" => Ok(GeneratedField::Uri), + "uriRef" | "uri_ref" => Ok(GeneratedField::UriRef), + "address" => Ok(GeneratedField::Address), + "uuid" => Ok(GeneratedField::Uuid), + "tuuid" => Ok(GeneratedField::Tuuid), + "ipWithPrefixlen" | "ip_with_prefixlen" => Ok(GeneratedField::IpWithPrefixlen), + "ipv4WithPrefixlen" | "ipv4_with_prefixlen" => Ok(GeneratedField::Ipv4WithPrefixlen), + "ipv6WithPrefixlen" | "ipv6_with_prefixlen" => Ok(GeneratedField::Ipv6WithPrefixlen), + "ipPrefix" | "ip_prefix" => Ok(GeneratedField::IpPrefix), + "ipv4Prefix" | "ipv4_prefix" => Ok(GeneratedField::Ipv4Prefix), + "ipv6Prefix" | "ipv6_prefix" => Ok(GeneratedField::Ipv6Prefix), + "hostAndPort" | "host_and_port" => Ok(GeneratedField::HostAndPort), + "wellKnownRegex" | "well_known_regex" => Ok(GeneratedField::WellKnownRegex), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = StringRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.StringRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut len__ = None; + let mut min_len__ = None; + let mut max_len__ = None; + let mut len_bytes__ = None; + let mut min_bytes__ = None; + let mut max_bytes__ = None; + let mut pattern__ = None; + let mut prefix__ = None; + let mut suffix__ = None; + let mut contains__ = None; + let mut not_contains__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut strict__ = None; + let mut example__ = None; + let mut well_known__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = map_.next_value()?; + } + GeneratedField::Len => { + if len__.is_some() { + return Err(serde::de::Error::duplicate_field("len")); + } + len__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MinLen => { + if min_len__.is_some() { + return Err(serde::de::Error::duplicate_field("minLen")); + } + min_len__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MaxLen => { + if max_len__.is_some() { + return Err(serde::de::Error::duplicate_field("maxLen")); + } + max_len__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::LenBytes => { + if len_bytes__.is_some() { + return Err(serde::de::Error::duplicate_field("lenBytes")); + } + len_bytes__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MinBytes => { + if min_bytes__.is_some() { + return Err(serde::de::Error::duplicate_field("minBytes")); + } + min_bytes__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::MaxBytes => { + if max_bytes__.is_some() { + return Err(serde::de::Error::duplicate_field("maxBytes")); + } + max_bytes__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::Pattern => { + if pattern__.is_some() { + return Err(serde::de::Error::duplicate_field("pattern")); + } + pattern__ = map_.next_value()?; + } + GeneratedField::Prefix => { + if prefix__.is_some() { + return Err(serde::de::Error::duplicate_field("prefix")); + } + prefix__ = map_.next_value()?; + } + GeneratedField::Suffix => { + if suffix__.is_some() { + return Err(serde::de::Error::duplicate_field("suffix")); + } + suffix__ = map_.next_value()?; + } + GeneratedField::Contains => { + if contains__.is_some() { + return Err(serde::de::Error::duplicate_field("contains")); + } + contains__ = map_.next_value()?; + } + GeneratedField::NotContains => { + if not_contains__.is_some() { + return Err(serde::de::Error::duplicate_field("notContains")); + } + not_contains__ = map_.next_value()?; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = Some(map_.next_value()?); + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = Some(map_.next_value()?); + } + GeneratedField::Strict => { + if strict__.is_some() { + return Err(serde::de::Error::duplicate_field("strict")); + } + strict__ = map_.next_value()?; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = Some(map_.next_value()?); + } + GeneratedField::Email => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("email")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Email); + } + GeneratedField::Hostname => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("hostname")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Hostname); + } + GeneratedField::Ip => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ip")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Ip); + } + GeneratedField::Ipv4 => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv4")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Ipv4); + } + GeneratedField::Ipv6 => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv6")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Ipv6); + } + GeneratedField::Uri => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("uri")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Uri); + } + GeneratedField::UriRef => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("uriRef")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::UriRef); + } + GeneratedField::Address => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Address); + } + GeneratedField::Uuid => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("uuid")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Uuid); + } + GeneratedField::Tuuid => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("tuuid")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Tuuid); + } + GeneratedField::IpWithPrefixlen => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipWithPrefixlen")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::IpWithPrefixlen); + } + GeneratedField::Ipv4WithPrefixlen => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv4WithPrefixlen")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Ipv4WithPrefixlen); + } + GeneratedField::Ipv6WithPrefixlen => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv6WithPrefixlen")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Ipv6WithPrefixlen); + } + GeneratedField::IpPrefix => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipPrefix")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::IpPrefix); + } + GeneratedField::Ipv4Prefix => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv4Prefix")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Ipv4Prefix); + } + GeneratedField::Ipv6Prefix => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("ipv6Prefix")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::Ipv6Prefix); + } + GeneratedField::HostAndPort => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("hostAndPort")); + } + well_known__ = map_.next_value::<::std::option::Option<_>>()?.map(string_rules::WellKnown::HostAndPort); + } + GeneratedField::WellKnownRegex => { + if well_known__.is_some() { + return Err(serde::de::Error::duplicate_field("wellKnownRegex")); + } + well_known__ = map_.next_value::<::std::option::Option>()?.map(|x| string_rules::WellKnown::WellKnownRegex(x as i32)); + } + } + } + Ok(StringRules { + r#const: r#const__, + len: len__, + min_len: min_len__, + max_len: max_len__, + len_bytes: len_bytes__, + min_bytes: min_bytes__, + max_bytes: max_bytes__, + pattern: pattern__, + prefix: prefix__, + suffix: suffix__, + contains: contains__, + not_contains: not_contains__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + strict: strict__, + example: example__.unwrap_or_default(), + well_known: well_known__, + }) + } + } + deserializer.deserialize_struct("buf.validate.StringRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for TimestampRules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if self.within.is_some() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.TimestampRules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if let Some(v) = self.within.as_ref() { + struct_ser.serialize_field("within", v)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + timestamp_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + timestamp_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + timestamp_rules::LessThan::LtNow(v) => { + struct_ser.serialize_field("ltNow", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + timestamp_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + timestamp_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + timestamp_rules::GreaterThan::GtNow(v) => { + struct_ser.serialize_field("gtNow", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TimestampRules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "within", + "example", + "lt", + "lte", + "lt_now", + "ltNow", + "gt", + "gte", + "gt_now", + "gtNow", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + Within, + Example, + Lt, + Lte, + LtNow, + Gt, + Gte, + GtNow, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "within" => Ok(GeneratedField::Within), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "ltNow" | "lt_now" => Ok(GeneratedField::LtNow), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + "gtNow" | "gt_now" => Ok(GeneratedField::GtNow), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TimestampRules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.TimestampRules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut within__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = map_.next_value()?; + } + GeneratedField::Within => { + if within__.is_some() { + return Err(serde::de::Error::duplicate_field("within")); + } + within__ = map_.next_value()?; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = Some(map_.next_value()?); + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<_>>()?.map(timestamp_rules::LessThan::Lt) +; + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<_>>()?.map(timestamp_rules::LessThan::Lte) +; + } + GeneratedField::LtNow => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("ltNow")); + } + less_than__ = map_.next_value::<::std::option::Option<_>>()?.map(timestamp_rules::LessThan::LtNow); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<_>>()?.map(timestamp_rules::GreaterThan::Gt) +; + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<_>>()?.map(timestamp_rules::GreaterThan::Gte) +; + } + GeneratedField::GtNow => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gtNow")); + } + greater_than__ = map_.next_value::<::std::option::Option<_>>()?.map(timestamp_rules::GreaterThan::GtNow); + } + } + } + Ok(TimestampRules { + r#const: r#const__, + within: within__, + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.TimestampRules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UInt32Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.UInt32Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + struct_ser.serialize_field("const", v)?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in)?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in)?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example)?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + u_int32_rules::LessThan::Lt(v) => { + struct_ser.serialize_field("lt", v)?; + } + u_int32_rules::LessThan::Lte(v) => { + struct_ser.serialize_field("lte", v)?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + u_int32_rules::GreaterThan::Gt(v) => { + struct_ser.serialize_field("gt", v)?; + } + u_int32_rules::GreaterThan::Gte(v) => { + struct_ser.serialize_field("gte", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UInt32Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UInt32Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.UInt32Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int32_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int32_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int32_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int32_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(UInt32Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.UInt32Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UInt64Rules { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#const.is_some() { + len += 1; + } + if !self.r#in.is_empty() { + len += 1; + } + if !self.not_in.is_empty() { + len += 1; + } + if !self.example.is_empty() { + len += 1; + } + if self.less_than.is_some() { + len += 1; + } + if self.greater_than.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.UInt64Rules", len)?; + if let Some(v) = self.r#const.as_ref() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("const", ToString::to_string(&v).as_str())?; + } + if !self.r#in.is_empty() { + struct_ser.serialize_field("in", &self.r#in.iter().map(ToString::to_string).collect::>())?; + } + if !self.not_in.is_empty() { + struct_ser.serialize_field("notIn", &self.not_in.iter().map(ToString::to_string).collect::>())?; + } + if !self.example.is_empty() { + struct_ser.serialize_field("example", &self.example.iter().map(ToString::to_string).collect::>())?; + } + if let Some(v) = self.less_than.as_ref() { + match v { + u_int64_rules::LessThan::Lt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lt", ToString::to_string(&v).as_str())?; + } + u_int64_rules::LessThan::Lte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("lte", ToString::to_string(&v).as_str())?; + } + } + } + if let Some(v) = self.greater_than.as_ref() { + match v { + u_int64_rules::GreaterThan::Gt(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gt", ToString::to_string(&v).as_str())?; + } + u_int64_rules::GreaterThan::Gte(v) => { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("gte", ToString::to_string(&v).as_str())?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UInt64Rules { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "const", + "in", + "not_in", + "notIn", + "example", + "lt", + "lte", + "gt", + "gte", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Const, + In, + NotIn, + Example, + Lt, + Lte, + Gt, + Gte, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "const" => Ok(GeneratedField::Const), + "in" => Ok(GeneratedField::In), + "notIn" | "not_in" => Ok(GeneratedField::NotIn), + "example" => Ok(GeneratedField::Example), + "lt" => Ok(GeneratedField::Lt), + "lte" => Ok(GeneratedField::Lte), + "gt" => Ok(GeneratedField::Gt), + "gte" => Ok(GeneratedField::Gte), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UInt64Rules; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.UInt64Rules") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#const__ = None; + let mut r#in__ = None; + let mut not_in__ = None; + let mut example__ = None; + let mut less_than__ = None; + let mut greater_than__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Const => { + if r#const__.is_some() { + return Err(serde::de::Error::duplicate_field("const")); + } + r#const__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::In => { + if r#in__.is_some() { + return Err(serde::de::Error::duplicate_field("in")); + } + r#in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::NotIn => { + if not_in__.is_some() { + return Err(serde::de::Error::duplicate_field("notIn")); + } + not_in__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Example => { + if example__.is_some() { + return Err(serde::de::Error::duplicate_field("example")); + } + example__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Lt => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lt")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int64_rules::LessThan::Lt(x.0)); + } + GeneratedField::Lte => { + if less_than__.is_some() { + return Err(serde::de::Error::duplicate_field("lte")); + } + less_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int64_rules::LessThan::Lte(x.0)); + } + GeneratedField::Gt => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gt")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int64_rules::GreaterThan::Gt(x.0)); + } + GeneratedField::Gte => { + if greater_than__.is_some() { + return Err(serde::de::Error::duplicate_field("gte")); + } + greater_than__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| u_int64_rules::GreaterThan::Gte(x.0)); + } + } + } + Ok(UInt64Rules { + r#const: r#const__, + r#in: r#in__.unwrap_or_default(), + not_in: not_in__.unwrap_or_default(), + example: example__.unwrap_or_default(), + less_than: less_than__, + greater_than: greater_than__, + }) + } + } + deserializer.deserialize_struct("buf.validate.UInt64Rules", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Violation { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.field.is_some() { + len += 1; + } + if self.rule.is_some() { + len += 1; + } + if self.rule_id.is_some() { + len += 1; + } + if self.message.is_some() { + len += 1; + } + if self.for_key.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.Violation", len)?; + if let Some(v) = self.field.as_ref() { + struct_ser.serialize_field("field", v)?; + } + if let Some(v) = self.rule.as_ref() { + struct_ser.serialize_field("rule", v)?; + } + if let Some(v) = self.rule_id.as_ref() { + struct_ser.serialize_field("ruleId", v)?; + } + if let Some(v) = self.message.as_ref() { + struct_ser.serialize_field("message", v)?; + } + if let Some(v) = self.for_key.as_ref() { + struct_ser.serialize_field("forKey", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Violation { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "field", + "rule", + "rule_id", + "ruleId", + "message", + "for_key", + "forKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Field, + Rule, + RuleId, + Message, + ForKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "field" => Ok(GeneratedField::Field), + "rule" => Ok(GeneratedField::Rule), + "ruleId" | "rule_id" => Ok(GeneratedField::RuleId), + "message" => Ok(GeneratedField::Message), + "forKey" | "for_key" => Ok(GeneratedField::ForKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Violation; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.Violation") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut field__ = None; + let mut rule__ = None; + let mut rule_id__ = None; + let mut message__ = None; + let mut for_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Field => { + if field__.is_some() { + return Err(serde::de::Error::duplicate_field("field")); + } + field__ = map_.next_value()?; + } + GeneratedField::Rule => { + if rule__.is_some() { + return Err(serde::de::Error::duplicate_field("rule")); + } + rule__ = map_.next_value()?; + } + GeneratedField::RuleId => { + if rule_id__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleId")); + } + rule_id__ = map_.next_value()?; + } + GeneratedField::Message => { + if message__.is_some() { + return Err(serde::de::Error::duplicate_field("message")); + } + message__ = map_.next_value()?; + } + GeneratedField::ForKey => { + if for_key__.is_some() { + return Err(serde::de::Error::duplicate_field("forKey")); + } + for_key__ = map_.next_value()?; + } + } + } + Ok(Violation { + field: field__, + rule: rule__, + rule_id: rule_id__, + message: message__, + for_key: for_key__, + }) + } + } + deserializer.deserialize_struct("buf.validate.Violation", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Violations { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.violations.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("buf.validate.Violations", len)?; + if !self.violations.is_empty() { + struct_ser.serialize_field("violations", &self.violations)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Violations { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "violations", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Violations, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "violations" => Ok(GeneratedField::Violations), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Violations; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct buf.validate.Violations") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut violations__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Violations => { + if violations__.is_some() { + return Err(serde::de::Error::duplicate_field("violations")); + } + violations__ = Some(map_.next_value()?); + } + } + } + Ok(Violations { + violations: violations__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("buf.validate.Violations", FIELDS, GeneratedVisitor) + } +} diff --git a/rust/crates/sift_rs/src/gen/mod.rs b/rust/crates/sift_rs/src/gen/mod.rs index 5b393a9f1..5cc0d9d84 100644 --- a/rust/crates/sift_rs/src/gen/mod.rs +++ b/rust/crates/sift_rs/src/gen/mod.rs @@ -1,4 +1,11 @@ // @generated +pub mod buf { + // @@protoc_insertion_point(attribute:buf.validate) + pub mod validate { + include!("buf.validate.rs"); + // @@protoc_insertion_point(buf.validate) + } +} pub mod google { // @@protoc_insertion_point(attribute:google.api) pub mod api { @@ -131,6 +138,13 @@ pub mod sift { // @@protoc_insertion_point(sift.exports.v1) } } + pub mod external_sync { + // @@protoc_insertion_point(attribute:sift.external_sync.v1) + pub mod v1 { + include!("sift.external_sync.v1.rs"); + // @@protoc_insertion_point(sift.external_sync.v1) + } + } pub mod ingest { // @@protoc_insertion_point(attribute:sift.ingest.v1) pub mod v1 { @@ -178,6 +192,13 @@ pub mod sift { // @@protoc_insertion_point(sift.notifications.v1) } } + pub mod options { + // @@protoc_insertion_point(attribute:sift.options.v1) + pub mod v1 { + include!("sift.options.v1.rs"); + // @@protoc_insertion_point(sift.options.v1) + } + } pub mod ping { // @@protoc_insertion_point(attribute:sift.ping.v1) pub mod v1 { @@ -300,4 +321,11 @@ pub mod sift { // @@protoc_insertion_point(sift.views.v2) } } + pub mod webhooks { + // @@protoc_insertion_point(attribute:sift.webhooks.v1) + pub mod v1 { + include!("sift.webhooks.v1.rs"); + // @@protoc_insertion_point(sift.webhooks.v1) + } + } } diff --git a/rust/crates/sift_rs/src/gen/sift.annotations.v1.rs b/rust/crates/sift_rs/src/gen/sift.annotations.v1.rs index 5e54f241b..d0334ac1b 100644 --- a/rust/crates/sift_rs/src/gen/sift.annotations.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.annotations.v1.rs @@ -45,6 +45,7 @@ pub struct Annotation { pub pending: bool, #[prost(message, optional, tag="21")] pub assigned_to_user: ::core::option::Option, + #[deprecated] #[prost(message, optional, tag="22")] pub deleted_date: ::core::option::Option<::pbjson_types::Timestamp>, #[prost(message, repeated, tag="23")] @@ -53,6 +54,10 @@ pub struct Annotation { pub asset_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, #[prost(message, repeated, tag="25")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="26")] + pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(bool, tag="27")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -195,6 +200,54 @@ pub struct UpdateAnnotationResponse { #[prost(message, optional, tag="1")] pub annotation: ::core::option::Option, } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ArchiveAnnotationRequest { + #[prost(string, tag="1")] + pub annotation_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ArchiveAnnotationResponse { + #[prost(message, optional, tag="1")] + pub annotation: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UnarchiveAnnotationRequest { + #[prost(string, tag="1")] + pub annotation_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UnarchiveAnnotationResponse { + #[prost(message, optional, tag="1")] + pub annotation: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BatchArchiveAnnotationsRequest { + #[prost(string, repeated, tag="1")] + pub annotation_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BatchArchiveAnnotationsResponse { + #[prost(message, repeated, tag="1")] + pub annotations: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BatchUnarchiveAnnotationsRequest { + #[prost(string, repeated, tag="1")] + pub annotation_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BatchUnarchiveAnnotationsResponse { + #[prost(message, repeated, tag="1")] + pub annotations: ::prost::alloc::vec::Vec, +} #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum AnnotationState { diff --git a/rust/crates/sift_rs/src/gen/sift.annotations.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.annotations.v1.serde.rs index bb856b416..be05eefe7 100644 --- a/rust/crates/sift_rs/src/gen/sift.annotations.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.annotations.v1.serde.rs @@ -82,6 +82,12 @@ impl serde::Serialize for Annotation { if !self.metadata.is_empty() { len += 1; } + if self.archived_date.is_some() { + len += 1; + } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.Annotation", len)?; if !self.annotation_id.is_empty() { struct_ser.serialize_field("annotationId", &self.annotation_id)?; @@ -162,6 +168,12 @@ impl serde::Serialize for Annotation { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if let Some(v) = self.archived_date.as_ref() { + struct_ser.serialize_field("archivedDate", v)?; + } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -216,6 +228,10 @@ impl<'de> serde::Deserialize<'de> for Annotation { "asset_ids", "assetIds", "metadata", + "archived_date", + "archivedDate", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -245,6 +261,8 @@ impl<'de> serde::Deserialize<'de> for Annotation { LinkedChannels, AssetIds, Metadata, + ArchivedDate, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -291,6 +309,8 @@ impl<'de> serde::Deserialize<'de> for Annotation { "linkedChannels" | "linked_channels" => Ok(GeneratedField::LinkedChannels), "assetIds" | "asset_ids" => Ok(GeneratedField::AssetIds), "metadata" => Ok(GeneratedField::Metadata), + "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -335,6 +355,8 @@ impl<'de> serde::Deserialize<'de> for Annotation { let mut linked_channels__ = None; let mut asset_ids__ = None; let mut metadata__ = None; + let mut archived_date__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::AnnotationId => { @@ -487,6 +509,18 @@ impl<'de> serde::Deserialize<'de> for Annotation { } metadata__ = Some(map_.next_value()?); } + GeneratedField::ArchivedDate => { + if archived_date__.is_some() { + return Err(serde::de::Error::duplicate_field("archivedDate")); + } + archived_date__ = map_.next_value()?; + } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(Annotation { @@ -515,6 +549,8 @@ impl<'de> serde::Deserialize<'de> for Annotation { linked_channels: linked_channels__.unwrap_or_default(), asset_ids: asset_ids__.unwrap_or_default(), metadata: metadata__.unwrap_or_default(), + archived_date: archived_date__, + is_archived: is_archived__.unwrap_or_default(), }) } } @@ -939,52 +975,581 @@ impl<'de> serde::Deserialize<'de> for AnnotationType { struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = AnnotationType; + type Value = AnnotationType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ANNOTATION_TYPE_UNSPECIFIED" => Ok(AnnotationType::Unspecified), + "ANNOTATION_TYPE_DATA_REVIEW" => Ok(AnnotationType::DataReview), + "ANNOTATION_TYPE_PHASE" => Ok(AnnotationType::Phase), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for ArchiveAnnotationRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.annotation_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.ArchiveAnnotationRequest", len)?; + if !self.annotation_id.is_empty() { + struct_ser.serialize_field("annotationId", &self.annotation_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ArchiveAnnotationRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation_id", + "annotationId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + AnnotationId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotationId" | "annotation_id" => Ok(GeneratedField::AnnotationId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ArchiveAnnotationRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.annotations.v1.ArchiveAnnotationRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::AnnotationId => { + if annotation_id__.is_some() { + return Err(serde::de::Error::duplicate_field("annotationId")); + } + annotation_id__ = Some(map_.next_value()?); + } + } + } + Ok(ArchiveAnnotationRequest { + annotation_id: annotation_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.annotations.v1.ArchiveAnnotationRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ArchiveAnnotationResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.annotation.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.ArchiveAnnotationResponse", len)?; + if let Some(v) = self.annotation.as_ref() { + struct_ser.serialize_field("annotation", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ArchiveAnnotationResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Annotation, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotation" => Ok(GeneratedField::Annotation), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ArchiveAnnotationResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.annotations.v1.ArchiveAnnotationResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Annotation => { + if annotation__.is_some() { + return Err(serde::de::Error::duplicate_field("annotation")); + } + annotation__ = map_.next_value()?; + } + } + } + Ok(ArchiveAnnotationResponse { + annotation: annotation__, + }) + } + } + deserializer.deserialize_struct("sift.annotations.v1.ArchiveAnnotationResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchArchiveAnnotationsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.annotation_ids.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchArchiveAnnotationsRequest", len)?; + if !self.annotation_ids.is_empty() { + struct_ser.serialize_field("annotationIds", &self.annotation_ids)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchArchiveAnnotationsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation_ids", + "annotationIds", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + AnnotationIds, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotationIds" | "annotation_ids" => Ok(GeneratedField::AnnotationIds), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchArchiveAnnotationsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.annotations.v1.BatchArchiveAnnotationsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation_ids__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::AnnotationIds => { + if annotation_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("annotationIds")); + } + annotation_ids__ = Some(map_.next_value()?); + } + } + } + Ok(BatchArchiveAnnotationsRequest { + annotation_ids: annotation_ids__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.annotations.v1.BatchArchiveAnnotationsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchArchiveAnnotationsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.annotations.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchArchiveAnnotationsResponse", len)?; + if !self.annotations.is_empty() { + struct_ser.serialize_field("annotations", &self.annotations)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchArchiveAnnotationsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotations", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Annotations, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotations" => Ok(GeneratedField::Annotations), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchArchiveAnnotationsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.annotations.v1.BatchArchiveAnnotationsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotations__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Annotations => { + if annotations__.is_some() { + return Err(serde::de::Error::duplicate_field("annotations")); + } + annotations__ = Some(map_.next_value()?); + } + } + } + Ok(BatchArchiveAnnotationsResponse { + annotations: annotations__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.annotations.v1.BatchArchiveAnnotationsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchDeleteAnnotationsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.annotation_ids.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchDeleteAnnotationsRequest", len)?; + if !self.annotation_ids.is_empty() { + struct_ser.serialize_field("annotationIds", &self.annotation_ids)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation_ids", + "annotationIds", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + AnnotationIds, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotationIds" | "annotation_ids" => Ok(GeneratedField::AnnotationIds), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchDeleteAnnotationsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.annotations.v1.BatchDeleteAnnotationsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation_ids__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::AnnotationIds => { + if annotation_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("annotationIds")); + } + annotation_ids__ = Some(map_.next_value()?); + } + } + } + Ok(BatchDeleteAnnotationsRequest { + annotation_ids: annotation_ids__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.annotations.v1.BatchDeleteAnnotationsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchDeleteAnnotationsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchDeleteAnnotationsResponse", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchDeleteAnnotationsResponse; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - fn visit_i64(self, v: i64) -> std::result::Result - where - E: serde::de::Error, - { - i32::try_from(v) - .ok() - .and_then(|x| x.try_into().ok()) - .ok_or_else(|| { - serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) - }) - } - - fn visit_u64(self, v: u64) -> std::result::Result - where - E: serde::de::Error, - { - i32::try_from(v) - .ok() - .and_then(|x| x.try_into().ok()) - .ok_or_else(|| { - serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) - }) + formatter.write_str("struct sift.annotations.v1.BatchDeleteAnnotationsResponse") } - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, { - match value { - "ANNOTATION_TYPE_UNSPECIFIED" => Ok(AnnotationType::Unspecified), - "ANNOTATION_TYPE_DATA_REVIEW" => Ok(AnnotationType::DataReview), - "ANNOTATION_TYPE_PHASE" => Ok(AnnotationType::Phase), - _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; } + Ok(BatchDeleteAnnotationsResponse { + }) } } - deserializer.deserialize_any(GeneratedVisitor) + deserializer.deserialize_struct("sift.annotations.v1.BatchDeleteAnnotationsResponse", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchDeleteAnnotationsRequest { +impl serde::Serialize for BatchUnarchiveAnnotationsRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -995,14 +1560,14 @@ impl serde::Serialize for BatchDeleteAnnotationsRequest { if !self.annotation_ids.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchDeleteAnnotationsRequest", len)?; + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchUnarchiveAnnotationsRequest", len)?; if !self.annotation_ids.is_empty() { struct_ser.serialize_field("annotationIds", &self.annotation_ids)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsRequest { +impl<'de> serde::Deserialize<'de> for BatchUnarchiveAnnotationsRequest { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -1047,13 +1612,13 @@ impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsRequest { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchDeleteAnnotationsRequest; + type Value = BatchUnarchiveAnnotationsRequest; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.annotations.v1.BatchDeleteAnnotationsRequest") + formatter.write_str("struct sift.annotations.v1.BatchUnarchiveAnnotationsRequest") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -1068,37 +1633,45 @@ impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsRequest { } } } - Ok(BatchDeleteAnnotationsRequest { + Ok(BatchUnarchiveAnnotationsRequest { annotation_ids: annotation_ids__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.annotations.v1.BatchDeleteAnnotationsRequest", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.annotations.v1.BatchUnarchiveAnnotationsRequest", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchDeleteAnnotationsResponse { +impl serde::Serialize for BatchUnarchiveAnnotationsResponse { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where S: serde::Serializer, { use serde::ser::SerializeStruct; - let len = 0; - let struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchDeleteAnnotationsResponse", len)?; + let mut len = 0; + if !self.annotations.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.BatchUnarchiveAnnotationsResponse", len)?; + if !self.annotations.is_empty() { + struct_ser.serialize_field("annotations", &self.annotations)?; + } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsResponse { +impl<'de> serde::Deserialize<'de> for BatchUnarchiveAnnotationsResponse { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ + "annotations", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { + Annotations, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1119,7 +1692,10 @@ impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsResponse { where E: serde::de::Error, { - Err(serde::de::Error::unknown_field(value, FIELDS)) + match value { + "annotations" => Ok(GeneratedField::Annotations), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } } } deserializer.deserialize_identifier(GeneratedVisitor) @@ -1127,24 +1703,33 @@ impl<'de> serde::Deserialize<'de> for BatchDeleteAnnotationsResponse { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchDeleteAnnotationsResponse; + type Value = BatchUnarchiveAnnotationsResponse; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.annotations.v1.BatchDeleteAnnotationsResponse") + formatter.write_str("struct sift.annotations.v1.BatchUnarchiveAnnotationsResponse") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - while map_.next_key::()?.is_some() { - let _ = map_.next_value::()?; + let mut annotations__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Annotations => { + if annotations__.is_some() { + return Err(serde::de::Error::duplicate_field("annotations")); + } + annotations__ = Some(map_.next_value()?); + } + } } - Ok(BatchDeleteAnnotationsResponse { + Ok(BatchUnarchiveAnnotationsResponse { + annotations: annotations__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.annotations.v1.BatchDeleteAnnotationsResponse", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.annotations.v1.BatchUnarchiveAnnotationsResponse", FIELDS, GeneratedVisitor) } } impl serde::Serialize for CreateAnnotationRequest { @@ -2218,6 +2803,189 @@ impl<'de> serde::Deserialize<'de> for ListAnnotationsResponse { deserializer.deserialize_struct("sift.annotations.v1.ListAnnotationsResponse", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for UnarchiveAnnotationRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.annotation_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.UnarchiveAnnotationRequest", len)?; + if !self.annotation_id.is_empty() { + struct_ser.serialize_field("annotationId", &self.annotation_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UnarchiveAnnotationRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation_id", + "annotationId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + AnnotationId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotationId" | "annotation_id" => Ok(GeneratedField::AnnotationId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UnarchiveAnnotationRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.annotations.v1.UnarchiveAnnotationRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::AnnotationId => { + if annotation_id__.is_some() { + return Err(serde::de::Error::duplicate_field("annotationId")); + } + annotation_id__ = Some(map_.next_value()?); + } + } + } + Ok(UnarchiveAnnotationRequest { + annotation_id: annotation_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.annotations.v1.UnarchiveAnnotationRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UnarchiveAnnotationResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.annotation.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.annotations.v1.UnarchiveAnnotationResponse", len)?; + if let Some(v) = self.annotation.as_ref() { + struct_ser.serialize_field("annotation", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UnarchiveAnnotationResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Annotation, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotation" => Ok(GeneratedField::Annotation), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UnarchiveAnnotationResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.annotations.v1.UnarchiveAnnotationResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Annotation => { + if annotation__.is_some() { + return Err(serde::de::Error::duplicate_field("annotation")); + } + annotation__ = map_.next_value()?; + } + } + } + Ok(UnarchiveAnnotationResponse { + annotation: annotation__, + }) + } + } + deserializer.deserialize_struct("sift.annotations.v1.UnarchiveAnnotationResponse", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for UpdateAnnotationRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift.annotations.v1.tonic.rs b/rust/crates/sift_rs/src/gen/sift.annotations.v1.tonic.rs index 0ad0bf010..2e6d7f60d 100644 --- a/rust/crates/sift_rs/src/gen/sift.annotations.v1.tonic.rs +++ b/rust/crates/sift_rs/src/gen/sift.annotations.v1.tonic.rs @@ -144,6 +144,66 @@ pub mod annotation_service_client { ); self.inner.unary(req, path, codec).await } + pub async fn archive_annotation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.annotations.v1.AnnotationService/ArchiveAnnotation", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.annotations.v1.AnnotationService", + "ArchiveAnnotation", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn unarchive_annotation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.annotations.v1.AnnotationService/UnarchiveAnnotation", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.annotations.v1.AnnotationService", + "UnarchiveAnnotation", + ), + ); + self.inner.unary(req, path, codec).await + } pub async fn batch_delete_annotations( &mut self, request: impl tonic::IntoRequest, @@ -174,6 +234,66 @@ pub mod annotation_service_client { ); self.inner.unary(req, path, codec).await } + pub async fn batch_archive_annotations( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.annotations.v1.AnnotationService", + "BatchArchiveAnnotations", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn batch_unarchive_annotations( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.annotations.v1.AnnotationService", + "BatchUnarchiveAnnotations", + ), + ); + self.inner.unary(req, path, codec).await + } pub async fn list_annotations( &mut self, request: impl tonic::IntoRequest, @@ -287,6 +407,20 @@ pub mod annotation_service_server { tonic::Response, tonic::Status, >; + async fn archive_annotation( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn unarchive_annotation( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; async fn batch_delete_annotations( &self, request: tonic::Request, @@ -294,6 +428,20 @@ pub mod annotation_service_server { tonic::Response, tonic::Status, >; + async fn batch_archive_annotations( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn batch_unarchive_annotations( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; async fn list_annotations( &self, request: tonic::Request, @@ -489,6 +637,106 @@ pub mod annotation_service_server { }; Box::pin(fut) } + "/sift.annotations.v1.AnnotationService/ArchiveAnnotation" => { + #[allow(non_camel_case_types)] + struct ArchiveAnnotationSvc(pub Arc); + impl< + T: AnnotationService, + > tonic::server::UnaryService + for ArchiveAnnotationSvc { + type Response = super::ArchiveAnnotationResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::archive_annotation( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ArchiveAnnotationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.annotations.v1.AnnotationService/UnarchiveAnnotation" => { + #[allow(non_camel_case_types)] + struct UnarchiveAnnotationSvc(pub Arc); + impl< + T: AnnotationService, + > tonic::server::UnaryService + for UnarchiveAnnotationSvc { + type Response = super::UnarchiveAnnotationResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::unarchive_annotation( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UnarchiveAnnotationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/sift.annotations.v1.AnnotationService/BatchDeleteAnnotations" => { #[allow(non_camel_case_types)] struct BatchDeleteAnnotationsSvc(pub Arc); @@ -539,6 +787,113 @@ pub mod annotation_service_server { }; Box::pin(fut) } + "/sift.annotations.v1.AnnotationService/BatchArchiveAnnotations" => { + #[allow(non_camel_case_types)] + struct BatchArchiveAnnotationsSvc(pub Arc); + impl< + T: AnnotationService, + > tonic::server::UnaryService + for BatchArchiveAnnotationsSvc { + type Response = super::BatchArchiveAnnotationsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::BatchArchiveAnnotationsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::batch_archive_annotations( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = BatchArchiveAnnotationsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.annotations.v1.AnnotationService/BatchUnarchiveAnnotations" => { + #[allow(non_camel_case_types)] + struct BatchUnarchiveAnnotationsSvc( + pub Arc, + ); + impl< + T: AnnotationService, + > tonic::server::UnaryService< + super::BatchUnarchiveAnnotationsRequest, + > for BatchUnarchiveAnnotationsSvc { + type Response = super::BatchUnarchiveAnnotationsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::BatchUnarchiveAnnotationsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::batch_unarchive_annotations( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = BatchUnarchiveAnnotationsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/sift.annotations.v1.AnnotationService/ListAnnotations" => { #[allow(non_camel_case_types)] struct ListAnnotationsSvc(pub Arc); diff --git a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.rs b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.rs index 31c03a4e7..d22fe3727 100644 --- a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.rs @@ -17,6 +17,8 @@ pub struct ExpressionRequest { pub expression: ::prost::alloc::string::String, #[prost(message, repeated, tag="3")] pub expression_channel_references: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub function_dependencies: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -33,6 +35,8 @@ pub struct ListExpressionIdentifiersRequest { pub struct ListExpressionIdentifiersResponse { #[prost(message, repeated, tag="1")] pub identifiers: ::prost::alloc::vec::Vec, + #[prost(string, optional, tag="2")] + pub next_page_token: ::core::option::Option<::prost::alloc::string::String>, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -124,6 +128,7 @@ pub enum ExpressionIdentifierLibrary { Iter = 4, Stateful = 5, Summary = 6, + UserDefinedFunctions = 7, } impl ExpressionIdentifierLibrary { /// String value of the enum field names used in the ProtoBuf definition. @@ -139,6 +144,7 @@ impl ExpressionIdentifierLibrary { ExpressionIdentifierLibrary::Iter => "EXPRESSION_IDENTIFIER_LIBRARY_ITER", ExpressionIdentifierLibrary::Stateful => "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL", ExpressionIdentifierLibrary::Summary => "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY", + ExpressionIdentifierLibrary::UserDefinedFunctions => "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -151,6 +157,7 @@ impl ExpressionIdentifierLibrary { "EXPRESSION_IDENTIFIER_LIBRARY_ITER" => Some(Self::Iter), "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL" => Some(Self::Stateful), "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY" => Some(Self::Summary), + "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS" => Some(Self::UserDefinedFunctions), _ => None, } } diff --git a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.serde.rs index a83336cac..b64aa8269 100644 --- a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v1.serde.rs @@ -379,6 +379,7 @@ impl serde::Serialize for ExpressionIdentifierLibrary { Self::Iter => "EXPRESSION_IDENTIFIER_LIBRARY_ITER", Self::Stateful => "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL", Self::Summary => "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY", + Self::UserDefinedFunctions => "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS", }; serializer.serialize_str(variant) } @@ -397,6 +398,7 @@ impl<'de> serde::Deserialize<'de> for ExpressionIdentifierLibrary { "EXPRESSION_IDENTIFIER_LIBRARY_ITER", "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL", "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY", + "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS", ]; struct GeneratedVisitor; @@ -444,6 +446,7 @@ impl<'de> serde::Deserialize<'de> for ExpressionIdentifierLibrary { "EXPRESSION_IDENTIFIER_LIBRARY_ITER" => Ok(ExpressionIdentifierLibrary::Iter), "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL" => Ok(ExpressionIdentifierLibrary::Stateful), "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY" => Ok(ExpressionIdentifierLibrary::Summary), + "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS" => Ok(ExpressionIdentifierLibrary::UserDefinedFunctions), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -622,6 +625,9 @@ impl serde::Serialize for ExpressionRequest { if !self.expression_channel_references.is_empty() { len += 1; } + if !self.function_dependencies.is_empty() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.calculated_channels.v1.ExpressionRequest", len)?; if !self.channel_references.is_empty() { struct_ser.serialize_field("channelReferences", &self.channel_references)?; @@ -632,6 +638,9 @@ impl serde::Serialize for ExpressionRequest { if !self.expression_channel_references.is_empty() { struct_ser.serialize_field("expressionChannelReferences", &self.expression_channel_references)?; } + if !self.function_dependencies.is_empty() { + struct_ser.serialize_field("functionDependencies", &self.function_dependencies)?; + } struct_ser.end() } } @@ -647,6 +656,8 @@ impl<'de> serde::Deserialize<'de> for ExpressionRequest { "expression", "expression_channel_references", "expressionChannelReferences", + "function_dependencies", + "functionDependencies", ]; #[allow(clippy::enum_variant_names)] @@ -654,6 +665,7 @@ impl<'de> serde::Deserialize<'de> for ExpressionRequest { ChannelReferences, Expression, ExpressionChannelReferences, + FunctionDependencies, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -678,6 +690,7 @@ impl<'de> serde::Deserialize<'de> for ExpressionRequest { "channelReferences" | "channel_references" => Ok(GeneratedField::ChannelReferences), "expression" => Ok(GeneratedField::Expression), "expressionChannelReferences" | "expression_channel_references" => Ok(GeneratedField::ExpressionChannelReferences), + "functionDependencies" | "function_dependencies" => Ok(GeneratedField::FunctionDependencies), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -700,6 +713,7 @@ impl<'de> serde::Deserialize<'de> for ExpressionRequest { let mut channel_references__ = None; let mut expression__ = None; let mut expression_channel_references__ = None; + let mut function_dependencies__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::ChannelReferences => { @@ -722,12 +736,19 @@ impl<'de> serde::Deserialize<'de> for ExpressionRequest { } expression_channel_references__ = Some(map_.next_value()?); } + GeneratedField::FunctionDependencies => { + if function_dependencies__.is_some() { + return Err(serde::de::Error::duplicate_field("functionDependencies")); + } + function_dependencies__ = Some(map_.next_value()?); + } } } Ok(ExpressionRequest { channel_references: channel_references__.unwrap_or_default(), expression: expression__.unwrap_or_default(), expression_channel_references: expression_channel_references__.unwrap_or_default(), + function_dependencies: function_dependencies__.unwrap_or_default(), }) } } @@ -876,10 +897,16 @@ impl serde::Serialize for ListExpressionIdentifiersResponse { if !self.identifiers.is_empty() { len += 1; } + if self.next_page_token.is_some() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.calculated_channels.v1.ListExpressionIdentifiersResponse", len)?; if !self.identifiers.is_empty() { struct_ser.serialize_field("identifiers", &self.identifiers)?; } + if let Some(v) = self.next_page_token.as_ref() { + struct_ser.serialize_field("nextPageToken", v)?; + } struct_ser.end() } } @@ -891,11 +918,14 @@ impl<'de> serde::Deserialize<'de> for ListExpressionIdentifiersResponse { { const FIELDS: &[&str] = &[ "identifiers", + "next_page_token", + "nextPageToken", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { Identifiers, + NextPageToken, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -918,6 +948,7 @@ impl<'de> serde::Deserialize<'de> for ListExpressionIdentifiersResponse { { match value { "identifiers" => Ok(GeneratedField::Identifiers), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -938,6 +969,7 @@ impl<'de> serde::Deserialize<'de> for ListExpressionIdentifiersResponse { V: serde::de::MapAccess<'de>, { let mut identifiers__ = None; + let mut next_page_token__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::Identifiers => { @@ -946,10 +978,17 @@ impl<'de> serde::Deserialize<'de> for ListExpressionIdentifiersResponse { } identifiers__ = Some(map_.next_value()?); } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = map_.next_value()?; + } } } Ok(ListExpressionIdentifiersResponse { identifiers: identifiers__.unwrap_or_default(), + next_page_token: next_page_token__, }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.rs b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.rs index 4ddc1eb86..1533d4a3c 100644 --- a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.rs @@ -39,6 +39,8 @@ pub struct CalculatedChannel { pub function_dependencies: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag="20")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(bool, tag="21")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.serde.rs index 213e4f5d0..ddbc4759c 100644 --- a/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.calculated_channels.v2.serde.rs @@ -243,6 +243,9 @@ impl serde::Serialize for CalculatedChannel { if !self.metadata.is_empty() { len += 1; } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.calculated_channels.v2.CalculatedChannel", len)?; if !self.calculated_channel_id.is_empty() { struct_ser.serialize_field("calculatedChannelId", &self.calculated_channel_id)?; @@ -298,6 +301,9 @@ impl serde::Serialize for CalculatedChannel { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -339,6 +345,8 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannel { "function_dependencies", "functionDependencies", "metadata", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -361,6 +369,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannel { ModifiedByUserId, FunctionDependencies, Metadata, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -400,6 +409,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannel { "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), "functionDependencies" | "function_dependencies" => Ok(GeneratedField::FunctionDependencies), "metadata" => Ok(GeneratedField::Metadata), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -437,6 +447,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannel { let mut modified_by_user_id__ = None; let mut function_dependencies__ = None; let mut metadata__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::CalculatedChannelId => { @@ -549,6 +560,12 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannel { } metadata__ = Some(map_.next_value()?); } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(CalculatedChannel { @@ -570,6 +587,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannel { modified_by_user_id: modified_by_user_id__.unwrap_or_default(), function_dependencies: function_dependencies__.unwrap_or_default(), metadata: metadata__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.campaigns.v1.rs b/rust/crates/sift_rs/src/gen/sift.campaigns.v1.rs index 925e4d10f..5c9f9e11e 100644 --- a/rust/crates/sift_rs/src/gen/sift.campaigns.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.campaigns.v1.rs @@ -31,6 +31,8 @@ pub struct Campaign { pub created_from_campaign_id: ::core::option::Option<::prost::alloc::string::String>, #[prost(message, repeated, tag="14")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(bool, tag="15")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.campaigns.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.campaigns.v1.serde.rs index 595282f9c..bad5b0c62 100644 --- a/rust/crates/sift_rs/src/gen/sift.campaigns.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.campaigns.v1.serde.rs @@ -49,6 +49,9 @@ impl serde::Serialize for Campaign { if !self.metadata.is_empty() { len += 1; } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.campaigns.v1.Campaign", len)?; if !self.campaign_id.is_empty() { struct_ser.serialize_field("campaignId", &self.campaign_id)?; @@ -92,6 +95,9 @@ impl serde::Serialize for Campaign { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -125,6 +131,8 @@ impl<'de> serde::Deserialize<'de> for Campaign { "created_from_campaign_id", "createdFromCampaignId", "metadata", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -143,6 +151,7 @@ impl<'de> serde::Deserialize<'de> for Campaign { Reports, CreatedFromCampaignId, Metadata, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -178,6 +187,7 @@ impl<'de> serde::Deserialize<'de> for Campaign { "reports" => Ok(GeneratedField::Reports), "createdFromCampaignId" | "created_from_campaign_id" => Ok(GeneratedField::CreatedFromCampaignId), "metadata" => Ok(GeneratedField::Metadata), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -211,6 +221,7 @@ impl<'de> serde::Deserialize<'de> for Campaign { let mut reports__ = None; let mut created_from_campaign_id__ = None; let mut metadata__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::CampaignId => { @@ -297,6 +308,12 @@ impl<'de> serde::Deserialize<'de> for Campaign { } metadata__ = Some(map_.next_value()?); } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(Campaign { @@ -314,6 +331,7 @@ impl<'de> serde::Deserialize<'de> for Campaign { reports: reports__.unwrap_or_default(), created_from_campaign_id: created_from_campaign_id__, metadata: metadata__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.channels.v2.rs b/rust/crates/sift_rs/src/gen/sift.channels.v2.rs index 6befa18e1..6a2e1ee79 100644 --- a/rust/crates/sift_rs/src/gen/sift.channels.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.channels.v2.rs @@ -31,6 +31,8 @@ pub struct Channel { pub enum_types: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag="14")] pub bit_field_elements: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="15")] + pub metadata: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.channels.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.channels.v2.serde.rs index 6fe64b900..df39406e8 100644 --- a/rust/crates/sift_rs/src/gen/sift.channels.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.channels.v2.serde.rs @@ -49,6 +49,9 @@ impl serde::Serialize for Channel { if !self.bit_field_elements.is_empty() { len += 1; } + if !self.metadata.is_empty() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.channels.v2.Channel", len)?; if !self.channel_id.is_empty() { struct_ser.serialize_field("channelId", &self.channel_id)?; @@ -94,6 +97,9 @@ impl serde::Serialize for Channel { if !self.bit_field_elements.is_empty() { struct_ser.serialize_field("bitFieldElements", &self.bit_field_elements)?; } + if !self.metadata.is_empty() { + struct_ser.serialize_field("metadata", &self.metadata)?; + } struct_ser.end() } } @@ -129,6 +135,7 @@ impl<'de> serde::Deserialize<'de> for Channel { "enumTypes", "bit_field_elements", "bitFieldElements", + "metadata", ]; #[allow(clippy::enum_variant_names)] @@ -147,6 +154,7 @@ impl<'de> serde::Deserialize<'de> for Channel { DataType, EnumTypes, BitFieldElements, + Metadata, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -182,6 +190,7 @@ impl<'de> serde::Deserialize<'de> for Channel { "dataType" | "data_type" => Ok(GeneratedField::DataType), "enumTypes" | "enum_types" => Ok(GeneratedField::EnumTypes), "bitFieldElements" | "bit_field_elements" => Ok(GeneratedField::BitFieldElements), + "metadata" => Ok(GeneratedField::Metadata), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -215,6 +224,7 @@ impl<'de> serde::Deserialize<'de> for Channel { let mut data_type__ = None; let mut enum_types__ = None; let mut bit_field_elements__ = None; + let mut metadata__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::ChannelId => { @@ -301,6 +311,12 @@ impl<'de> serde::Deserialize<'de> for Channel { } bit_field_elements__ = Some(map_.next_value()?); } + GeneratedField::Metadata => { + if metadata__.is_some() { + return Err(serde::de::Error::duplicate_field("metadata")); + } + metadata__ = Some(map_.next_value()?); + } } } Ok(Channel { @@ -318,6 +334,7 @@ impl<'de> serde::Deserialize<'de> for Channel { data_type: data_type__.unwrap_or_default(), enum_types: enum_types__.unwrap_or_default(), bit_field_elements: bit_field_elements__.unwrap_or_default(), + metadata: metadata__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.channels.v3.rs b/rust/crates/sift_rs/src/gen/sift.channels.v3.rs index ca0ffc287..f41e63769 100644 --- a/rust/crates/sift_rs/src/gen/sift.channels.v3.rs +++ b/rust/crates/sift_rs/src/gen/sift.channels.v3.rs @@ -68,6 +68,76 @@ pub struct ListChannelsResponse { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct FilterChannel { + #[prost(string, tag="1")] + pub channel_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub organization_id: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub asset_id: ::prost::alloc::string::String, + #[prost(string, tag="6")] + pub asset_name: ::prost::alloc::string::String, + #[prost(string, tag="7")] + pub description: ::prost::alloc::string::String, + #[prost(string, tag="8")] + pub display_description: ::prost::alloc::string::String, + #[prost(string, tag="9")] + pub unit_id: ::prost::alloc::string::String, + #[prost(string, tag="10")] + pub display_unit_id: ::prost::alloc::string::String, + #[prost(string, tag="11")] + pub unit: ::prost::alloc::string::String, + #[prost(string, tag="12")] + pub display_unit: ::prost::alloc::string::String, + #[prost(enumeration="super::super::common::r#type::v1::ChannelDataType", tag="13")] + pub data_type: i32, + #[prost(message, repeated, tag="14")] + pub enum_types: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="15")] + pub bit_field_elements: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="16")] + pub metadata: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FilterChannelsRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub search_term: ::prost::alloc::string::String, + #[prost(bool, tag="5")] + pub is_search_case_sensitive: bool, + #[prost(bool, tag="6")] + pub is_search_regexp: bool, + #[prost(string, repeated, tag="7")] + pub asset_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="8")] + pub run_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="9")] + pub channel_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="10")] + pub asset_tag_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(enumeration="super::super::common::r#type::v1::ChannelDataType", repeated, tag="11")] + pub data_types: ::prost::alloc::vec::Vec, + #[prost(string, repeated, tag="12")] + pub metadata_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="13")] + pub metadata_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FilterChannelsResponse { + #[prost(message, repeated, tag="1")] + pub channels: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct UpdateChannelRequest { #[prost(message, optional, tag="1")] pub channel: ::core::option::Option, diff --git a/rust/crates/sift_rs/src/gen/sift.channels.v3.serde.rs b/rust/crates/sift_rs/src/gen/sift.channels.v3.serde.rs index da913fb17..7334b6a8c 100644 --- a/rust/crates/sift_rs/src/gen/sift.channels.v3.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.channels.v3.serde.rs @@ -342,6 +342,753 @@ impl<'de> serde::Deserialize<'de> for Channel { deserializer.deserialize_struct("sift.channels.v3.Channel", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for FilterChannel { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.channel_id.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + if !self.asset_id.is_empty() { + len += 1; + } + if !self.asset_name.is_empty() { + len += 1; + } + if !self.description.is_empty() { + len += 1; + } + if !self.display_description.is_empty() { + len += 1; + } + if !self.unit_id.is_empty() { + len += 1; + } + if !self.display_unit_id.is_empty() { + len += 1; + } + if !self.unit.is_empty() { + len += 1; + } + if !self.display_unit.is_empty() { + len += 1; + } + if self.data_type != 0 { + len += 1; + } + if !self.enum_types.is_empty() { + len += 1; + } + if !self.bit_field_elements.is_empty() { + len += 1; + } + if !self.metadata.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.channels.v3.FilterChannel", len)?; + if !self.channel_id.is_empty() { + struct_ser.serialize_field("channelId", &self.channel_id)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + if !self.asset_id.is_empty() { + struct_ser.serialize_field("assetId", &self.asset_id)?; + } + if !self.asset_name.is_empty() { + struct_ser.serialize_field("assetName", &self.asset_name)?; + } + if !self.description.is_empty() { + struct_ser.serialize_field("description", &self.description)?; + } + if !self.display_description.is_empty() { + struct_ser.serialize_field("displayDescription", &self.display_description)?; + } + if !self.unit_id.is_empty() { + struct_ser.serialize_field("unitId", &self.unit_id)?; + } + if !self.display_unit_id.is_empty() { + struct_ser.serialize_field("displayUnitId", &self.display_unit_id)?; + } + if !self.unit.is_empty() { + struct_ser.serialize_field("unit", &self.unit)?; + } + if !self.display_unit.is_empty() { + struct_ser.serialize_field("displayUnit", &self.display_unit)?; + } + if self.data_type != 0 { + let v = super::super::common::r#type::v1::ChannelDataType::try_from(self.data_type) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.data_type)))?; + struct_ser.serialize_field("dataType", &v)?; + } + if !self.enum_types.is_empty() { + struct_ser.serialize_field("enumTypes", &self.enum_types)?; + } + if !self.bit_field_elements.is_empty() { + struct_ser.serialize_field("bitFieldElements", &self.bit_field_elements)?; + } + if !self.metadata.is_empty() { + struct_ser.serialize_field("metadata", &self.metadata)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FilterChannel { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "channel_id", + "channelId", + "name", + "organization_id", + "organizationId", + "asset_id", + "assetId", + "asset_name", + "assetName", + "description", + "display_description", + "displayDescription", + "unit_id", + "unitId", + "display_unit_id", + "displayUnitId", + "unit", + "display_unit", + "displayUnit", + "data_type", + "dataType", + "enum_types", + "enumTypes", + "bit_field_elements", + "bitFieldElements", + "metadata", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ChannelId, + Name, + OrganizationId, + AssetId, + AssetName, + Description, + DisplayDescription, + UnitId, + DisplayUnitId, + Unit, + DisplayUnit, + DataType, + EnumTypes, + BitFieldElements, + Metadata, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "channelId" | "channel_id" => Ok(GeneratedField::ChannelId), + "name" => Ok(GeneratedField::Name), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "assetId" | "asset_id" => Ok(GeneratedField::AssetId), + "assetName" | "asset_name" => Ok(GeneratedField::AssetName), + "description" => Ok(GeneratedField::Description), + "displayDescription" | "display_description" => Ok(GeneratedField::DisplayDescription), + "unitId" | "unit_id" => Ok(GeneratedField::UnitId), + "displayUnitId" | "display_unit_id" => Ok(GeneratedField::DisplayUnitId), + "unit" => Ok(GeneratedField::Unit), + "displayUnit" | "display_unit" => Ok(GeneratedField::DisplayUnit), + "dataType" | "data_type" => Ok(GeneratedField::DataType), + "enumTypes" | "enum_types" => Ok(GeneratedField::EnumTypes), + "bitFieldElements" | "bit_field_elements" => Ok(GeneratedField::BitFieldElements), + "metadata" => Ok(GeneratedField::Metadata), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FilterChannel; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.channels.v3.FilterChannel") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut channel_id__ = None; + let mut name__ = None; + let mut organization_id__ = None; + let mut asset_id__ = None; + let mut asset_name__ = None; + let mut description__ = None; + let mut display_description__ = None; + let mut unit_id__ = None; + let mut display_unit_id__ = None; + let mut unit__ = None; + let mut display_unit__ = None; + let mut data_type__ = None; + let mut enum_types__ = None; + let mut bit_field_elements__ = None; + let mut metadata__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ChannelId => { + if channel_id__.is_some() { + return Err(serde::de::Error::duplicate_field("channelId")); + } + channel_id__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + GeneratedField::AssetId => { + if asset_id__.is_some() { + return Err(serde::de::Error::duplicate_field("assetId")); + } + asset_id__ = Some(map_.next_value()?); + } + GeneratedField::AssetName => { + if asset_name__.is_some() { + return Err(serde::de::Error::duplicate_field("assetName")); + } + asset_name__ = Some(map_.next_value()?); + } + GeneratedField::Description => { + if description__.is_some() { + return Err(serde::de::Error::duplicate_field("description")); + } + description__ = Some(map_.next_value()?); + } + GeneratedField::DisplayDescription => { + if display_description__.is_some() { + return Err(serde::de::Error::duplicate_field("displayDescription")); + } + display_description__ = Some(map_.next_value()?); + } + GeneratedField::UnitId => { + if unit_id__.is_some() { + return Err(serde::de::Error::duplicate_field("unitId")); + } + unit_id__ = Some(map_.next_value()?); + } + GeneratedField::DisplayUnitId => { + if display_unit_id__.is_some() { + return Err(serde::de::Error::duplicate_field("displayUnitId")); + } + display_unit_id__ = Some(map_.next_value()?); + } + GeneratedField::Unit => { + if unit__.is_some() { + return Err(serde::de::Error::duplicate_field("unit")); + } + unit__ = Some(map_.next_value()?); + } + GeneratedField::DisplayUnit => { + if display_unit__.is_some() { + return Err(serde::de::Error::duplicate_field("displayUnit")); + } + display_unit__ = Some(map_.next_value()?); + } + GeneratedField::DataType => { + if data_type__.is_some() { + return Err(serde::de::Error::duplicate_field("dataType")); + } + data_type__ = Some(map_.next_value::()? as i32); + } + GeneratedField::EnumTypes => { + if enum_types__.is_some() { + return Err(serde::de::Error::duplicate_field("enumTypes")); + } + enum_types__ = Some(map_.next_value()?); + } + GeneratedField::BitFieldElements => { + if bit_field_elements__.is_some() { + return Err(serde::de::Error::duplicate_field("bitFieldElements")); + } + bit_field_elements__ = Some(map_.next_value()?); + } + GeneratedField::Metadata => { + if metadata__.is_some() { + return Err(serde::de::Error::duplicate_field("metadata")); + } + metadata__ = Some(map_.next_value()?); + } + } + } + Ok(FilterChannel { + channel_id: channel_id__.unwrap_or_default(), + name: name__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + asset_id: asset_id__.unwrap_or_default(), + asset_name: asset_name__.unwrap_or_default(), + description: description__.unwrap_or_default(), + display_description: display_description__.unwrap_or_default(), + unit_id: unit_id__.unwrap_or_default(), + display_unit_id: display_unit_id__.unwrap_or_default(), + unit: unit__.unwrap_or_default(), + display_unit: display_unit__.unwrap_or_default(), + data_type: data_type__.unwrap_or_default(), + enum_types: enum_types__.unwrap_or_default(), + bit_field_elements: bit_field_elements__.unwrap_or_default(), + metadata: metadata__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.channels.v3.FilterChannel", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FilterChannelsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.search_term.is_empty() { + len += 1; + } + if self.is_search_case_sensitive { + len += 1; + } + if self.is_search_regexp { + len += 1; + } + if !self.asset_ids.is_empty() { + len += 1; + } + if !self.run_ids.is_empty() { + len += 1; + } + if !self.channel_ids.is_empty() { + len += 1; + } + if !self.asset_tag_ids.is_empty() { + len += 1; + } + if !self.data_types.is_empty() { + len += 1; + } + if !self.metadata_keys.is_empty() { + len += 1; + } + if !self.metadata_values.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.channels.v3.FilterChannelsRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.search_term.is_empty() { + struct_ser.serialize_field("searchTerm", &self.search_term)?; + } + if self.is_search_case_sensitive { + struct_ser.serialize_field("isSearchCaseSensitive", &self.is_search_case_sensitive)?; + } + if self.is_search_regexp { + struct_ser.serialize_field("isSearchRegexp", &self.is_search_regexp)?; + } + if !self.asset_ids.is_empty() { + struct_ser.serialize_field("assetIds", &self.asset_ids)?; + } + if !self.run_ids.is_empty() { + struct_ser.serialize_field("runIds", &self.run_ids)?; + } + if !self.channel_ids.is_empty() { + struct_ser.serialize_field("channelIds", &self.channel_ids)?; + } + if !self.asset_tag_ids.is_empty() { + struct_ser.serialize_field("assetTagIds", &self.asset_tag_ids)?; + } + if !self.data_types.is_empty() { + let v = self.data_types.iter().cloned().map(|v| { + super::super::common::r#type::v1::ChannelDataType::try_from(v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", v))) + }).collect::, _>>()?; + struct_ser.serialize_field("dataTypes", &v)?; + } + if !self.metadata_keys.is_empty() { + struct_ser.serialize_field("metadataKeys", &self.metadata_keys)?; + } + if !self.metadata_values.is_empty() { + struct_ser.serialize_field("metadataValues", &self.metadata_values)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FilterChannelsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "search_term", + "searchTerm", + "is_search_case_sensitive", + "isSearchCaseSensitive", + "is_search_regexp", + "isSearchRegexp", + "asset_ids", + "assetIds", + "run_ids", + "runIds", + "channel_ids", + "channelIds", + "asset_tag_ids", + "assetTagIds", + "data_types", + "dataTypes", + "metadata_keys", + "metadataKeys", + "metadata_values", + "metadataValues", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + SearchTerm, + IsSearchCaseSensitive, + IsSearchRegexp, + AssetIds, + RunIds, + ChannelIds, + AssetTagIds, + DataTypes, + MetadataKeys, + MetadataValues, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "searchTerm" | "search_term" => Ok(GeneratedField::SearchTerm), + "isSearchCaseSensitive" | "is_search_case_sensitive" => Ok(GeneratedField::IsSearchCaseSensitive), + "isSearchRegexp" | "is_search_regexp" => Ok(GeneratedField::IsSearchRegexp), + "assetIds" | "asset_ids" => Ok(GeneratedField::AssetIds), + "runIds" | "run_ids" => Ok(GeneratedField::RunIds), + "channelIds" | "channel_ids" => Ok(GeneratedField::ChannelIds), + "assetTagIds" | "asset_tag_ids" => Ok(GeneratedField::AssetTagIds), + "dataTypes" | "data_types" => Ok(GeneratedField::DataTypes), + "metadataKeys" | "metadata_keys" => Ok(GeneratedField::MetadataKeys), + "metadataValues" | "metadata_values" => Ok(GeneratedField::MetadataValues), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FilterChannelsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.channels.v3.FilterChannelsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut search_term__ = None; + let mut is_search_case_sensitive__ = None; + let mut is_search_regexp__ = None; + let mut asset_ids__ = None; + let mut run_ids__ = None; + let mut channel_ids__ = None; + let mut asset_tag_ids__ = None; + let mut data_types__ = None; + let mut metadata_keys__ = None; + let mut metadata_values__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::SearchTerm => { + if search_term__.is_some() { + return Err(serde::de::Error::duplicate_field("searchTerm")); + } + search_term__ = Some(map_.next_value()?); + } + GeneratedField::IsSearchCaseSensitive => { + if is_search_case_sensitive__.is_some() { + return Err(serde::de::Error::duplicate_field("isSearchCaseSensitive")); + } + is_search_case_sensitive__ = Some(map_.next_value()?); + } + GeneratedField::IsSearchRegexp => { + if is_search_regexp__.is_some() { + return Err(serde::de::Error::duplicate_field("isSearchRegexp")); + } + is_search_regexp__ = Some(map_.next_value()?); + } + GeneratedField::AssetIds => { + if asset_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("assetIds")); + } + asset_ids__ = Some(map_.next_value()?); + } + GeneratedField::RunIds => { + if run_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("runIds")); + } + run_ids__ = Some(map_.next_value()?); + } + GeneratedField::ChannelIds => { + if channel_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("channelIds")); + } + channel_ids__ = Some(map_.next_value()?); + } + GeneratedField::AssetTagIds => { + if asset_tag_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("assetTagIds")); + } + asset_tag_ids__ = Some(map_.next_value()?); + } + GeneratedField::DataTypes => { + if data_types__.is_some() { + return Err(serde::de::Error::duplicate_field("dataTypes")); + } + data_types__ = Some(map_.next_value::>()?.into_iter().map(|x| x as i32).collect()); + } + GeneratedField::MetadataKeys => { + if metadata_keys__.is_some() { + return Err(serde::de::Error::duplicate_field("metadataKeys")); + } + metadata_keys__ = Some(map_.next_value()?); + } + GeneratedField::MetadataValues => { + if metadata_values__.is_some() { + return Err(serde::de::Error::duplicate_field("metadataValues")); + } + metadata_values__ = Some(map_.next_value()?); + } + } + } + Ok(FilterChannelsRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + search_term: search_term__.unwrap_or_default(), + is_search_case_sensitive: is_search_case_sensitive__.unwrap_or_default(), + is_search_regexp: is_search_regexp__.unwrap_or_default(), + asset_ids: asset_ids__.unwrap_or_default(), + run_ids: run_ids__.unwrap_or_default(), + channel_ids: channel_ids__.unwrap_or_default(), + asset_tag_ids: asset_tag_ids__.unwrap_or_default(), + data_types: data_types__.unwrap_or_default(), + metadata_keys: metadata_keys__.unwrap_or_default(), + metadata_values: metadata_values__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.channels.v3.FilterChannelsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FilterChannelsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.channels.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.channels.v3.FilterChannelsResponse", len)?; + if !self.channels.is_empty() { + struct_ser.serialize_field("channels", &self.channels)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FilterChannelsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "channels", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Channels, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "channels" => Ok(GeneratedField::Channels), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FilterChannelsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.channels.v3.FilterChannelsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut channels__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Channels => { + if channels__.is_some() { + return Err(serde::de::Error::duplicate_field("channels")); + } + channels__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(FilterChannelsResponse { + channels: channels__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.channels.v3.FilterChannelsResponse", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for GetChannelRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift.common.type.v1.rs b/rust/crates/sift_rs/src/gen/sift.common.type.v1.rs index b54425b5a..106867681 100644 --- a/rust/crates/sift_rs/src/gen/sift.common.type.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.common.type.v1.rs @@ -76,92 +76,6 @@ impl ChannelDataType { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ResourceIdentifier { - #[prost(oneof="resource_identifier::Identifier", tags="1, 2")] - pub identifier: ::core::option::Option, -} -/// Nested message and enum types in `ResourceIdentifier`. -pub mod resource_identifier { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Identifier { - #[prost(string, tag="1")] - Id(::prost::alloc::string::String), - #[prost(string, tag="2")] - ClientKey(::prost::alloc::string::String), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct NamedResource { - #[prost(oneof="named_resource::Resource", tags="1, 2")] - pub resource: ::core::option::Option, -} -/// Nested message and enum types in `NamedResource`. -pub mod named_resource { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Resource { - #[prost(string, tag="1")] - Id(::prost::alloc::string::String), - #[prost(string, tag="2")] - Name(::prost::alloc::string::String), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ResourceIdentifiers { - #[prost(oneof="resource_identifiers::Identifiers", tags="1, 2")] - pub identifiers: ::core::option::Option, -} -/// Nested message and enum types in `ResourceIdentifiers`. -pub mod resource_identifiers { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Identifiers { - #[prost(message, tag="1")] - Ids(super::Ids), - #[prost(message, tag="2")] - ClientKeys(super::ClientKeys), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct NamedResources { - #[prost(oneof="named_resources::Resources", tags="1, 2")] - pub resources: ::core::option::Option, -} -/// Nested message and enum types in `NamedResources`. -pub mod named_resources { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Resources { - #[prost(message, tag="1")] - Ids(super::Ids), - #[prost(message, tag="2")] - Names(super::Names), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Ids { - #[prost(string, repeated, tag="1")] - pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ClientKeys { - #[prost(string, repeated, tag="1")] - pub client_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Names { - #[prost(string, repeated, tag="1")] - pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] pub struct UserDefinedFunction { #[prost(string, tag="1")] pub user_defined_function_id: ::prost::alloc::string::String, @@ -197,6 +111,8 @@ pub struct UserDefinedFunction { pub modified_by_user_id: ::prost::alloc::string::String, #[prost(message, repeated, tag="18")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(bool, tag="19")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -248,6 +164,92 @@ impl FunctionDataType { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResourceIdentifier { + #[prost(oneof="resource_identifier::Identifier", tags="1, 2")] + pub identifier: ::core::option::Option, +} +/// Nested message and enum types in `ResourceIdentifier`. +pub mod resource_identifier { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Identifier { + #[prost(string, tag="1")] + Id(::prost::alloc::string::String), + #[prost(string, tag="2")] + ClientKey(::prost::alloc::string::String), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct NamedResource { + #[prost(oneof="named_resource::Resource", tags="1, 2")] + pub resource: ::core::option::Option, +} +/// Nested message and enum types in `NamedResource`. +pub mod named_resource { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Resource { + #[prost(string, tag="1")] + Id(::prost::alloc::string::String), + #[prost(string, tag="2")] + Name(::prost::alloc::string::String), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResourceIdentifiers { + #[prost(oneof="resource_identifiers::Identifiers", tags="1, 2")] + pub identifiers: ::core::option::Option, +} +/// Nested message and enum types in `ResourceIdentifiers`. +pub mod resource_identifiers { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Identifiers { + #[prost(message, tag="1")] + Ids(super::Ids), + #[prost(message, tag="2")] + ClientKeys(super::ClientKeys), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct NamedResources { + #[prost(oneof="named_resources::Resources", tags="1, 2")] + pub resources: ::core::option::Option, +} +/// Nested message and enum types in `NamedResources`. +pub mod named_resources { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Resources { + #[prost(message, tag="1")] + Ids(super::Ids), + #[prost(message, tag="2")] + Names(super::Names), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ids { + #[prost(string, repeated, tag="1")] + pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ClientKeys { + #[prost(string, repeated, tag="1")] + pub client_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Names { + #[prost(string, repeated, tag="1")] + pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct ChannelBitFieldElement { #[prost(string, tag="1")] pub name: ::prost::alloc::string::String, diff --git a/rust/crates/sift_rs/src/gen/sift.common.type.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.common.type.v1.serde.rs index 6cc9e5340..9792fb7b8 100644 --- a/rust/crates/sift_rs/src/gen/sift.common.type.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.common.type.v1.serde.rs @@ -2139,6 +2139,9 @@ impl serde::Serialize for UserDefinedFunction { if !self.metadata.is_empty() { len += 1; } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.common.r#type.v1.UserDefinedFunction", len)?; if !self.user_defined_function_id.is_empty() { struct_ser.serialize_field("userDefinedFunctionId", &self.user_defined_function_id)?; @@ -2193,6 +2196,9 @@ impl serde::Serialize for UserDefinedFunction { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -2232,6 +2238,8 @@ impl<'de> serde::Deserialize<'de> for UserDefinedFunction { "modified_by_user_id", "modifiedByUserId", "metadata", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -2253,6 +2261,7 @@ impl<'de> serde::Deserialize<'de> for UserDefinedFunction { CreatedByUserId, ModifiedByUserId, Metadata, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -2291,6 +2300,7 @@ impl<'de> serde::Deserialize<'de> for UserDefinedFunction { "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), "metadata" => Ok(GeneratedField::Metadata), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -2327,6 +2337,7 @@ impl<'de> serde::Deserialize<'de> for UserDefinedFunction { let mut created_by_user_id__ = None; let mut modified_by_user_id__ = None; let mut metadata__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::UserDefinedFunctionId => { @@ -2433,6 +2444,12 @@ impl<'de> serde::Deserialize<'de> for UserDefinedFunction { } metadata__ = Some(map_.next_value()?); } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(UserDefinedFunction { @@ -2453,6 +2470,7 @@ impl<'de> serde::Deserialize<'de> for UserDefinedFunction { created_by_user_id: created_by_user_id__.unwrap_or_default(), modified_by_user_id: modified_by_user_id__.unwrap_or_default(), metadata: metadata__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.data.v2.rs b/rust/crates/sift_rs/src/gen/sift.data.v2.rs index acd19d3aa..c7b250958 100644 --- a/rust/crates/sift_rs/src/gen/sift.data.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.data.v2.rs @@ -52,6 +52,8 @@ pub struct CalculatedChannelQuery { pub run_id: ::core::option::Option<::prost::alloc::string::String>, #[prost(enumeration="super::super::calculated_channels::v1::ExpressionMode", optional, tag="4")] pub mode: ::core::option::Option, + #[prost(bool, optional, tag="5")] + pub combine_run_data: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.data.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.data.v2.serde.rs index 7578dbcf5..dc0bf89c3 100644 --- a/rust/crates/sift_rs/src/gen/sift.data.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.data.v2.serde.rs @@ -780,6 +780,9 @@ impl serde::Serialize for CalculatedChannelQuery { if self.mode.is_some() { len += 1; } + if self.combine_run_data.is_some() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.data.v2.CalculatedChannelQuery", len)?; if !self.channel_key.is_empty() { struct_ser.serialize_field("channelKey", &self.channel_key)?; @@ -795,6 +798,9 @@ impl serde::Serialize for CalculatedChannelQuery { .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; struct_ser.serialize_field("mode", &v)?; } + if let Some(v) = self.combine_run_data.as_ref() { + struct_ser.serialize_field("combineRunData", v)?; + } struct_ser.end() } } @@ -811,6 +817,8 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannelQuery { "run_id", "runId", "mode", + "combine_run_data", + "combineRunData", ]; #[allow(clippy::enum_variant_names)] @@ -819,6 +827,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannelQuery { Expression, RunId, Mode, + CombineRunData, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -844,6 +853,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannelQuery { "expression" => Ok(GeneratedField::Expression), "runId" | "run_id" => Ok(GeneratedField::RunId), "mode" => Ok(GeneratedField::Mode), + "combineRunData" | "combine_run_data" => Ok(GeneratedField::CombineRunData), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -867,6 +877,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannelQuery { let mut expression__ = None; let mut run_id__ = None; let mut mode__ = None; + let mut combine_run_data__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::ChannelKey => { @@ -893,6 +904,12 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannelQuery { } mode__ = map_.next_value::<::std::option::Option>()?.map(|x| x as i32); } + GeneratedField::CombineRunData => { + if combine_run_data__.is_some() { + return Err(serde::de::Error::duplicate_field("combineRunData")); + } + combine_run_data__ = map_.next_value()?; + } } } Ok(CalculatedChannelQuery { @@ -900,6 +917,7 @@ impl<'de> serde::Deserialize<'de> for CalculatedChannelQuery { expression: expression__, run_id: run_id__, mode: mode__, + combine_run_data: combine_run_data__, }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.data_imports.v2.rs b/rust/crates/sift_rs/src/gen/sift.data_imports.v2.rs index b4a22196a..2513a68fe 100644 --- a/rust/crates/sift_rs/src/gen/sift.data_imports.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.data_imports.v2.rs @@ -117,6 +117,8 @@ pub struct TdmsConfig { pub start_time_override: ::core::option::Option<::pbjson_types::Timestamp>, #[prost(uint64, optional, tag="4")] pub file_size: ::core::option::Option, + #[prost(string, tag="5")] + pub run_id: ::prost::alloc::string::String, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.data_imports.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.data_imports.v2.serde.rs index c13b166c4..223b2e4cd 100644 --- a/rust/crates/sift_rs/src/gen/sift.data_imports.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.data_imports.v2.serde.rs @@ -2968,6 +2968,9 @@ impl serde::Serialize for TdmsConfig { if self.file_size.is_some() { len += 1; } + if !self.run_id.is_empty() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.data_imports.v2.TDMSConfig", len)?; if !self.asset_name.is_empty() { struct_ser.serialize_field("assetName", &self.asset_name)?; @@ -2982,6 +2985,9 @@ impl serde::Serialize for TdmsConfig { #[allow(clippy::needless_borrow)] struct_ser.serialize_field("fileSize", ToString::to_string(&v).as_str())?; } + if !self.run_id.is_empty() { + struct_ser.serialize_field("runId", &self.run_id)?; + } struct_ser.end() } } @@ -3000,6 +3006,8 @@ impl<'de> serde::Deserialize<'de> for TdmsConfig { "startTimeOverride", "file_size", "fileSize", + "run_id", + "runId", ]; #[allow(clippy::enum_variant_names)] @@ -3008,6 +3016,7 @@ impl<'de> serde::Deserialize<'de> for TdmsConfig { RunName, StartTimeOverride, FileSize, + RunId, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -3033,6 +3042,7 @@ impl<'de> serde::Deserialize<'de> for TdmsConfig { "runName" | "run_name" => Ok(GeneratedField::RunName), "startTimeOverride" | "start_time_override" => Ok(GeneratedField::StartTimeOverride), "fileSize" | "file_size" => Ok(GeneratedField::FileSize), + "runId" | "run_id" => Ok(GeneratedField::RunId), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -3056,6 +3066,7 @@ impl<'de> serde::Deserialize<'de> for TdmsConfig { let mut run_name__ = None; let mut start_time_override__ = None; let mut file_size__ = None; + let mut run_id__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::AssetName => { @@ -3084,6 +3095,12 @@ impl<'de> serde::Deserialize<'de> for TdmsConfig { map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) ; } + GeneratedField::RunId => { + if run_id__.is_some() { + return Err(serde::de::Error::duplicate_field("runId")); + } + run_id__ = Some(map_.next_value()?); + } } } Ok(TdmsConfig { @@ -3091,6 +3108,7 @@ impl<'de> serde::Deserialize<'de> for TdmsConfig { run_name: run_name__.unwrap_or_default(), start_time_override: start_time_override__, file_size: file_size__, + run_id: run_id__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.external_sync.v1.rs b/rust/crates/sift_rs/src/gen/sift.external_sync.v1.rs new file mode 100644 index 000000000..7ecc54654 --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift.external_sync.v1.rs @@ -0,0 +1,103 @@ +// @generated +// This file is @generated by prost-build. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExternalSync { + #[prost(string, tag="1")] + pub organization_id: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub most_recent_sync_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, optional, tag="3")] + pub most_recent_sync_by_user_id: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, tag="4")] + pub scim_server_url: ::prost::alloc::string::String, + #[prost(message, optional, tag="5")] + pub token_created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(uint32, tag="6")] + pub token_lifetime_seconds: u32, + #[prost(string, optional, tag="7")] + pub most_recent_token_by_user_id: ::core::option::Option<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExternalSyncToken { + #[prost(string, tag="1")] + pub token_id: ::prost::alloc::string::String, + #[prost(uint32, tag="2")] + pub lifetime_seconds: u32, + #[prost(message, optional, tag="3")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="4")] + pub created_by_user_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct SyncOrganizationRequest { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SyncOrganizationResponse { + #[prost(message, optional, tag="1")] + pub external_sync: ::core::option::Option, + #[prost(uint32, tag="2")] + pub existing_user_count: u32, + #[prost(string, repeated, tag="3")] + pub added_to_organization_user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, repeated, tag="4")] + pub created_users: ::prost::alloc::vec::Vec, + #[prost(string, repeated, tag="5")] + pub deactivated_user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(uint32, tag="6")] + pub existing_group_count: u32, + #[prost(message, repeated, tag="7")] + pub created_user_groups: ::prost::alloc::vec::Vec, + #[prost(string, repeated, tag="8")] + pub deleted_user_group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct GenerateTokenRequest { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GenerateTokenResponse { + #[prost(message, optional, tag="1")] + pub external_sync: ::core::option::Option, + #[prost(string, tag="2")] + pub token: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetExternalSyncRequest { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetExternalSyncResponse { + #[prost(bool, tag="1")] + pub success: bool, + #[prost(message, optional, tag="2")] + pub external_sync: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListExternalSyncTokensRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListExternalSyncTokensResponse { + #[prost(message, repeated, tag="1")] + pub external_sync_tokens: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +include!("sift.external_sync.v1.tonic.rs"); +include!("sift.external_sync.v1.serde.rs"); +// @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift.external_sync.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.external_sync.v1.serde.rs new file mode 100644 index 000000000..8a4c599a0 --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift.external_sync.v1.serde.rs @@ -0,0 +1,1261 @@ +// @generated +impl serde::Serialize for ExternalSync { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.organization_id.is_empty() { + len += 1; + } + if self.most_recent_sync_date.is_some() { + len += 1; + } + if self.most_recent_sync_by_user_id.is_some() { + len += 1; + } + if !self.scim_server_url.is_empty() { + len += 1; + } + if self.token_created_date.is_some() { + len += 1; + } + if self.token_lifetime_seconds != 0 { + len += 1; + } + if self.most_recent_token_by_user_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.external_sync.v1.ExternalSync", len)?; + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + if let Some(v) = self.most_recent_sync_date.as_ref() { + struct_ser.serialize_field("mostRecentSyncDate", v)?; + } + if let Some(v) = self.most_recent_sync_by_user_id.as_ref() { + struct_ser.serialize_field("mostRecentSyncByUserId", v)?; + } + if !self.scim_server_url.is_empty() { + struct_ser.serialize_field("scimServerUrl", &self.scim_server_url)?; + } + if let Some(v) = self.token_created_date.as_ref() { + struct_ser.serialize_field("tokenCreatedDate", v)?; + } + if self.token_lifetime_seconds != 0 { + struct_ser.serialize_field("tokenLifetimeSeconds", &self.token_lifetime_seconds)?; + } + if let Some(v) = self.most_recent_token_by_user_id.as_ref() { + struct_ser.serialize_field("mostRecentTokenByUserId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ExternalSync { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "organization_id", + "organizationId", + "most_recent_sync_date", + "mostRecentSyncDate", + "most_recent_sync_by_user_id", + "mostRecentSyncByUserId", + "scim_server_url", + "scimServerUrl", + "token_created_date", + "tokenCreatedDate", + "token_lifetime_seconds", + "tokenLifetimeSeconds", + "most_recent_token_by_user_id", + "mostRecentTokenByUserId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + OrganizationId, + MostRecentSyncDate, + MostRecentSyncByUserId, + ScimServerUrl, + TokenCreatedDate, + TokenLifetimeSeconds, + MostRecentTokenByUserId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "mostRecentSyncDate" | "most_recent_sync_date" => Ok(GeneratedField::MostRecentSyncDate), + "mostRecentSyncByUserId" | "most_recent_sync_by_user_id" => Ok(GeneratedField::MostRecentSyncByUserId), + "scimServerUrl" | "scim_server_url" => Ok(GeneratedField::ScimServerUrl), + "tokenCreatedDate" | "token_created_date" => Ok(GeneratedField::TokenCreatedDate), + "tokenLifetimeSeconds" | "token_lifetime_seconds" => Ok(GeneratedField::TokenLifetimeSeconds), + "mostRecentTokenByUserId" | "most_recent_token_by_user_id" => Ok(GeneratedField::MostRecentTokenByUserId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ExternalSync; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.ExternalSync") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut organization_id__ = None; + let mut most_recent_sync_date__ = None; + let mut most_recent_sync_by_user_id__ = None; + let mut scim_server_url__ = None; + let mut token_created_date__ = None; + let mut token_lifetime_seconds__ = None; + let mut most_recent_token_by_user_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + GeneratedField::MostRecentSyncDate => { + if most_recent_sync_date__.is_some() { + return Err(serde::de::Error::duplicate_field("mostRecentSyncDate")); + } + most_recent_sync_date__ = map_.next_value()?; + } + GeneratedField::MostRecentSyncByUserId => { + if most_recent_sync_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("mostRecentSyncByUserId")); + } + most_recent_sync_by_user_id__ = map_.next_value()?; + } + GeneratedField::ScimServerUrl => { + if scim_server_url__.is_some() { + return Err(serde::de::Error::duplicate_field("scimServerUrl")); + } + scim_server_url__ = Some(map_.next_value()?); + } + GeneratedField::TokenCreatedDate => { + if token_created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("tokenCreatedDate")); + } + token_created_date__ = map_.next_value()?; + } + GeneratedField::TokenLifetimeSeconds => { + if token_lifetime_seconds__.is_some() { + return Err(serde::de::Error::duplicate_field("tokenLifetimeSeconds")); + } + token_lifetime_seconds__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::MostRecentTokenByUserId => { + if most_recent_token_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("mostRecentTokenByUserId")); + } + most_recent_token_by_user_id__ = map_.next_value()?; + } + } + } + Ok(ExternalSync { + organization_id: organization_id__.unwrap_or_default(), + most_recent_sync_date: most_recent_sync_date__, + most_recent_sync_by_user_id: most_recent_sync_by_user_id__, + scim_server_url: scim_server_url__.unwrap_or_default(), + token_created_date: token_created_date__, + token_lifetime_seconds: token_lifetime_seconds__.unwrap_or_default(), + most_recent_token_by_user_id: most_recent_token_by_user_id__, + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.ExternalSync", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ExternalSyncToken { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.token_id.is_empty() { + len += 1; + } + if self.lifetime_seconds != 0 { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.external_sync.v1.ExternalSyncToken", len)?; + if !self.token_id.is_empty() { + struct_ser.serialize_field("tokenId", &self.token_id)?; + } + if self.lifetime_seconds != 0 { + struct_ser.serialize_field("lifetimeSeconds", &self.lifetime_seconds)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ExternalSyncToken { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "token_id", + "tokenId", + "lifetime_seconds", + "lifetimeSeconds", + "created_date", + "createdDate", + "created_by_user_id", + "createdByUserId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + TokenId, + LifetimeSeconds, + CreatedDate, + CreatedByUserId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "tokenId" | "token_id" => Ok(GeneratedField::TokenId), + "lifetimeSeconds" | "lifetime_seconds" => Ok(GeneratedField::LifetimeSeconds), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ExternalSyncToken; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.ExternalSyncToken") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut token_id__ = None; + let mut lifetime_seconds__ = None; + let mut created_date__ = None; + let mut created_by_user_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::TokenId => { + if token_id__.is_some() { + return Err(serde::de::Error::duplicate_field("tokenId")); + } + token_id__ = Some(map_.next_value()?); + } + GeneratedField::LifetimeSeconds => { + if lifetime_seconds__.is_some() { + return Err(serde::de::Error::duplicate_field("lifetimeSeconds")); + } + lifetime_seconds__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + } + } + Ok(ExternalSyncToken { + token_id: token_id__.unwrap_or_default(), + lifetime_seconds: lifetime_seconds__.unwrap_or_default(), + created_date: created_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.ExternalSyncToken", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GenerateTokenRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.external_sync.v1.GenerateTokenRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GenerateTokenRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GenerateTokenRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.GenerateTokenRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(GenerateTokenRequest { + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.GenerateTokenRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GenerateTokenResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.external_sync.is_some() { + len += 1; + } + if !self.token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.external_sync.v1.GenerateTokenResponse", len)?; + if let Some(v) = self.external_sync.as_ref() { + struct_ser.serialize_field("externalSync", v)?; + } + if !self.token.is_empty() { + struct_ser.serialize_field("token", &self.token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GenerateTokenResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "external_sync", + "externalSync", + "token", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ExternalSync, + Token, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "externalSync" | "external_sync" => Ok(GeneratedField::ExternalSync), + "token" => Ok(GeneratedField::Token), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GenerateTokenResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.GenerateTokenResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut external_sync__ = None; + let mut token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ExternalSync => { + if external_sync__.is_some() { + return Err(serde::de::Error::duplicate_field("externalSync")); + } + external_sync__ = map_.next_value()?; + } + GeneratedField::Token => { + if token__.is_some() { + return Err(serde::de::Error::duplicate_field("token")); + } + token__ = Some(map_.next_value()?); + } + } + } + Ok(GenerateTokenResponse { + external_sync: external_sync__, + token: token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.GenerateTokenResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetExternalSyncRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.external_sync.v1.GetExternalSyncRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetExternalSyncRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetExternalSyncRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.GetExternalSyncRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(GetExternalSyncRequest { + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.GetExternalSyncRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetExternalSyncResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.success { + len += 1; + } + if self.external_sync.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.external_sync.v1.GetExternalSyncResponse", len)?; + if self.success { + struct_ser.serialize_field("success", &self.success)?; + } + if let Some(v) = self.external_sync.as_ref() { + struct_ser.serialize_field("externalSync", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetExternalSyncResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "success", + "external_sync", + "externalSync", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Success, + ExternalSync, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "success" => Ok(GeneratedField::Success), + "externalSync" | "external_sync" => Ok(GeneratedField::ExternalSync), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetExternalSyncResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.GetExternalSyncResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut success__ = None; + let mut external_sync__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Success => { + if success__.is_some() { + return Err(serde::de::Error::duplicate_field("success")); + } + success__ = Some(map_.next_value()?); + } + GeneratedField::ExternalSync => { + if external_sync__.is_some() { + return Err(serde::de::Error::duplicate_field("externalSync")); + } + external_sync__ = map_.next_value()?; + } + } + } + Ok(GetExternalSyncResponse { + success: success__.unwrap_or_default(), + external_sync: external_sync__, + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.GetExternalSyncResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListExternalSyncTokensRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.external_sync.v1.ListExternalSyncTokensRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListExternalSyncTokensRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "order_by", + "orderBy", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrderBy, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListExternalSyncTokensRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.ListExternalSyncTokensRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut order_by__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + } + } + Ok(ListExternalSyncTokensRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.ListExternalSyncTokensRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListExternalSyncTokensResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.external_sync_tokens.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.external_sync.v1.ListExternalSyncTokensResponse", len)?; + if !self.external_sync_tokens.is_empty() { + struct_ser.serialize_field("externalSyncTokens", &self.external_sync_tokens)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListExternalSyncTokensResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "external_sync_tokens", + "externalSyncTokens", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ExternalSyncTokens, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "externalSyncTokens" | "external_sync_tokens" => Ok(GeneratedField::ExternalSyncTokens), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListExternalSyncTokensResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.ListExternalSyncTokensResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut external_sync_tokens__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ExternalSyncTokens => { + if external_sync_tokens__.is_some() { + return Err(serde::de::Error::duplicate_field("externalSyncTokens")); + } + external_sync_tokens__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListExternalSyncTokensResponse { + external_sync_tokens: external_sync_tokens__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.ListExternalSyncTokensResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SyncOrganizationRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.external_sync.v1.SyncOrganizationRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SyncOrganizationRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SyncOrganizationRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.SyncOrganizationRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(SyncOrganizationRequest { + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.SyncOrganizationRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SyncOrganizationResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.external_sync.is_some() { + len += 1; + } + if self.existing_user_count != 0 { + len += 1; + } + if !self.added_to_organization_user_ids.is_empty() { + len += 1; + } + if !self.created_users.is_empty() { + len += 1; + } + if !self.deactivated_user_ids.is_empty() { + len += 1; + } + if self.existing_group_count != 0 { + len += 1; + } + if !self.created_user_groups.is_empty() { + len += 1; + } + if !self.deleted_user_group_names.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.external_sync.v1.SyncOrganizationResponse", len)?; + if let Some(v) = self.external_sync.as_ref() { + struct_ser.serialize_field("externalSync", v)?; + } + if self.existing_user_count != 0 { + struct_ser.serialize_field("existingUserCount", &self.existing_user_count)?; + } + if !self.added_to_organization_user_ids.is_empty() { + struct_ser.serialize_field("addedToOrganizationUserIds", &self.added_to_organization_user_ids)?; + } + if !self.created_users.is_empty() { + struct_ser.serialize_field("createdUsers", &self.created_users)?; + } + if !self.deactivated_user_ids.is_empty() { + struct_ser.serialize_field("deactivatedUserIds", &self.deactivated_user_ids)?; + } + if self.existing_group_count != 0 { + struct_ser.serialize_field("existingGroupCount", &self.existing_group_count)?; + } + if !self.created_user_groups.is_empty() { + struct_ser.serialize_field("createdUserGroups", &self.created_user_groups)?; + } + if !self.deleted_user_group_names.is_empty() { + struct_ser.serialize_field("deletedUserGroupNames", &self.deleted_user_group_names)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SyncOrganizationResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "external_sync", + "externalSync", + "existing_user_count", + "existingUserCount", + "added_to_organization_user_ids", + "addedToOrganizationUserIds", + "created_users", + "createdUsers", + "deactivated_user_ids", + "deactivatedUserIds", + "existing_group_count", + "existingGroupCount", + "created_user_groups", + "createdUserGroups", + "deleted_user_group_names", + "deletedUserGroupNames", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ExternalSync, + ExistingUserCount, + AddedToOrganizationUserIds, + CreatedUsers, + DeactivatedUserIds, + ExistingGroupCount, + CreatedUserGroups, + DeletedUserGroupNames, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "externalSync" | "external_sync" => Ok(GeneratedField::ExternalSync), + "existingUserCount" | "existing_user_count" => Ok(GeneratedField::ExistingUserCount), + "addedToOrganizationUserIds" | "added_to_organization_user_ids" => Ok(GeneratedField::AddedToOrganizationUserIds), + "createdUsers" | "created_users" => Ok(GeneratedField::CreatedUsers), + "deactivatedUserIds" | "deactivated_user_ids" => Ok(GeneratedField::DeactivatedUserIds), + "existingGroupCount" | "existing_group_count" => Ok(GeneratedField::ExistingGroupCount), + "createdUserGroups" | "created_user_groups" => Ok(GeneratedField::CreatedUserGroups), + "deletedUserGroupNames" | "deleted_user_group_names" => Ok(GeneratedField::DeletedUserGroupNames), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SyncOrganizationResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.external_sync.v1.SyncOrganizationResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut external_sync__ = None; + let mut existing_user_count__ = None; + let mut added_to_organization_user_ids__ = None; + let mut created_users__ = None; + let mut deactivated_user_ids__ = None; + let mut existing_group_count__ = None; + let mut created_user_groups__ = None; + let mut deleted_user_group_names__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ExternalSync => { + if external_sync__.is_some() { + return Err(serde::de::Error::duplicate_field("externalSync")); + } + external_sync__ = map_.next_value()?; + } + GeneratedField::ExistingUserCount => { + if existing_user_count__.is_some() { + return Err(serde::de::Error::duplicate_field("existingUserCount")); + } + existing_user_count__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::AddedToOrganizationUserIds => { + if added_to_organization_user_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("addedToOrganizationUserIds")); + } + added_to_organization_user_ids__ = Some(map_.next_value()?); + } + GeneratedField::CreatedUsers => { + if created_users__.is_some() { + return Err(serde::de::Error::duplicate_field("createdUsers")); + } + created_users__ = Some(map_.next_value()?); + } + GeneratedField::DeactivatedUserIds => { + if deactivated_user_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("deactivatedUserIds")); + } + deactivated_user_ids__ = Some(map_.next_value()?); + } + GeneratedField::ExistingGroupCount => { + if existing_group_count__.is_some() { + return Err(serde::de::Error::duplicate_field("existingGroupCount")); + } + existing_group_count__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::CreatedUserGroups => { + if created_user_groups__.is_some() { + return Err(serde::de::Error::duplicate_field("createdUserGroups")); + } + created_user_groups__ = Some(map_.next_value()?); + } + GeneratedField::DeletedUserGroupNames => { + if deleted_user_group_names__.is_some() { + return Err(serde::de::Error::duplicate_field("deletedUserGroupNames")); + } + deleted_user_group_names__ = Some(map_.next_value()?); + } + } + } + Ok(SyncOrganizationResponse { + external_sync: external_sync__, + existing_user_count: existing_user_count__.unwrap_or_default(), + added_to_organization_user_ids: added_to_organization_user_ids__.unwrap_or_default(), + created_users: created_users__.unwrap_or_default(), + deactivated_user_ids: deactivated_user_ids__.unwrap_or_default(), + existing_group_count: existing_group_count__.unwrap_or_default(), + created_user_groups: created_user_groups__.unwrap_or_default(), + deleted_user_group_names: deleted_user_group_names__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.external_sync.v1.SyncOrganizationResponse", FIELDS, GeneratedVisitor) + } +} diff --git a/rust/crates/sift_rs/src/gen/sift.external_sync.v1.tonic.rs b/rust/crates/sift_rs/src/gen/sift.external_sync.v1.tonic.rs new file mode 100644 index 000000000..44d42a515 --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift.external_sync.v1.tonic.rs @@ -0,0 +1,562 @@ +// @generated +/// Generated client implementations. +pub mod external_sync_service_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + #[derive(Debug, Clone)] + pub struct ExternalSyncServiceClient { + inner: tonic::client::Grpc, + } + impl ExternalSyncServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl ExternalSyncServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> ExternalSyncServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + ExternalSyncServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn sync_organization( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.external_sync.v1.ExternalSyncService/SyncOrganization", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.external_sync.v1.ExternalSyncService", + "SyncOrganization", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn generate_token( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.external_sync.v1.ExternalSyncService/GenerateToken", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.external_sync.v1.ExternalSyncService", + "GenerateToken", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_external_sync( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.external_sync.v1.ExternalSyncService/GetExternalSync", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.external_sync.v1.ExternalSyncService", + "GetExternalSync", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_external_sync_tokens( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.external_sync.v1.ExternalSyncService", + "ListExternalSyncTokens", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod external_sync_service_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with ExternalSyncServiceServer. + #[async_trait] + pub trait ExternalSyncService: Send + Sync + 'static { + async fn sync_organization( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn generate_token( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_external_sync( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_external_sync_tokens( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + #[derive(Debug)] + pub struct ExternalSyncServiceServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl ExternalSyncServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for ExternalSyncServiceServer + where + T: ExternalSyncService, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/sift.external_sync.v1.ExternalSyncService/SyncOrganization" => { + #[allow(non_camel_case_types)] + struct SyncOrganizationSvc(pub Arc); + impl< + T: ExternalSyncService, + > tonic::server::UnaryService + for SyncOrganizationSvc { + type Response = super::SyncOrganizationResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::sync_organization( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = SyncOrganizationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.external_sync.v1.ExternalSyncService/GenerateToken" => { + #[allow(non_camel_case_types)] + struct GenerateTokenSvc(pub Arc); + impl< + T: ExternalSyncService, + > tonic::server::UnaryService + for GenerateTokenSvc { + type Response = super::GenerateTokenResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::generate_token(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GenerateTokenSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.external_sync.v1.ExternalSyncService/GetExternalSync" => { + #[allow(non_camel_case_types)] + struct GetExternalSyncSvc(pub Arc); + impl< + T: ExternalSyncService, + > tonic::server::UnaryService + for GetExternalSyncSvc { + type Response = super::GetExternalSyncResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_external_sync( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetExternalSyncSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.external_sync.v1.ExternalSyncService/ListExternalSyncTokens" => { + #[allow(non_camel_case_types)] + struct ListExternalSyncTokensSvc(pub Arc); + impl< + T: ExternalSyncService, + > tonic::server::UnaryService + for ListExternalSyncTokensSvc { + type Response = super::ListExternalSyncTokensResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_external_sync_tokens( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ListExternalSyncTokensSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for ExternalSyncServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService + for ExternalSyncServiceServer { + const NAME: &'static str = "sift.external_sync.v1.ExternalSyncService"; + } +} diff --git a/rust/crates/sift_rs/src/gen/sift.jobs.v1.rs b/rust/crates/sift_rs/src/gen/sift.jobs.v1.rs index 0c51d2e04..d9f73ea7a 100644 --- a/rust/crates/sift_rs/src/gen/sift.jobs.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.jobs.v1.rs @@ -23,6 +23,86 @@ pub struct Job { pub job_type: i32, #[prost(enumeration="JobStatus", tag="11")] pub job_status: i32, + #[prost(message, optional, tag="12")] + pub job_status_details: ::core::option::Option, + #[prost(message, optional, tag="13")] + pub job_details: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct JobStatusDetails { + #[prost(oneof="job_status_details::Status", tags="1, 2, 3")] + pub status: ::core::option::Option, +} +/// Nested message and enum types in `JobStatusDetails`. +pub mod job_status_details { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Status { + #[prost(message, tag="1")] + RuleEvaluation(super::RuleEvaluationStatusDetails), + #[prost(message, tag="2")] + DataImport(super::DataImportStatusDetails), + #[prost(message, tag="3")] + DataExport(super::DataExportStatusDetails), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct RuleEvaluationStatusDetails { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct DataImportStatusDetails { + #[prost(uint64, tag="1")] + pub points_processed: u64, + #[prost(uint64, tag="2")] + pub points_total: u64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DataExportStatusDetails { + #[prost(string, tag="1")] + pub error_message: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DataExportJobDetails { + #[prost(message, optional, tag="1")] + pub request: ::core::option::Option, + #[prost(string, tag="2")] + pub storage_key: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct JobDetails { + #[prost(oneof="job_details::Details", tags="1, 2, 3")] + pub details: ::core::option::Option, +} +/// Nested message and enum types in `JobDetails`. +pub mod job_details { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Details { + #[prost(message, tag="1")] + RuleEvaluation(super::RuleEvaluationJobDetails), + #[prost(message, tag="2")] + DataImport(super::DataImportJobDetails), + #[prost(message, tag="3")] + DataExport(super::DataExportJobDetails), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RuleEvaluationJobDetails { + #[prost(string, tag="1")] + pub report_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DataImportJobDetails { + #[prost(string, tag="1")] + pub data_import_id: ::prost::alloc::string::String, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -56,12 +136,25 @@ pub struct CancelJobRequest { #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CancelJobResponse { } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RetryJobRequest { + #[prost(string, tag="1")] + pub job_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RetryJobResponse { + #[prost(message, optional, tag="1")] + pub job: ::core::option::Option, +} #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum JobType { Unspecified = 0, RuleEvaluation = 1, DataImport = 2, + DataExport = 3, } impl JobType { /// String value of the enum field names used in the ProtoBuf definition. @@ -73,6 +166,7 @@ impl JobType { JobType::Unspecified => "JOB_TYPE_UNSPECIFIED", JobType::RuleEvaluation => "JOB_TYPE_RULE_EVALUATION", JobType::DataImport => "JOB_TYPE_DATA_IMPORT", + JobType::DataExport => "JOB_TYPE_DATA_EXPORT", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -81,6 +175,7 @@ impl JobType { "JOB_TYPE_UNSPECIFIED" => Some(Self::Unspecified), "JOB_TYPE_RULE_EVALUATION" => Some(Self::RuleEvaluation), "JOB_TYPE_DATA_IMPORT" => Some(Self::DataImport), + "JOB_TYPE_DATA_EXPORT" => Some(Self::DataExport), _ => None, } } diff --git a/rust/crates/sift_rs/src/gen/sift.jobs.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.jobs.v1.serde.rs index ed8fbc1d1..060c1d37a 100644 --- a/rust/crates/sift_rs/src/gen/sift.jobs.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.jobs.v1.serde.rs @@ -162,7 +162,7 @@ impl<'de> serde::Deserialize<'de> for CancelJobResponse { deserializer.deserialize_struct("sift.jobs.v1.CancelJobResponse", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for Job { +impl serde::Serialize for DataExportJobDetails { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -170,115 +170,38 @@ impl serde::Serialize for Job { { use serde::ser::SerializeStruct; let mut len = 0; - if !self.job_id.is_empty() { - len += 1; - } - if !self.organization_id.is_empty() { - len += 1; - } - if !self.created_by_user_id.is_empty() { - len += 1; - } - if !self.modified_by_user_id.is_empty() { - len += 1; - } - if self.created_date.is_some() { - len += 1; - } - if self.modified_date.is_some() { - len += 1; - } - if self.started_date.is_some() { - len += 1; - } - if self.completed_date.is_some() { - len += 1; - } - if self.job_type != 0 { + if self.request.is_some() { len += 1; } - if self.job_status != 0 { + if !self.storage_key.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.Job", len)?; - if !self.job_id.is_empty() { - struct_ser.serialize_field("jobId", &self.job_id)?; - } - if !self.organization_id.is_empty() { - struct_ser.serialize_field("organizationId", &self.organization_id)?; - } - if !self.created_by_user_id.is_empty() { - struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; - } - if !self.modified_by_user_id.is_empty() { - struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; - } - if let Some(v) = self.created_date.as_ref() { - struct_ser.serialize_field("createdDate", v)?; - } - if let Some(v) = self.modified_date.as_ref() { - struct_ser.serialize_field("modifiedDate", v)?; - } - if let Some(v) = self.started_date.as_ref() { - struct_ser.serialize_field("startedDate", v)?; - } - if let Some(v) = self.completed_date.as_ref() { - struct_ser.serialize_field("completedDate", v)?; - } - if self.job_type != 0 { - let v = JobType::try_from(self.job_type) - .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.job_type)))?; - struct_ser.serialize_field("jobType", &v)?; + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.DataExportJobDetails", len)?; + if let Some(v) = self.request.as_ref() { + struct_ser.serialize_field("request", v)?; } - if self.job_status != 0 { - let v = JobStatus::try_from(self.job_status) - .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.job_status)))?; - struct_ser.serialize_field("jobStatus", &v)?; + if !self.storage_key.is_empty() { + struct_ser.serialize_field("storageKey", &self.storage_key)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for Job { +impl<'de> serde::Deserialize<'de> for DataExportJobDetails { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "job_id", - "jobId", - "organization_id", - "organizationId", - "created_by_user_id", - "createdByUserId", - "modified_by_user_id", - "modifiedByUserId", - "created_date", - "createdDate", - "modified_date", - "modifiedDate", - "started_date", - "startedDate", - "completed_date", - "completedDate", - "job_type", - "jobType", - "job_status", - "jobStatus", + "request", + "storage_key", + "storageKey", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - JobId, - OrganizationId, - CreatedByUserId, - ModifiedByUserId, - CreatedDate, - ModifiedDate, - StartedDate, - CompletedDate, - JobType, - JobStatus, + Request, + StorageKey, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -300,16 +223,8 @@ impl<'de> serde::Deserialize<'de> for Job { E: serde::de::Error, { match value { - "jobId" | "job_id" => Ok(GeneratedField::JobId), - "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), - "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), - "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), - "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), - "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), - "startedDate" | "started_date" => Ok(GeneratedField::StartedDate), - "completedDate" | "completed_date" => Ok(GeneratedField::CompletedDate), - "jobType" | "job_type" => Ok(GeneratedField::JobType), - "jobStatus" | "job_status" => Ok(GeneratedField::JobStatus), + "request" => Ok(GeneratedField::Request), + "storageKey" | "storage_key" => Ok(GeneratedField::StorageKey), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -319,268 +234,1508 @@ impl<'de> serde::Deserialize<'de> for Job { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Job; + type Value = DataExportJobDetails; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.jobs.v1.Job") + formatter.write_str("struct sift.jobs.v1.DataExportJobDetails") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut job_id__ = None; - let mut organization_id__ = None; - let mut created_by_user_id__ = None; - let mut modified_by_user_id__ = None; - let mut created_date__ = None; - let mut modified_date__ = None; - let mut started_date__ = None; - let mut completed_date__ = None; - let mut job_type__ = None; - let mut job_status__ = None; + let mut request__ = None; + let mut storage_key__ = None; while let Some(k) = map_.next_key()? { match k { - GeneratedField::JobId => { - if job_id__.is_some() { - return Err(serde::de::Error::duplicate_field("jobId")); - } - job_id__ = Some(map_.next_value()?); - } - GeneratedField::OrganizationId => { - if organization_id__.is_some() { - return Err(serde::de::Error::duplicate_field("organizationId")); - } - organization_id__ = Some(map_.next_value()?); - } - GeneratedField::CreatedByUserId => { - if created_by_user_id__.is_some() { - return Err(serde::de::Error::duplicate_field("createdByUserId")); - } - created_by_user_id__ = Some(map_.next_value()?); - } - GeneratedField::ModifiedByUserId => { - if modified_by_user_id__.is_some() { - return Err(serde::de::Error::duplicate_field("modifiedByUserId")); - } - modified_by_user_id__ = Some(map_.next_value()?); - } - GeneratedField::CreatedDate => { - if created_date__.is_some() { - return Err(serde::de::Error::duplicate_field("createdDate")); - } - created_date__ = map_.next_value()?; - } - GeneratedField::ModifiedDate => { - if modified_date__.is_some() { - return Err(serde::de::Error::duplicate_field("modifiedDate")); - } - modified_date__ = map_.next_value()?; - } - GeneratedField::StartedDate => { - if started_date__.is_some() { - return Err(serde::de::Error::duplicate_field("startedDate")); - } - started_date__ = map_.next_value()?; - } - GeneratedField::CompletedDate => { - if completed_date__.is_some() { - return Err(serde::de::Error::duplicate_field("completedDate")); - } - completed_date__ = map_.next_value()?; - } - GeneratedField::JobType => { - if job_type__.is_some() { - return Err(serde::de::Error::duplicate_field("jobType")); + GeneratedField::Request => { + if request__.is_some() { + return Err(serde::de::Error::duplicate_field("request")); } - job_type__ = Some(map_.next_value::()? as i32); + request__ = map_.next_value()?; } - GeneratedField::JobStatus => { - if job_status__.is_some() { - return Err(serde::de::Error::duplicate_field("jobStatus")); + GeneratedField::StorageKey => { + if storage_key__.is_some() { + return Err(serde::de::Error::duplicate_field("storageKey")); } - job_status__ = Some(map_.next_value::()? as i32); + storage_key__ = Some(map_.next_value()?); } } } - Ok(Job { - job_id: job_id__.unwrap_or_default(), - organization_id: organization_id__.unwrap_or_default(), - created_by_user_id: created_by_user_id__.unwrap_or_default(), - modified_by_user_id: modified_by_user_id__.unwrap_or_default(), - created_date: created_date__, - modified_date: modified_date__, - started_date: started_date__, - completed_date: completed_date__, - job_type: job_type__.unwrap_or_default(), - job_status: job_status__.unwrap_or_default(), + Ok(DataExportJobDetails { + request: request__, + storage_key: storage_key__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.jobs.v1.Job", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.jobs.v1.DataExportJobDetails", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for JobStatus { +impl serde::Serialize for DataExportStatusDetails { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where S: serde::Serializer, { - let variant = match self { - Self::Unspecified => "JOB_STATUS_UNSPECIFIED", - Self::Created => "JOB_STATUS_CREATED", - Self::Running => "JOB_STATUS_RUNNING", - Self::Finished => "JOB_STATUS_FINISHED", - Self::Failed => "JOB_STATUS_FAILED", - Self::Cancelled => "JOB_STATUS_CANCELLED", - Self::CancelRequested => "JOB_STATUS_CANCEL_REQUESTED", - }; - serializer.serialize_str(variant) + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.error_message.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.DataExportStatusDetails", len)?; + if !self.error_message.is_empty() { + struct_ser.serialize_field("errorMessage", &self.error_message)?; + } + struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for JobStatus { +impl<'de> serde::Deserialize<'de> for DataExportStatusDetails { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "JOB_STATUS_UNSPECIFIED", - "JOB_STATUS_CREATED", - "JOB_STATUS_RUNNING", - "JOB_STATUS_FINISHED", - "JOB_STATUS_FAILED", - "JOB_STATUS_CANCELLED", - "JOB_STATUS_CANCEL_REQUESTED", + "error_message", + "errorMessage", ]; - struct GeneratedVisitor; + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ErrorMessage, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "errorMessage" | "error_message" => Ok(GeneratedField::ErrorMessage), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = JobStatus; + type Value = DataExportStatusDetails; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) + formatter.write_str("struct sift.jobs.v1.DataExportStatusDetails") } - fn visit_i64(self, v: i64) -> std::result::Result - where - E: serde::de::Error, + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, { - i32::try_from(v) - .ok() - .and_then(|x| x.try_into().ok()) - .ok_or_else(|| { - serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) - }) - } - - fn visit_u64(self, v: u64) -> std::result::Result - where - E: serde::de::Error, + let mut error_message__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ErrorMessage => { + if error_message__.is_some() { + return Err(serde::de::Error::duplicate_field("errorMessage")); + } + error_message__ = Some(map_.next_value()?); + } + } + } + Ok(DataExportStatusDetails { + error_message: error_message__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.jobs.v1.DataExportStatusDetails", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DataImportJobDetails { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.data_import_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.DataImportJobDetails", len)?; + if !self.data_import_id.is_empty() { + struct_ser.serialize_field("dataImportId", &self.data_import_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DataImportJobDetails { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "data_import_id", + "dataImportId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + DataImportId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "dataImportId" | "data_import_id" => Ok(GeneratedField::DataImportId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DataImportJobDetails; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.DataImportJobDetails") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut data_import_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::DataImportId => { + if data_import_id__.is_some() { + return Err(serde::de::Error::duplicate_field("dataImportId")); + } + data_import_id__ = Some(map_.next_value()?); + } + } + } + Ok(DataImportJobDetails { + data_import_id: data_import_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.jobs.v1.DataImportJobDetails", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DataImportStatusDetails { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.points_processed != 0 { + len += 1; + } + if self.points_total != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.DataImportStatusDetails", len)?; + if self.points_processed != 0 { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("pointsProcessed", ToString::to_string(&self.points_processed).as_str())?; + } + if self.points_total != 0 { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("pointsTotal", ToString::to_string(&self.points_total).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DataImportStatusDetails { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "points_processed", + "pointsProcessed", + "points_total", + "pointsTotal", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PointsProcessed, + PointsTotal, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pointsProcessed" | "points_processed" => Ok(GeneratedField::PointsProcessed), + "pointsTotal" | "points_total" => Ok(GeneratedField::PointsTotal), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DataImportStatusDetails; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.DataImportStatusDetails") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut points_processed__ = None; + let mut points_total__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PointsProcessed => { + if points_processed__.is_some() { + return Err(serde::de::Error::duplicate_field("pointsProcessed")); + } + points_processed__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PointsTotal => { + if points_total__.is_some() { + return Err(serde::de::Error::duplicate_field("pointsTotal")); + } + points_total__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(DataImportStatusDetails { + points_processed: points_processed__.unwrap_or_default(), + points_total: points_total__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.jobs.v1.DataImportStatusDetails", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Job { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.job_id.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if self.started_date.is_some() { + len += 1; + } + if self.completed_date.is_some() { + len += 1; + } + if self.job_type != 0 { + len += 1; + } + if self.job_status != 0 { + len += 1; + } + if self.job_status_details.is_some() { + len += 1; + } + if self.job_details.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.Job", len)?; + if !self.job_id.is_empty() { + struct_ser.serialize_field("jobId", &self.job_id)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if let Some(v) = self.started_date.as_ref() { + struct_ser.serialize_field("startedDate", v)?; + } + if let Some(v) = self.completed_date.as_ref() { + struct_ser.serialize_field("completedDate", v)?; + } + if self.job_type != 0 { + let v = JobType::try_from(self.job_type) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.job_type)))?; + struct_ser.serialize_field("jobType", &v)?; + } + if self.job_status != 0 { + let v = JobStatus::try_from(self.job_status) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.job_status)))?; + struct_ser.serialize_field("jobStatus", &v)?; + } + if let Some(v) = self.job_status_details.as_ref() { + struct_ser.serialize_field("jobStatusDetails", v)?; + } + if let Some(v) = self.job_details.as_ref() { + struct_ser.serialize_field("jobDetails", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Job { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "job_id", + "jobId", + "organization_id", + "organizationId", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "started_date", + "startedDate", + "completed_date", + "completedDate", + "job_type", + "jobType", + "job_status", + "jobStatus", + "job_status_details", + "jobStatusDetails", + "job_details", + "jobDetails", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + JobId, + OrganizationId, + CreatedByUserId, + ModifiedByUserId, + CreatedDate, + ModifiedDate, + StartedDate, + CompletedDate, + JobType, + JobStatus, + JobStatusDetails, + JobDetails, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "jobId" | "job_id" => Ok(GeneratedField::JobId), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "startedDate" | "started_date" => Ok(GeneratedField::StartedDate), + "completedDate" | "completed_date" => Ok(GeneratedField::CompletedDate), + "jobType" | "job_type" => Ok(GeneratedField::JobType), + "jobStatus" | "job_status" => Ok(GeneratedField::JobStatus), + "jobStatusDetails" | "job_status_details" => Ok(GeneratedField::JobStatusDetails), + "jobDetails" | "job_details" => Ok(GeneratedField::JobDetails), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Job; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.Job") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut job_id__ = None; + let mut organization_id__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut started_date__ = None; + let mut completed_date__ = None; + let mut job_type__ = None; + let mut job_status__ = None; + let mut job_status_details__ = None; + let mut job_details__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::JobId => { + if job_id__.is_some() { + return Err(serde::de::Error::duplicate_field("jobId")); + } + job_id__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::StartedDate => { + if started_date__.is_some() { + return Err(serde::de::Error::duplicate_field("startedDate")); + } + started_date__ = map_.next_value()?; + } + GeneratedField::CompletedDate => { + if completed_date__.is_some() { + return Err(serde::de::Error::duplicate_field("completedDate")); + } + completed_date__ = map_.next_value()?; + } + GeneratedField::JobType => { + if job_type__.is_some() { + return Err(serde::de::Error::duplicate_field("jobType")); + } + job_type__ = Some(map_.next_value::()? as i32); + } + GeneratedField::JobStatus => { + if job_status__.is_some() { + return Err(serde::de::Error::duplicate_field("jobStatus")); + } + job_status__ = Some(map_.next_value::()? as i32); + } + GeneratedField::JobStatusDetails => { + if job_status_details__.is_some() { + return Err(serde::de::Error::duplicate_field("jobStatusDetails")); + } + job_status_details__ = map_.next_value()?; + } + GeneratedField::JobDetails => { + if job_details__.is_some() { + return Err(serde::de::Error::duplicate_field("jobDetails")); + } + job_details__ = map_.next_value()?; + } + } + } + Ok(Job { + job_id: job_id__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + created_date: created_date__, + modified_date: modified_date__, + started_date: started_date__, + completed_date: completed_date__, + job_type: job_type__.unwrap_or_default(), + job_status: job_status__.unwrap_or_default(), + job_status_details: job_status_details__, + job_details: job_details__, + }) + } + } + deserializer.deserialize_struct("sift.jobs.v1.Job", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for JobDetails { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.details.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.JobDetails", len)?; + if let Some(v) = self.details.as_ref() { + match v { + job_details::Details::RuleEvaluation(v) => { + struct_ser.serialize_field("ruleEvaluation", v)?; + } + job_details::Details::DataImport(v) => { + struct_ser.serialize_field("dataImport", v)?; + } + job_details::Details::DataExport(v) => { + struct_ser.serialize_field("dataExport", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for JobDetails { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_evaluation", + "ruleEvaluation", + "data_import", + "dataImport", + "data_export", + "dataExport", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleEvaluation, + DataImport, + DataExport, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleEvaluation" | "rule_evaluation" => Ok(GeneratedField::RuleEvaluation), + "dataImport" | "data_import" => Ok(GeneratedField::DataImport), + "dataExport" | "data_export" => Ok(GeneratedField::DataExport), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = JobDetails; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.JobDetails") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut details__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleEvaluation => { + if details__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleEvaluation")); + } + details__ = map_.next_value::<::std::option::Option<_>>()?.map(job_details::Details::RuleEvaluation) +; + } + GeneratedField::DataImport => { + if details__.is_some() { + return Err(serde::de::Error::duplicate_field("dataImport")); + } + details__ = map_.next_value::<::std::option::Option<_>>()?.map(job_details::Details::DataImport) +; + } + GeneratedField::DataExport => { + if details__.is_some() { + return Err(serde::de::Error::duplicate_field("dataExport")); + } + details__ = map_.next_value::<::std::option::Option<_>>()?.map(job_details::Details::DataExport) +; + } + } + } + Ok(JobDetails { + details: details__, + }) + } + } + deserializer.deserialize_struct("sift.jobs.v1.JobDetails", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for JobStatus { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "JOB_STATUS_UNSPECIFIED", + Self::Created => "JOB_STATUS_CREATED", + Self::Running => "JOB_STATUS_RUNNING", + Self::Finished => "JOB_STATUS_FINISHED", + Self::Failed => "JOB_STATUS_FAILED", + Self::Cancelled => "JOB_STATUS_CANCELLED", + Self::CancelRequested => "JOB_STATUS_CANCEL_REQUESTED", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for JobStatus { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "JOB_STATUS_UNSPECIFIED", + "JOB_STATUS_CREATED", + "JOB_STATUS_RUNNING", + "JOB_STATUS_FINISHED", + "JOB_STATUS_FAILED", + "JOB_STATUS_CANCELLED", + "JOB_STATUS_CANCEL_REQUESTED", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = JobStatus; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "JOB_STATUS_UNSPECIFIED" => Ok(JobStatus::Unspecified), + "JOB_STATUS_CREATED" => Ok(JobStatus::Created), + "JOB_STATUS_RUNNING" => Ok(JobStatus::Running), + "JOB_STATUS_FINISHED" => Ok(JobStatus::Finished), + "JOB_STATUS_FAILED" => Ok(JobStatus::Failed), + "JOB_STATUS_CANCELLED" => Ok(JobStatus::Cancelled), + "JOB_STATUS_CANCEL_REQUESTED" => Ok(JobStatus::CancelRequested), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for JobStatusDetails { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.status.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.JobStatusDetails", len)?; + if let Some(v) = self.status.as_ref() { + match v { + job_status_details::Status::RuleEvaluation(v) => { + struct_ser.serialize_field("ruleEvaluation", v)?; + } + job_status_details::Status::DataImport(v) => { + struct_ser.serialize_field("dataImport", v)?; + } + job_status_details::Status::DataExport(v) => { + struct_ser.serialize_field("dataExport", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for JobStatusDetails { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_evaluation", + "ruleEvaluation", + "data_import", + "dataImport", + "data_export", + "dataExport", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleEvaluation, + DataImport, + DataExport, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleEvaluation" | "rule_evaluation" => Ok(GeneratedField::RuleEvaluation), + "dataImport" | "data_import" => Ok(GeneratedField::DataImport), + "dataExport" | "data_export" => Ok(GeneratedField::DataExport), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = JobStatusDetails; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.JobStatusDetails") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut status__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleEvaluation => { + if status__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleEvaluation")); + } + status__ = map_.next_value::<::std::option::Option<_>>()?.map(job_status_details::Status::RuleEvaluation) +; + } + GeneratedField::DataImport => { + if status__.is_some() { + return Err(serde::de::Error::duplicate_field("dataImport")); + } + status__ = map_.next_value::<::std::option::Option<_>>()?.map(job_status_details::Status::DataImport) +; + } + GeneratedField::DataExport => { + if status__.is_some() { + return Err(serde::de::Error::duplicate_field("dataExport")); + } + status__ = map_.next_value::<::std::option::Option<_>>()?.map(job_status_details::Status::DataExport) +; + } + } + } + Ok(JobStatusDetails { + status: status__, + }) + } + } + deserializer.deserialize_struct("sift.jobs.v1.JobStatusDetails", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for JobType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "JOB_TYPE_UNSPECIFIED", + Self::RuleEvaluation => "JOB_TYPE_RULE_EVALUATION", + Self::DataImport => "JOB_TYPE_DATA_IMPORT", + Self::DataExport => "JOB_TYPE_DATA_EXPORT", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for JobType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "JOB_TYPE_UNSPECIFIED", + "JOB_TYPE_RULE_EVALUATION", + "JOB_TYPE_DATA_IMPORT", + "JOB_TYPE_DATA_EXPORT", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = JobType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "JOB_TYPE_UNSPECIFIED" => Ok(JobType::Unspecified), + "JOB_TYPE_RULE_EVALUATION" => Ok(JobType::RuleEvaluation), + "JOB_TYPE_DATA_IMPORT" => Ok(JobType::DataImport), + "JOB_TYPE_DATA_EXPORT" => Ok(JobType::DataExport), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for ListJobsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.ListJobsRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListJobsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "organization_id", + "organizationId", + "order_by", + "orderBy", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrganizationId, + OrderBy, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListJobsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.ListJobsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, { - i32::try_from(v) - .ok() - .and_then(|x| x.try_into().ok()) - .ok_or_else(|| { - serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) - }) + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut organization_id__ = None; + let mut order_by__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + } + } + Ok(ListJobsRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + }) } + } + deserializer.deserialize_struct("sift.jobs.v1.ListJobsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListJobsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.jobs.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.ListJobsResponse", len)?; + if !self.jobs.is_empty() { + struct_ser.serialize_field("jobs", &self.jobs)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListJobsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "jobs", + "next_page_token", + "nextPageToken", + ]; - fn visit_str(self, value: &str) -> std::result::Result + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Jobs, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result where - E: serde::de::Error, + D: serde::Deserializer<'de>, { - match value { - "JOB_STATUS_UNSPECIFIED" => Ok(JobStatus::Unspecified), - "JOB_STATUS_CREATED" => Ok(JobStatus::Created), - "JOB_STATUS_RUNNING" => Ok(JobStatus::Running), - "JOB_STATUS_FINISHED" => Ok(JobStatus::Finished), - "JOB_STATUS_FAILED" => Ok(JobStatus::Failed), - "JOB_STATUS_CANCELLED" => Ok(JobStatus::Cancelled), - "JOB_STATUS_CANCEL_REQUESTED" => Ok(JobStatus::CancelRequested), - _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "jobs" => Ok(GeneratedField::Jobs), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListJobsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.ListJobsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut jobs__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Jobs => { + if jobs__.is_some() { + return Err(serde::de::Error::duplicate_field("jobs")); + } + jobs__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListJobsResponse { + jobs: jobs__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.jobs.v1.ListJobsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for RetryJobRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.job_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.RetryJobRequest", len)?; + if !self.job_id.is_empty() { + struct_ser.serialize_field("jobId", &self.job_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for RetryJobRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "job_id", + "jobId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + JobId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "jobId" | "job_id" => Ok(GeneratedField::JobId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = RetryJobRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.RetryJobRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut job_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::JobId => { + if job_id__.is_some() { + return Err(serde::de::Error::duplicate_field("jobId")); + } + job_id__ = Some(map_.next_value()?); + } + } } + Ok(RetryJobRequest { + job_id: job_id__.unwrap_or_default(), + }) } } - deserializer.deserialize_any(GeneratedVisitor) + deserializer.deserialize_struct("sift.jobs.v1.RetryJobRequest", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for JobType { +impl serde::Serialize for RetryJobResponse { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where S: serde::Serializer, { - let variant = match self { - Self::Unspecified => "JOB_TYPE_UNSPECIFIED", - Self::RuleEvaluation => "JOB_TYPE_RULE_EVALUATION", - Self::DataImport => "JOB_TYPE_DATA_IMPORT", - }; - serializer.serialize_str(variant) + use serde::ser::SerializeStruct; + let mut len = 0; + if self.job.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.RetryJobResponse", len)?; + if let Some(v) = self.job.as_ref() { + struct_ser.serialize_field("job", v)?; + } + struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for JobType { +impl<'de> serde::Deserialize<'de> for RetryJobResponse { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "JOB_TYPE_UNSPECIFIED", - "JOB_TYPE_RULE_EVALUATION", - "JOB_TYPE_DATA_IMPORT", + "job", ]; - struct GeneratedVisitor; + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Job, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = JobType; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } - fn visit_i64(self, v: i64) -> std::result::Result - where - E: serde::de::Error, - { - i32::try_from(v) - .ok() - .and_then(|x| x.try_into().ok()) - .ok_or_else(|| { - serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) - }) + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "job" => Ok(GeneratedField::Job), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = RetryJobResponse; - fn visit_u64(self, v: u64) -> std::result::Result - where - E: serde::de::Error, - { - i32::try_from(v) - .ok() - .and_then(|x| x.try_into().ok()) - .ok_or_else(|| { - serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) - }) + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.jobs.v1.RetryJobResponse") } - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, { - match value { - "JOB_TYPE_UNSPECIFIED" => Ok(JobType::Unspecified), - "JOB_TYPE_RULE_EVALUATION" => Ok(JobType::RuleEvaluation), - "JOB_TYPE_DATA_IMPORT" => Ok(JobType::DataImport), - _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + let mut job__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Job => { + if job__.is_some() { + return Err(serde::de::Error::duplicate_field("job")); + } + job__ = map_.next_value()?; + } + } } + Ok(RetryJobResponse { + job: job__, + }) } } - deserializer.deserialize_any(GeneratedVisitor) + deserializer.deserialize_struct("sift.jobs.v1.RetryJobResponse", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for ListJobsRequest { +impl serde::Serialize for RuleEvaluationJobDetails { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -588,65 +1743,30 @@ impl serde::Serialize for ListJobsRequest { { use serde::ser::SerializeStruct; let mut len = 0; - if self.page_size != 0 { - len += 1; - } - if !self.page_token.is_empty() { - len += 1; - } - if !self.filter.is_empty() { - len += 1; - } - if !self.organization_id.is_empty() { - len += 1; - } - if !self.order_by.is_empty() { + if !self.report_id.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.ListJobsRequest", len)?; - if self.page_size != 0 { - struct_ser.serialize_field("pageSize", &self.page_size)?; - } - if !self.page_token.is_empty() { - struct_ser.serialize_field("pageToken", &self.page_token)?; - } - if !self.filter.is_empty() { - struct_ser.serialize_field("filter", &self.filter)?; - } - if !self.organization_id.is_empty() { - struct_ser.serialize_field("organizationId", &self.organization_id)?; - } - if !self.order_by.is_empty() { - struct_ser.serialize_field("orderBy", &self.order_by)?; + let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.RuleEvaluationJobDetails", len)?; + if !self.report_id.is_empty() { + struct_ser.serialize_field("reportId", &self.report_id)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for ListJobsRequest { +impl<'de> serde::Deserialize<'de> for RuleEvaluationJobDetails { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "page_size", - "pageSize", - "page_token", - "pageToken", - "filter", - "organization_id", - "organizationId", - "order_by", - "orderBy", + "report_id", + "reportId", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - PageSize, - PageToken, - Filter, - OrganizationId, - OrderBy, + ReportId, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -668,11 +1788,7 @@ impl<'de> serde::Deserialize<'de> for ListJobsRequest { E: serde::de::Error, { match value { - "pageSize" | "page_size" => Ok(GeneratedField::PageSize), - "pageToken" | "page_token" => Ok(GeneratedField::PageToken), - "filter" => Ok(GeneratedField::Filter), - "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), - "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + "reportId" | "report_id" => Ok(GeneratedField::ReportId), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -682,109 +1798,58 @@ impl<'de> serde::Deserialize<'de> for ListJobsRequest { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ListJobsRequest; + type Value = RuleEvaluationJobDetails; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.jobs.v1.ListJobsRequest") + formatter.write_str("struct sift.jobs.v1.RuleEvaluationJobDetails") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut page_size__ = None; - let mut page_token__ = None; - let mut filter__ = None; - let mut organization_id__ = None; - let mut order_by__ = None; + let mut report_id__ = None; while let Some(k) = map_.next_key()? { match k { - GeneratedField::PageSize => { - if page_size__.is_some() { - return Err(serde::de::Error::duplicate_field("pageSize")); - } - page_size__ = - Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::PageToken => { - if page_token__.is_some() { - return Err(serde::de::Error::duplicate_field("pageToken")); - } - page_token__ = Some(map_.next_value()?); - } - GeneratedField::Filter => { - if filter__.is_some() { - return Err(serde::de::Error::duplicate_field("filter")); - } - filter__ = Some(map_.next_value()?); - } - GeneratedField::OrganizationId => { - if organization_id__.is_some() { - return Err(serde::de::Error::duplicate_field("organizationId")); - } - organization_id__ = Some(map_.next_value()?); - } - GeneratedField::OrderBy => { - if order_by__.is_some() { - return Err(serde::de::Error::duplicate_field("orderBy")); + GeneratedField::ReportId => { + if report_id__.is_some() { + return Err(serde::de::Error::duplicate_field("reportId")); } - order_by__ = Some(map_.next_value()?); + report_id__ = Some(map_.next_value()?); } } } - Ok(ListJobsRequest { - page_size: page_size__.unwrap_or_default(), - page_token: page_token__.unwrap_or_default(), - filter: filter__.unwrap_or_default(), - organization_id: organization_id__.unwrap_or_default(), - order_by: order_by__.unwrap_or_default(), + Ok(RuleEvaluationJobDetails { + report_id: report_id__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.jobs.v1.ListJobsRequest", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.jobs.v1.RuleEvaluationJobDetails", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for ListJobsResponse { +impl serde::Serialize for RuleEvaluationStatusDetails { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where S: serde::Serializer, { use serde::ser::SerializeStruct; - let mut len = 0; - if !self.jobs.is_empty() { - len += 1; - } - if !self.next_page_token.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("sift.jobs.v1.ListJobsResponse", len)?; - if !self.jobs.is_empty() { - struct_ser.serialize_field("jobs", &self.jobs)?; - } - if !self.next_page_token.is_empty() { - struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; - } + let len = 0; + let struct_ser = serializer.serialize_struct("sift.jobs.v1.RuleEvaluationStatusDetails", len)?; struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for ListJobsResponse { +impl<'de> serde::Deserialize<'de> for RuleEvaluationStatusDetails { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "jobs", - "next_page_token", - "nextPageToken", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Jobs, - NextPageToken, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -805,11 +1870,7 @@ impl<'de> serde::Deserialize<'de> for ListJobsResponse { where E: serde::de::Error, { - match value { - "jobs" => Ok(GeneratedField::Jobs), - "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } + Err(serde::de::Error::unknown_field(value, FIELDS)) } } deserializer.deserialize_identifier(GeneratedVisitor) @@ -817,40 +1878,23 @@ impl<'de> serde::Deserialize<'de> for ListJobsResponse { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ListJobsResponse; + type Value = RuleEvaluationStatusDetails; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.jobs.v1.ListJobsResponse") + formatter.write_str("struct sift.jobs.v1.RuleEvaluationStatusDetails") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut jobs__ = None; - let mut next_page_token__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Jobs => { - if jobs__.is_some() { - return Err(serde::de::Error::duplicate_field("jobs")); - } - jobs__ = Some(map_.next_value()?); - } - GeneratedField::NextPageToken => { - if next_page_token__.is_some() { - return Err(serde::de::Error::duplicate_field("nextPageToken")); - } - next_page_token__ = Some(map_.next_value()?); - } - } + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; } - Ok(ListJobsResponse { - jobs: jobs__.unwrap_or_default(), - next_page_token: next_page_token__.unwrap_or_default(), + Ok(RuleEvaluationStatusDetails { }) } } - deserializer.deserialize_struct("sift.jobs.v1.ListJobsResponse", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.jobs.v1.RuleEvaluationStatusDetails", FIELDS, GeneratedVisitor) } } diff --git a/rust/crates/sift_rs/src/gen/sift.jobs.v1.tonic.rs b/rust/crates/sift_rs/src/gen/sift.jobs.v1.tonic.rs index cf1e5ef91..951567548 100644 --- a/rust/crates/sift_rs/src/gen/sift.jobs.v1.tonic.rs +++ b/rust/crates/sift_rs/src/gen/sift.jobs.v1.tonic.rs @@ -134,6 +134,31 @@ pub mod job_service_client { .insert(GrpcMethod::new("sift.jobs.v1.JobService", "CancelJob")); self.inner.unary(req, path, codec).await } + pub async fn retry_job( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.jobs.v1.JobService/RetryJob", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("sift.jobs.v1.JobService", "RetryJob")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -157,6 +182,13 @@ pub mod job_service_server { tonic::Response, tonic::Status, >; + async fn retry_job( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } #[derive(Debug)] pub struct JobServiceServer { @@ -329,6 +361,52 @@ pub mod job_service_server { }; Box::pin(fut) } + "/sift.jobs.v1.JobService/RetryJob" => { + #[allow(non_camel_case_types)] + struct RetryJobSvc(pub Arc); + impl< + T: JobService, + > tonic::server::UnaryService + for RetryJobSvc { + type Response = super::RetryJobResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::retry_job(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = RetryJobSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/rust/crates/sift_rs/src/gen/sift.metadata.v1.rs b/rust/crates/sift_rs/src/gen/sift.metadata.v1.rs index f5d88d165..10674bb20 100644 --- a/rust/crates/sift_rs/src/gen/sift.metadata.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.metadata.v1.rs @@ -9,6 +9,8 @@ pub struct MetadataKey { pub r#type: i32, #[prost(message, optional, tag="3")] pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(bool, tag="4")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -17,6 +19,8 @@ pub struct MetadataValue { pub key: ::core::option::Option, #[prost(message, optional, tag="5")] pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(bool, tag="6")] + pub is_archived: bool, #[prost(oneof="metadata_value::Value", tags="2, 3, 4")] pub value: ::core::option::Option, } diff --git a/rust/crates/sift_rs/src/gen/sift.metadata.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.metadata.v1.serde.rs index 904db46c1..eaed5b996 100644 --- a/rust/crates/sift_rs/src/gen/sift.metadata.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.metadata.v1.serde.rs @@ -1825,6 +1825,9 @@ impl serde::Serialize for MetadataKey { if self.archived_date.is_some() { len += 1; } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.metadata.v1.MetadataKey", len)?; if !self.name.is_empty() { struct_ser.serialize_field("name", &self.name)?; @@ -1837,6 +1840,9 @@ impl serde::Serialize for MetadataKey { if let Some(v) = self.archived_date.as_ref() { struct_ser.serialize_field("archivedDate", v)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -1851,6 +1857,8 @@ impl<'de> serde::Deserialize<'de> for MetadataKey { "type", "archived_date", "archivedDate", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -1858,6 +1866,7 @@ impl<'de> serde::Deserialize<'de> for MetadataKey { Name, Type, ArchivedDate, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1882,6 +1891,7 @@ impl<'de> serde::Deserialize<'de> for MetadataKey { "name" => Ok(GeneratedField::Name), "type" => Ok(GeneratedField::Type), "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1904,6 +1914,7 @@ impl<'de> serde::Deserialize<'de> for MetadataKey { let mut name__ = None; let mut r#type__ = None; let mut archived_date__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::Name => { @@ -1924,12 +1935,19 @@ impl<'de> serde::Deserialize<'de> for MetadataKey { } archived_date__ = map_.next_value()?; } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(MetadataKey { name: name__.unwrap_or_default(), r#type: r#type__.unwrap_or_default(), archived_date: archived_date__, + is_archived: is_archived__.unwrap_or_default(), }) } } @@ -2154,6 +2172,9 @@ impl serde::Serialize for MetadataValue { if self.archived_date.is_some() { len += 1; } + if self.is_archived { + len += 1; + } if self.value.is_some() { len += 1; } @@ -2164,6 +2185,9 @@ impl serde::Serialize for MetadataValue { if let Some(v) = self.archived_date.as_ref() { struct_ser.serialize_field("archivedDate", v)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } if let Some(v) = self.value.as_ref() { match v { metadata_value::Value::StringValue(v) => { @@ -2190,6 +2214,8 @@ impl<'de> serde::Deserialize<'de> for MetadataValue { "key", "archived_date", "archivedDate", + "is_archived", + "isArchived", "string_value", "stringValue", "number_value", @@ -2202,6 +2228,7 @@ impl<'de> serde::Deserialize<'de> for MetadataValue { enum GeneratedField { Key, ArchivedDate, + IsArchived, StringValue, NumberValue, BooleanValue, @@ -2228,6 +2255,7 @@ impl<'de> serde::Deserialize<'de> for MetadataValue { match value { "key" => Ok(GeneratedField::Key), "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), "stringValue" | "string_value" => Ok(GeneratedField::StringValue), "numberValue" | "number_value" => Ok(GeneratedField::NumberValue), "booleanValue" | "boolean_value" => Ok(GeneratedField::BooleanValue), @@ -2252,6 +2280,7 @@ impl<'de> serde::Deserialize<'de> for MetadataValue { { let mut key__ = None; let mut archived_date__ = None; + let mut is_archived__ = None; let mut value__ = None; while let Some(k) = map_.next_key()? { match k { @@ -2267,6 +2296,12 @@ impl<'de> serde::Deserialize<'de> for MetadataValue { } archived_date__ = map_.next_value()?; } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } GeneratedField::StringValue => { if value__.is_some() { return Err(serde::de::Error::duplicate_field("stringValue")); @@ -2290,6 +2325,7 @@ impl<'de> serde::Deserialize<'de> for MetadataValue { Ok(MetadataValue { key: key__, archived_date: archived_date__, + is_archived: is_archived__.unwrap_or_default(), value: value__, }) } diff --git a/rust/crates/sift_rs/src/gen/sift.notifications.v1.rs b/rust/crates/sift_rs/src/gen/sift.notifications.v1.rs index 11e171426..cbfec5805 100644 --- a/rust/crates/sift_rs/src/gen/sift.notifications.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.notifications.v1.rs @@ -76,6 +76,7 @@ pub enum NotificationKind { ConditionTriggered = 4, AnnotationStateChanged = 5, ReportReady = 6, + DataExportReady = 7, } impl NotificationKind { /// String value of the enum field names used in the ProtoBuf definition. @@ -91,6 +92,7 @@ impl NotificationKind { NotificationKind::ConditionTriggered => "NOTIFICATION_KIND_CONDITION_TRIGGERED", NotificationKind::AnnotationStateChanged => "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED", NotificationKind::ReportReady => "NOTIFICATION_KIND_REPORT_READY", + NotificationKind::DataExportReady => "NOTIFICATION_KIND_DATA_EXPORT_READY", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -103,6 +105,7 @@ impl NotificationKind { "NOTIFICATION_KIND_CONDITION_TRIGGERED" => Some(Self::ConditionTriggered), "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED" => Some(Self::AnnotationStateChanged), "NOTIFICATION_KIND_REPORT_READY" => Some(Self::ReportReady), + "NOTIFICATION_KIND_DATA_EXPORT_READY" => Some(Self::DataExportReady), _ => None, } } diff --git a/rust/crates/sift_rs/src/gen/sift.notifications.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.notifications.v1.serde.rs index 59a1a3e70..4e64fae8c 100644 --- a/rust/crates/sift_rs/src/gen/sift.notifications.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.notifications.v1.serde.rs @@ -724,6 +724,7 @@ impl serde::Serialize for NotificationKind { Self::ConditionTriggered => "NOTIFICATION_KIND_CONDITION_TRIGGERED", Self::AnnotationStateChanged => "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED", Self::ReportReady => "NOTIFICATION_KIND_REPORT_READY", + Self::DataExportReady => "NOTIFICATION_KIND_DATA_EXPORT_READY", }; serializer.serialize_str(variant) } @@ -742,6 +743,7 @@ impl<'de> serde::Deserialize<'de> for NotificationKind { "NOTIFICATION_KIND_CONDITION_TRIGGERED", "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED", "NOTIFICATION_KIND_REPORT_READY", + "NOTIFICATION_KIND_DATA_EXPORT_READY", ]; struct GeneratedVisitor; @@ -789,6 +791,7 @@ impl<'de> serde::Deserialize<'de> for NotificationKind { "NOTIFICATION_KIND_CONDITION_TRIGGERED" => Ok(NotificationKind::ConditionTriggered), "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED" => Ok(NotificationKind::AnnotationStateChanged), "NOTIFICATION_KIND_REPORT_READY" => Ok(NotificationKind::ReportReady), + "NOTIFICATION_KIND_DATA_EXPORT_READY" => Ok(NotificationKind::DataExportReady), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } diff --git a/rust/crates/sift_rs/src/gen/sift.options.v1.rs b/rust/crates/sift_rs/src/gen/sift.options.v1.rs new file mode 100644 index 000000000..8e2ac1beb --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift.options.v1.rs @@ -0,0 +1,2 @@ +// @generated +// @@protoc_insertion_point(module) diff --git a/rust/crates/sift_rs/src/gen/sift.remote_files.v1.rs b/rust/crates/sift_rs/src/gen/sift.remote_files.v1.rs index 88b310389..938a742d6 100644 --- a/rust/crates/sift_rs/src/gen/sift.remote_files.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.remote_files.v1.rs @@ -204,6 +204,7 @@ pub enum EntityType { Annotation = 2, Asset = 3, AnnotationLog = 4, + TestReport = 5, } impl EntityType { /// String value of the enum field names used in the ProtoBuf definition. @@ -217,6 +218,7 @@ impl EntityType { EntityType::Annotation => "ENTITY_TYPE_ANNOTATION", EntityType::Asset => "ENTITY_TYPE_ASSET", EntityType::AnnotationLog => "ENTITY_TYPE_ANNOTATION_LOG", + EntityType::TestReport => "ENTITY_TYPE_TEST_REPORT", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -227,6 +229,7 @@ impl EntityType { "ENTITY_TYPE_ANNOTATION" => Some(Self::Annotation), "ENTITY_TYPE_ASSET" => Some(Self::Asset), "ENTITY_TYPE_ANNOTATION_LOG" => Some(Self::AnnotationLog), + "ENTITY_TYPE_TEST_REPORT" => Some(Self::TestReport), _ => None, } } diff --git a/rust/crates/sift_rs/src/gen/sift.remote_files.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.remote_files.v1.serde.rs index d98ec8f9d..151c9d353 100644 --- a/rust/crates/sift_rs/src/gen/sift.remote_files.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.remote_files.v1.serde.rs @@ -831,6 +831,7 @@ impl serde::Serialize for EntityType { Self::Annotation => "ENTITY_TYPE_ANNOTATION", Self::Asset => "ENTITY_TYPE_ASSET", Self::AnnotationLog => "ENTITY_TYPE_ANNOTATION_LOG", + Self::TestReport => "ENTITY_TYPE_TEST_REPORT", }; serializer.serialize_str(variant) } @@ -847,6 +848,7 @@ impl<'de> serde::Deserialize<'de> for EntityType { "ENTITY_TYPE_ANNOTATION", "ENTITY_TYPE_ASSET", "ENTITY_TYPE_ANNOTATION_LOG", + "ENTITY_TYPE_TEST_REPORT", ]; struct GeneratedVisitor; @@ -892,6 +894,7 @@ impl<'de> serde::Deserialize<'de> for EntityType { "ENTITY_TYPE_ANNOTATION" => Ok(EntityType::Annotation), "ENTITY_TYPE_ASSET" => Ok(EntityType::Asset), "ENTITY_TYPE_ANNOTATION_LOG" => Ok(EntityType::AnnotationLog), + "ENTITY_TYPE_TEST_REPORT" => Ok(EntityType::TestReport), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } diff --git a/rust/crates/sift_rs/src/gen/sift.report_templates.v1.rs b/rust/crates/sift_rs/src/gen/sift.report_templates.v1.rs index 71e7ff797..e2b4d6f86 100644 --- a/rust/crates/sift_rs/src/gen/sift.report_templates.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.report_templates.v1.rs @@ -29,6 +29,8 @@ pub struct ReportTemplate { pub tags: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag="13")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(bool, tag="14")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.report_templates.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.report_templates.v1.serde.rs index 06bed677e..e21e58262 100644 --- a/rust/crates/sift_rs/src/gen/sift.report_templates.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.report_templates.v1.serde.rs @@ -1051,6 +1051,9 @@ impl serde::Serialize for ReportTemplate { if !self.metadata.is_empty() { len += 1; } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.report_templates.v1.ReportTemplate", len)?; if !self.report_template_id.is_empty() { struct_ser.serialize_field("reportTemplateId", &self.report_template_id)?; @@ -1091,6 +1094,9 @@ impl serde::Serialize for ReportTemplate { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -1122,6 +1128,8 @@ impl<'de> serde::Deserialize<'de> for ReportTemplate { "rules", "tags", "metadata", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -1139,6 +1147,7 @@ impl<'de> serde::Deserialize<'de> for ReportTemplate { Rules, Tags, Metadata, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1173,6 +1182,7 @@ impl<'de> serde::Deserialize<'de> for ReportTemplate { "rules" => Ok(GeneratedField::Rules), "tags" => Ok(GeneratedField::Tags), "metadata" => Ok(GeneratedField::Metadata), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1205,6 +1215,7 @@ impl<'de> serde::Deserialize<'de> for ReportTemplate { let mut rules__ = None; let mut tags__ = None; let mut metadata__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::ReportTemplateId => { @@ -1285,6 +1296,12 @@ impl<'de> serde::Deserialize<'de> for ReportTemplate { } metadata__ = Some(map_.next_value()?); } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(ReportTemplate { @@ -1301,6 +1318,7 @@ impl<'de> serde::Deserialize<'de> for ReportTemplate { rules: rules__.unwrap_or_default(), tags: tags__.unwrap_or_default(), metadata: metadata__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.reports.v1.rs b/rust/crates/sift_rs/src/gen/sift.reports.v1.rs index 98f94cbee..ef1a2e6db 100644 --- a/rust/crates/sift_rs/src/gen/sift.reports.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.reports.v1.rs @@ -35,6 +35,8 @@ pub struct Report { pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, #[prost(message, repeated, tag="16")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(bool, tag="17")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.reports.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.reports.v1.serde.rs index f284cac01..c64c4608f 100644 --- a/rust/crates/sift_rs/src/gen/sift.reports.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.reports.v1.serde.rs @@ -1386,6 +1386,9 @@ impl serde::Serialize for Report { if !self.metadata.is_empty() { len += 1; } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.reports.v1.Report", len)?; if !self.report_id.is_empty() { struct_ser.serialize_field("reportId", &self.report_id)?; @@ -1435,6 +1438,9 @@ impl serde::Serialize for Report { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -1472,6 +1478,8 @@ impl<'de> serde::Deserialize<'de> for Report { "archived_date", "archivedDate", "metadata", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -1492,6 +1500,7 @@ impl<'de> serde::Deserialize<'de> for Report { JobId, ArchivedDate, Metadata, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1529,6 +1538,7 @@ impl<'de> serde::Deserialize<'de> for Report { "jobId" | "job_id" => Ok(GeneratedField::JobId), "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), "metadata" => Ok(GeneratedField::Metadata), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1564,6 +1574,7 @@ impl<'de> serde::Deserialize<'de> for Report { let mut job_id__ = None; let mut archived_date__ = None; let mut metadata__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::ReportId => { @@ -1662,6 +1673,12 @@ impl<'de> serde::Deserialize<'de> for Report { } metadata__ = Some(map_.next_value()?); } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(Report { @@ -1681,6 +1698,7 @@ impl<'de> serde::Deserialize<'de> for Report { job_id: job_id__, archived_date: archived_date__, metadata: metadata__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.roles.v2.rs b/rust/crates/sift_rs/src/gen/sift.roles.v2.rs index 2b853b89e..8a0ed5711 100644 --- a/rust/crates/sift_rs/src/gen/sift.roles.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.roles.v2.rs @@ -9,6 +9,8 @@ pub struct Role { pub name: ::prost::alloc::string::String, #[prost(string, tag="3")] pub description: ::prost::alloc::string::String, + #[prost(int32, tag="4")] + pub role_order: i32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.roles.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.roles.v2.serde.rs index 18d2400ac..a68939198 100644 --- a/rust/crates/sift_rs/src/gen/sift.roles.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.roles.v2.serde.rs @@ -272,6 +272,9 @@ impl serde::Serialize for Role { if !self.description.is_empty() { len += 1; } + if self.role_order != 0 { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.roles.v2.Role", len)?; if !self.role_id.is_empty() { struct_ser.serialize_field("roleId", &self.role_id)?; @@ -282,6 +285,9 @@ impl serde::Serialize for Role { if !self.description.is_empty() { struct_ser.serialize_field("description", &self.description)?; } + if self.role_order != 0 { + struct_ser.serialize_field("roleOrder", &self.role_order)?; + } struct_ser.end() } } @@ -296,6 +302,8 @@ impl<'de> serde::Deserialize<'de> for Role { "roleId", "name", "description", + "role_order", + "roleOrder", ]; #[allow(clippy::enum_variant_names)] @@ -303,6 +311,7 @@ impl<'de> serde::Deserialize<'de> for Role { RoleId, Name, Description, + RoleOrder, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -327,6 +336,7 @@ impl<'de> serde::Deserialize<'de> for Role { "roleId" | "role_id" => Ok(GeneratedField::RoleId), "name" => Ok(GeneratedField::Name), "description" => Ok(GeneratedField::Description), + "roleOrder" | "role_order" => Ok(GeneratedField::RoleOrder), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -349,6 +359,7 @@ impl<'de> serde::Deserialize<'de> for Role { let mut role_id__ = None; let mut name__ = None; let mut description__ = None; + let mut role_order__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::RoleId => { @@ -369,12 +380,21 @@ impl<'de> serde::Deserialize<'de> for Role { } description__ = Some(map_.next_value()?); } + GeneratedField::RoleOrder => { + if role_order__.is_some() { + return Err(serde::de::Error::duplicate_field("roleOrder")); + } + role_order__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } } } Ok(Role { role_id: role_id__.unwrap_or_default(), name: name__.unwrap_or_default(), description: description__.unwrap_or_default(), + role_order: role_order__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.rs b/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.rs index 6ab7e5e96..294a1620c 100644 --- a/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.rs @@ -134,31 +134,11 @@ pub struct EvaluateRulesFromRuleConfigs { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct RulePreviewOutput { - #[prost(string, tag="1")] - pub rule_name: ::prost::alloc::string::String, - #[prost(string, tag="2")] - pub rule_id: ::prost::alloc::string::String, - #[prost(string, tag="3")] - pub rule_version_id: ::prost::alloc::string::String, - #[prost(string, tag="4")] - pub asset_id: ::prost::alloc::string::String, - #[prost(int32, tag="5")] - pub exit_code: i32, - #[prost(string, tag="6")] - pub stdout: ::prost::alloc::string::String, - #[prost(string, tag="7")] - pub stderr: ::prost::alloc::string::String, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] pub struct EvaluateRulesPreviewResponse { #[prost(int32, tag="1")] pub created_annotation_count: i32, #[prost(message, repeated, tag="2")] pub dry_run_annotations: ::prost::alloc::vec::Vec, - #[prost(message, repeated, tag="3")] - pub rule_outputs: ::prost::alloc::vec::Vec, } include!("sift.rule_evaluation.v1.tonic.rs"); include!("sift.rule_evaluation.v1.serde.rs"); diff --git a/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.serde.rs index 2b5d7c029..d39125b6f 100644 --- a/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.rule_evaluation.v1.serde.rs @@ -789,9 +789,6 @@ impl serde::Serialize for EvaluateRulesPreviewResponse { if !self.dry_run_annotations.is_empty() { len += 1; } - if !self.rule_outputs.is_empty() { - len += 1; - } let mut struct_ser = serializer.serialize_struct("sift.rule_evaluation.v1.EvaluateRulesPreviewResponse", len)?; if self.created_annotation_count != 0 { struct_ser.serialize_field("createdAnnotationCount", &self.created_annotation_count)?; @@ -799,9 +796,6 @@ impl serde::Serialize for EvaluateRulesPreviewResponse { if !self.dry_run_annotations.is_empty() { struct_ser.serialize_field("dryRunAnnotations", &self.dry_run_annotations)?; } - if !self.rule_outputs.is_empty() { - struct_ser.serialize_field("ruleOutputs", &self.rule_outputs)?; - } struct_ser.end() } } @@ -816,15 +810,12 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewResponse { "createdAnnotationCount", "dry_run_annotations", "dryRunAnnotations", - "rule_outputs", - "ruleOutputs", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { CreatedAnnotationCount, DryRunAnnotations, - RuleOutputs, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -848,7 +839,6 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewResponse { match value { "createdAnnotationCount" | "created_annotation_count" => Ok(GeneratedField::CreatedAnnotationCount), "dryRunAnnotations" | "dry_run_annotations" => Ok(GeneratedField::DryRunAnnotations), - "ruleOutputs" | "rule_outputs" => Ok(GeneratedField::RuleOutputs), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -870,7 +860,6 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewResponse { { let mut created_annotation_count__ = None; let mut dry_run_annotations__ = None; - let mut rule_outputs__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::CreatedAnnotationCount => { @@ -887,18 +876,11 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewResponse { } dry_run_annotations__ = Some(map_.next_value()?); } - GeneratedField::RuleOutputs => { - if rule_outputs__.is_some() { - return Err(serde::de::Error::duplicate_field("ruleOutputs")); - } - rule_outputs__ = Some(map_.next_value()?); - } } } Ok(EvaluateRulesPreviewResponse { created_annotation_count: created_annotation_count__.unwrap_or_default(), dry_run_annotations: dry_run_annotations__.unwrap_or_default(), - rule_outputs: rule_outputs__.unwrap_or_default(), }) } } @@ -1275,206 +1257,6 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesResponse { deserializer.deserialize_struct("sift.rule_evaluation.v1.EvaluateRulesResponse", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for RulePreviewOutput { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.rule_name.is_empty() { - len += 1; - } - if !self.rule_id.is_empty() { - len += 1; - } - if !self.rule_version_id.is_empty() { - len += 1; - } - if !self.asset_id.is_empty() { - len += 1; - } - if self.exit_code != 0 { - len += 1; - } - if !self.stdout.is_empty() { - len += 1; - } - if !self.stderr.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("sift.rule_evaluation.v1.RulePreviewOutput", len)?; - if !self.rule_name.is_empty() { - struct_ser.serialize_field("ruleName", &self.rule_name)?; - } - if !self.rule_id.is_empty() { - struct_ser.serialize_field("ruleId", &self.rule_id)?; - } - if !self.rule_version_id.is_empty() { - struct_ser.serialize_field("ruleVersionId", &self.rule_version_id)?; - } - if !self.asset_id.is_empty() { - struct_ser.serialize_field("assetId", &self.asset_id)?; - } - if self.exit_code != 0 { - struct_ser.serialize_field("exitCode", &self.exit_code)?; - } - if !self.stdout.is_empty() { - struct_ser.serialize_field("stdout", &self.stdout)?; - } - if !self.stderr.is_empty() { - struct_ser.serialize_field("stderr", &self.stderr)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for RulePreviewOutput { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "rule_name", - "ruleName", - "rule_id", - "ruleId", - "rule_version_id", - "ruleVersionId", - "asset_id", - "assetId", - "exit_code", - "exitCode", - "stdout", - "stderr", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - RuleName, - RuleId, - RuleVersionId, - AssetId, - ExitCode, - Stdout, - Stderr, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "ruleName" | "rule_name" => Ok(GeneratedField::RuleName), - "ruleId" | "rule_id" => Ok(GeneratedField::RuleId), - "ruleVersionId" | "rule_version_id" => Ok(GeneratedField::RuleVersionId), - "assetId" | "asset_id" => Ok(GeneratedField::AssetId), - "exitCode" | "exit_code" => Ok(GeneratedField::ExitCode), - "stdout" => Ok(GeneratedField::Stdout), - "stderr" => Ok(GeneratedField::Stderr), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = RulePreviewOutput; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.rule_evaluation.v1.RulePreviewOutput") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut rule_name__ = None; - let mut rule_id__ = None; - let mut rule_version_id__ = None; - let mut asset_id__ = None; - let mut exit_code__ = None; - let mut stdout__ = None; - let mut stderr__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::RuleName => { - if rule_name__.is_some() { - return Err(serde::de::Error::duplicate_field("ruleName")); - } - rule_name__ = Some(map_.next_value()?); - } - GeneratedField::RuleId => { - if rule_id__.is_some() { - return Err(serde::de::Error::duplicate_field("ruleId")); - } - rule_id__ = Some(map_.next_value()?); - } - GeneratedField::RuleVersionId => { - if rule_version_id__.is_some() { - return Err(serde::de::Error::duplicate_field("ruleVersionId")); - } - rule_version_id__ = Some(map_.next_value()?); - } - GeneratedField::AssetId => { - if asset_id__.is_some() { - return Err(serde::de::Error::duplicate_field("assetId")); - } - asset_id__ = Some(map_.next_value()?); - } - GeneratedField::ExitCode => { - if exit_code__.is_some() { - return Err(serde::de::Error::duplicate_field("exitCode")); - } - exit_code__ = - Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::Stdout => { - if stdout__.is_some() { - return Err(serde::de::Error::duplicate_field("stdout")); - } - stdout__ = Some(map_.next_value()?); - } - GeneratedField::Stderr => { - if stderr__.is_some() { - return Err(serde::de::Error::duplicate_field("stderr")); - } - stderr__ = Some(map_.next_value()?); - } - } - } - Ok(RulePreviewOutput { - rule_name: rule_name__.unwrap_or_default(), - rule_id: rule_id__.unwrap_or_default(), - rule_version_id: rule_version_id__.unwrap_or_default(), - asset_id: asset_id__.unwrap_or_default(), - exit_code: exit_code__.unwrap_or_default(), - stdout: stdout__.unwrap_or_default(), - stderr: stderr__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("sift.rule_evaluation.v1.RulePreviewOutput", FIELDS, GeneratedVisitor) - } -} impl serde::Serialize for RunTimeRange { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift.rules.v1.rs b/rust/crates/sift_rs/src/gen/sift.rules.v1.rs index aa3686c3b..500fa05d5 100644 --- a/rust/crates/sift_rs/src/gen/sift.rules.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.rules.v1.rs @@ -34,12 +34,17 @@ pub struct Rule { pub asset_configuration: ::core::option::Option, #[prost(message, optional, tag="16")] pub contextual_channels: ::core::option::Option, + #[deprecated] #[prost(message, optional, tag="17")] pub deleted_date: ::core::option::Option<::pbjson_types::Timestamp>, #[prost(bool, tag="18")] pub is_external: bool, #[prost(message, repeated, tag="19")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="20")] + pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(bool, tag="21")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -216,6 +221,8 @@ pub struct UpdateRuleRequest { pub is_external: bool, #[prost(message, repeated, tag="13")] pub metadata: ::prost::alloc::vec::Vec, + #[prost(bool, tag="14")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -320,6 +327,30 @@ pub struct BatchDeleteRulesResponse { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct ArchiveRuleRequest { + #[prost(string, tag="1")] + pub rule_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub client_key: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct ArchiveRuleResponse { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BatchArchiveRulesRequest { + #[prost(string, repeated, tag="1")] + pub rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="2")] + pub client_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct BatchArchiveRulesResponse { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct UndeleteRuleRequest { #[prost(string, tag="1")] pub rule_id: ::prost::alloc::string::String, @@ -344,6 +375,30 @@ pub struct BatchUndeleteRulesResponse { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct UnarchiveRuleRequest { + #[prost(string, tag="1")] + pub rule_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub client_key: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct UnarchiveRuleResponse { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BatchUnarchiveRulesRequest { + #[prost(string, repeated, tag="1")] + pub rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="2")] + pub client_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct BatchUnarchiveRulesResponse { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct ViewHumanFriendlyRulesRequest { #[prost(string, tag="1")] pub asset_id: ::prost::alloc::string::String, @@ -485,8 +540,13 @@ pub struct RuleVersion { pub version_notes: ::prost::alloc::string::String, #[prost(string, tag="7")] pub generated_change_message: ::prost::alloc::string::String, + #[deprecated] #[prost(message, optional, tag="8")] pub deleted_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="9")] + pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(bool, tag="10")] + pub is_archived: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.rules.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.rules.v1.serde.rs index b316fd2d5..bf60ef4ad 100644 --- a/rust/crates/sift_rs/src/gen/sift.rules.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.rules.v1.serde.rs @@ -223,6 +223,187 @@ impl<'de> serde::Deserialize<'de> for AnnotationActionConfiguration { deserializer.deserialize_struct("sift.rules.v1.AnnotationActionConfiguration", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for ArchiveRuleRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.rule_id.is_empty() { + len += 1; + } + if !self.client_key.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.ArchiveRuleRequest", len)?; + if !self.rule_id.is_empty() { + struct_ser.serialize_field("ruleId", &self.rule_id)?; + } + if !self.client_key.is_empty() { + struct_ser.serialize_field("clientKey", &self.client_key)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ArchiveRuleRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_id", + "ruleId", + "client_key", + "clientKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleId, + ClientKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleId" | "rule_id" => Ok(GeneratedField::RuleId), + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ArchiveRuleRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.ArchiveRuleRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rule_id__ = None; + let mut client_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleId => { + if rule_id__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleId")); + } + rule_id__ = Some(map_.next_value()?); + } + GeneratedField::ClientKey => { + if client_key__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + client_key__ = Some(map_.next_value()?); + } + } + } + Ok(ArchiveRuleRequest { + rule_id: rule_id__.unwrap_or_default(), + client_key: client_key__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.ArchiveRuleRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ArchiveRuleResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.rules.v1.ArchiveRuleResponse", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ArchiveRuleResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ArchiveRuleResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.ArchiveRuleResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(ArchiveRuleResponse { + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.ArchiveRuleResponse", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for AssetExpressionValidationResult { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -368,7 +549,7 @@ impl<'de> serde::Deserialize<'de> for AssetExpressionValidationResult { deserializer.deserialize_struct("sift.rules.v1.AssetExpressionValidationResult", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchDeleteRulesRequest { +impl serde::Serialize for BatchArchiveRulesRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -382,7 +563,7 @@ impl serde::Serialize for BatchDeleteRulesRequest { if !self.client_keys.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchDeleteRulesRequest", len)?; + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchArchiveRulesRequest", len)?; if !self.rule_ids.is_empty() { struct_ser.serialize_field("ruleIds", &self.rule_ids)?; } @@ -392,7 +573,7 @@ impl serde::Serialize for BatchDeleteRulesRequest { struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchDeleteRulesRequest { +impl<'de> serde::Deserialize<'de> for BatchArchiveRulesRequest { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -441,13 +622,13 @@ impl<'de> serde::Deserialize<'de> for BatchDeleteRulesRequest { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchDeleteRulesRequest; + type Value = BatchArchiveRulesRequest; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.rules.v1.BatchDeleteRulesRequest") + formatter.write_str("struct sift.rules.v1.BatchArchiveRulesRequest") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -469,16 +650,16 @@ impl<'de> serde::Deserialize<'de> for BatchDeleteRulesRequest { } } } - Ok(BatchDeleteRulesRequest { + Ok(BatchArchiveRulesRequest { rule_ids: rule_ids__.unwrap_or_default(), client_keys: client_keys__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.rules.v1.BatchDeleteRulesRequest", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.rules.v1.BatchArchiveRulesRequest", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchDeleteRulesResponse { +impl serde::Serialize for BatchArchiveRulesResponse { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -486,11 +667,11 @@ impl serde::Serialize for BatchDeleteRulesResponse { { use serde::ser::SerializeStruct; let len = 0; - let struct_ser = serializer.serialize_struct("sift.rules.v1.BatchDeleteRulesResponse", len)?; + let struct_ser = serializer.serialize_struct("sift.rules.v1.BatchArchiveRulesResponse", len)?; struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchDeleteRulesResponse { +impl<'de> serde::Deserialize<'de> for BatchArchiveRulesResponse { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -529,27 +710,27 @@ impl<'de> serde::Deserialize<'de> for BatchDeleteRulesResponse { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchDeleteRulesResponse; + type Value = BatchArchiveRulesResponse; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.rules.v1.BatchDeleteRulesResponse") + formatter.write_str("struct sift.rules.v1.BatchArchiveRulesResponse") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { while map_.next_key::()?.is_some() { let _ = map_.next_value::()?; } - Ok(BatchDeleteRulesResponse { + Ok(BatchArchiveRulesResponse { }) } } - deserializer.deserialize_struct("sift.rules.v1.BatchDeleteRulesResponse", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.rules.v1.BatchArchiveRulesResponse", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchGetRuleVersionsRequest { +impl serde::Serialize for BatchDeleteRulesRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -557,30 +738,39 @@ impl serde::Serialize for BatchGetRuleVersionsRequest { { use serde::ser::SerializeStruct; let mut len = 0; - if !self.rule_version_ids.is_empty() { + if !self.rule_ids.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRuleVersionsRequest", len)?; - if !self.rule_version_ids.is_empty() { - struct_ser.serialize_field("ruleVersionIds", &self.rule_version_ids)?; + if !self.client_keys.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchDeleteRulesRequest", len)?; + if !self.rule_ids.is_empty() { + struct_ser.serialize_field("ruleIds", &self.rule_ids)?; + } + if !self.client_keys.is_empty() { + struct_ser.serialize_field("clientKeys", &self.client_keys)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsRequest { +impl<'de> serde::Deserialize<'de> for BatchDeleteRulesRequest { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "rule_version_ids", - "ruleVersionIds", + "rule_ids", + "ruleIds", + "client_keys", + "clientKeys", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - RuleVersionIds, + RuleIds, + ClientKeys, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -602,7 +792,8 @@ impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsRequest { E: serde::de::Error, { match value { - "ruleVersionIds" | "rule_version_ids" => Ok(GeneratedField::RuleVersionIds), + "ruleIds" | "rule_ids" => Ok(GeneratedField::RuleIds), + "clientKeys" | "client_keys" => Ok(GeneratedField::ClientKeys), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -612,36 +803,408 @@ impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsRequest { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchGetRuleVersionsRequest; + type Value = BatchDeleteRulesRequest; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.rules.v1.BatchGetRuleVersionsRequest") + formatter.write_str("struct sift.rules.v1.BatchDeleteRulesRequest") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut rule_version_ids__ = None; + let mut rule_ids__ = None; + let mut client_keys__ = None; while let Some(k) = map_.next_key()? { match k { - GeneratedField::RuleVersionIds => { - if rule_version_ids__.is_some() { - return Err(serde::de::Error::duplicate_field("ruleVersionIds")); + GeneratedField::RuleIds => { + if rule_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleIds")); } - rule_version_ids__ = Some(map_.next_value()?); + rule_ids__ = Some(map_.next_value()?); + } + GeneratedField::ClientKeys => { + if client_keys__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKeys")); + } + client_keys__ = Some(map_.next_value()?); } } } - Ok(BatchGetRuleVersionsRequest { - rule_version_ids: rule_version_ids__.unwrap_or_default(), + Ok(BatchDeleteRulesRequest { + rule_ids: rule_ids__.unwrap_or_default(), + client_keys: client_keys__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.BatchDeleteRulesRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchDeleteRulesResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.rules.v1.BatchDeleteRulesResponse", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchDeleteRulesResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchDeleteRulesResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.BatchDeleteRulesResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(BatchDeleteRulesResponse { + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.BatchDeleteRulesResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchGetRuleVersionsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.rule_version_ids.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRuleVersionsRequest", len)?; + if !self.rule_version_ids.is_empty() { + struct_ser.serialize_field("ruleVersionIds", &self.rule_version_ids)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_version_ids", + "ruleVersionIds", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleVersionIds, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleVersionIds" | "rule_version_ids" => Ok(GeneratedField::RuleVersionIds), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchGetRuleVersionsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.BatchGetRuleVersionsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rule_version_ids__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleVersionIds => { + if rule_version_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleVersionIds")); + } + rule_version_ids__ = Some(map_.next_value()?); + } + } + } + Ok(BatchGetRuleVersionsRequest { + rule_version_ids: rule_version_ids__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.BatchGetRuleVersionsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchGetRuleVersionsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.rules.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRuleVersionsResponse", len)?; + if !self.rules.is_empty() { + struct_ser.serialize_field("rules", &self.rules)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rules", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Rules, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "rules" => Ok(GeneratedField::Rules), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchGetRuleVersionsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.BatchGetRuleVersionsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rules__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Rules => { + if rules__.is_some() { + return Err(serde::de::Error::duplicate_field("rules")); + } + rules__ = Some(map_.next_value()?); + } + } + } + Ok(BatchGetRuleVersionsResponse { + rules: rules__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.BatchGetRuleVersionsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchGetRulesRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.rule_ids.is_empty() { + len += 1; + } + if !self.client_keys.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRulesRequest", len)?; + if !self.rule_ids.is_empty() { + struct_ser.serialize_field("ruleIds", &self.rule_ids)?; + } + if !self.client_keys.is_empty() { + struct_ser.serialize_field("clientKeys", &self.client_keys)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchGetRulesRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_ids", + "ruleIds", + "client_keys", + "clientKeys", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleIds, + ClientKeys, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleIds" | "rule_ids" => Ok(GeneratedField::RuleIds), + "clientKeys" | "client_keys" => Ok(GeneratedField::ClientKeys), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchGetRulesRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.BatchGetRulesRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rule_ids__ = None; + let mut client_keys__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleIds => { + if rule_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleIds")); + } + rule_ids__ = Some(map_.next_value()?); + } + GeneratedField::ClientKeys => { + if client_keys__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKeys")); + } + client_keys__ = Some(map_.next_value()?); + } + } + } + Ok(BatchGetRulesRequest { + rule_ids: rule_ids__.unwrap_or_default(), + client_keys: client_keys__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.rules.v1.BatchGetRuleVersionsRequest", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.rules.v1.BatchGetRulesRequest", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchGetRuleVersionsResponse { +impl serde::Serialize for BatchGetRulesResponse { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -652,14 +1215,14 @@ impl serde::Serialize for BatchGetRuleVersionsResponse { if !self.rules.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRuleVersionsResponse", len)?; + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRulesResponse", len)?; if !self.rules.is_empty() { struct_ser.serialize_field("rules", &self.rules)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsResponse { +impl<'de> serde::Deserialize<'de> for BatchGetRulesResponse { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -703,13 +1266,13 @@ impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsResponse { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchGetRuleVersionsResponse; + type Value = BatchGetRulesResponse; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.rules.v1.BatchGetRuleVersionsResponse") + formatter.write_str("struct sift.rules.v1.BatchGetRulesResponse") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -724,15 +1287,15 @@ impl<'de> serde::Deserialize<'de> for BatchGetRuleVersionsResponse { } } } - Ok(BatchGetRuleVersionsResponse { + Ok(BatchGetRulesResponse { rules: rules__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.rules.v1.BatchGetRuleVersionsResponse", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.rules.v1.BatchGetRulesResponse", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchGetRulesRequest { +impl serde::Serialize for BatchUnarchiveRulesRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -746,7 +1309,7 @@ impl serde::Serialize for BatchGetRulesRequest { if !self.client_keys.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRulesRequest", len)?; + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchUnarchiveRulesRequest", len)?; if !self.rule_ids.is_empty() { struct_ser.serialize_field("ruleIds", &self.rule_ids)?; } @@ -756,7 +1319,7 @@ impl serde::Serialize for BatchGetRulesRequest { struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchGetRulesRequest { +impl<'de> serde::Deserialize<'de> for BatchUnarchiveRulesRequest { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -805,13 +1368,13 @@ impl<'de> serde::Deserialize<'de> for BatchGetRulesRequest { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchGetRulesRequest; + type Value = BatchUnarchiveRulesRequest; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.rules.v1.BatchGetRulesRequest") + formatter.write_str("struct sift.rules.v1.BatchUnarchiveRulesRequest") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -833,46 +1396,38 @@ impl<'de> serde::Deserialize<'de> for BatchGetRulesRequest { } } } - Ok(BatchGetRulesRequest { + Ok(BatchUnarchiveRulesRequest { rule_ids: rule_ids__.unwrap_or_default(), client_keys: client_keys__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("sift.rules.v1.BatchGetRulesRequest", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.rules.v1.BatchUnarchiveRulesRequest", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for BatchGetRulesResponse { +impl serde::Serialize for BatchUnarchiveRulesResponse { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where S: serde::Serializer, { use serde::ser::SerializeStruct; - let mut len = 0; - if !self.rules.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("sift.rules.v1.BatchGetRulesResponse", len)?; - if !self.rules.is_empty() { - struct_ser.serialize_field("rules", &self.rules)?; - } + let len = 0; + let struct_ser = serializer.serialize_struct("sift.rules.v1.BatchUnarchiveRulesResponse", len)?; struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for BatchGetRulesResponse { +impl<'de> serde::Deserialize<'de> for BatchUnarchiveRulesResponse { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "rules", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Rules, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -893,10 +1448,7 @@ impl<'de> serde::Deserialize<'de> for BatchGetRulesResponse { where E: serde::de::Error, { - match value { - "rules" => Ok(GeneratedField::Rules), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } + Err(serde::de::Error::unknown_field(value, FIELDS)) } } deserializer.deserialize_identifier(GeneratedVisitor) @@ -904,33 +1456,24 @@ impl<'de> serde::Deserialize<'de> for BatchGetRulesResponse { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BatchGetRulesResponse; + type Value = BatchUnarchiveRulesResponse; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct sift.rules.v1.BatchGetRulesResponse") + formatter.write_str("struct sift.rules.v1.BatchUnarchiveRulesResponse") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut rules__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Rules => { - if rules__.is_some() { - return Err(serde::de::Error::duplicate_field("rules")); - } - rules__ = Some(map_.next_value()?); - } - } + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; } - Ok(BatchGetRulesResponse { - rules: rules__.unwrap_or_default(), + Ok(BatchUnarchiveRulesResponse { }) } } - deserializer.deserialize_struct("sift.rules.v1.BatchGetRulesResponse", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("sift.rules.v1.BatchUnarchiveRulesResponse", FIELDS, GeneratedVisitor) } } impl serde::Serialize for BatchUndeleteRulesRequest { @@ -4337,6 +4880,12 @@ impl serde::Serialize for Rule { if !self.metadata.is_empty() { len += 1; } + if self.archived_date.is_some() { + len += 1; + } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.rules.v1.Rule", len)?; if !self.rule_id.is_empty() { struct_ser.serialize_field("ruleId", &self.rule_id)?; @@ -4392,6 +4941,12 @@ impl serde::Serialize for Rule { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if let Some(v) = self.archived_date.as_ref() { + struct_ser.serialize_field("archivedDate", v)?; + } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -4434,6 +4989,10 @@ impl<'de> serde::Deserialize<'de> for Rule { "is_external", "isExternal", "metadata", + "archived_date", + "archivedDate", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -4456,6 +5015,8 @@ impl<'de> serde::Deserialize<'de> for Rule { DeletedDate, IsExternal, Metadata, + ArchivedDate, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4495,6 +5056,8 @@ impl<'de> serde::Deserialize<'de> for Rule { "deletedDate" | "deleted_date" => Ok(GeneratedField::DeletedDate), "isExternal" | "is_external" => Ok(GeneratedField::IsExternal), "metadata" => Ok(GeneratedField::Metadata), + "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4532,6 +5095,8 @@ impl<'de> serde::Deserialize<'de> for Rule { let mut deleted_date__ = None; let mut is_external__ = None; let mut metadata__ = None; + let mut archived_date__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::RuleId => { @@ -4642,6 +5207,18 @@ impl<'de> serde::Deserialize<'de> for Rule { } metadata__ = Some(map_.next_value()?); } + GeneratedField::ArchivedDate => { + if archived_date__.is_some() { + return Err(serde::de::Error::duplicate_field("archivedDate")); + } + archived_date__ = map_.next_value()?; + } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(Rule { @@ -4663,6 +5240,8 @@ impl<'de> serde::Deserialize<'de> for Rule { deleted_date: deleted_date__, is_external: is_external__.unwrap_or_default(), metadata: metadata__.unwrap_or_default(), + archived_date: archived_date__, + is_archived: is_archived__.unwrap_or_default(), }) } } @@ -5502,6 +6081,12 @@ impl serde::Serialize for RuleVersion { if self.deleted_date.is_some() { len += 1; } + if self.archived_date.is_some() { + len += 1; + } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.rules.v1.RuleVersion", len)?; if !self.rule_id.is_empty() { struct_ser.serialize_field("ruleId", &self.rule_id)?; @@ -5527,6 +6112,12 @@ impl serde::Serialize for RuleVersion { if let Some(v) = self.deleted_date.as_ref() { struct_ser.serialize_field("deletedDate", v)?; } + if let Some(v) = self.archived_date.as_ref() { + struct_ser.serialize_field("archivedDate", v)?; + } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -5552,6 +6143,10 @@ impl<'de> serde::Deserialize<'de> for RuleVersion { "generatedChangeMessage", "deleted_date", "deletedDate", + "archived_date", + "archivedDate", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -5564,6 +6159,8 @@ impl<'de> serde::Deserialize<'de> for RuleVersion { VersionNotes, GeneratedChangeMessage, DeletedDate, + ArchivedDate, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -5593,6 +6190,8 @@ impl<'de> serde::Deserialize<'de> for RuleVersion { "versionNotes" | "version_notes" => Ok(GeneratedField::VersionNotes), "generatedChangeMessage" | "generated_change_message" => Ok(GeneratedField::GeneratedChangeMessage), "deletedDate" | "deleted_date" => Ok(GeneratedField::DeletedDate), + "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -5620,6 +6219,8 @@ impl<'de> serde::Deserialize<'de> for RuleVersion { let mut version_notes__ = None; let mut generated_change_message__ = None; let mut deleted_date__ = None; + let mut archived_date__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::RuleId => { @@ -5670,6 +6271,18 @@ impl<'de> serde::Deserialize<'de> for RuleVersion { } deleted_date__ = map_.next_value()?; } + GeneratedField::ArchivedDate => { + if archived_date__.is_some() { + return Err(serde::de::Error::duplicate_field("archivedDate")); + } + archived_date__ = map_.next_value()?; + } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(RuleVersion { @@ -5681,6 +6294,8 @@ impl<'de> serde::Deserialize<'de> for RuleVersion { version_notes: version_notes__.unwrap_or_default(), generated_change_message: generated_change_message__.unwrap_or_default(), deleted_date: deleted_date__, + archived_date: archived_date__, + is_archived: is_archived__.unwrap_or_default(), }) } } @@ -6431,6 +7046,187 @@ impl<'de> serde::Deserialize<'de> for TimeRangeQuery { deserializer.deserialize_struct("sift.rules.v1.TimeRangeQuery", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for UnarchiveRuleRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.rule_id.is_empty() { + len += 1; + } + if !self.client_key.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.UnarchiveRuleRequest", len)?; + if !self.rule_id.is_empty() { + struct_ser.serialize_field("ruleId", &self.rule_id)?; + } + if !self.client_key.is_empty() { + struct_ser.serialize_field("clientKey", &self.client_key)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UnarchiveRuleRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_id", + "ruleId", + "client_key", + "clientKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleId, + ClientKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleId" | "rule_id" => Ok(GeneratedField::RuleId), + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UnarchiveRuleRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.UnarchiveRuleRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rule_id__ = None; + let mut client_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleId => { + if rule_id__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleId")); + } + rule_id__ = Some(map_.next_value()?); + } + GeneratedField::ClientKey => { + if client_key__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + client_key__ = Some(map_.next_value()?); + } + } + } + Ok(UnarchiveRuleRequest { + rule_id: rule_id__.unwrap_or_default(), + client_key: client_key__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.UnarchiveRuleRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UnarchiveRuleResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.rules.v1.UnarchiveRuleResponse", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UnarchiveRuleResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UnarchiveRuleResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.UnarchiveRuleResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(UnarchiveRuleResponse { + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.UnarchiveRuleResponse", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for UndeleteRuleRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -7352,6 +8148,9 @@ impl serde::Serialize for UpdateRuleRequest { if !self.metadata.is_empty() { len += 1; } + if self.is_archived { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.rules.v1.UpdateRuleRequest", len)?; if let Some(v) = self.rule_id.as_ref() { struct_ser.serialize_field("ruleId", v)?; @@ -7392,6 +8191,9 @@ impl serde::Serialize for UpdateRuleRequest { if !self.metadata.is_empty() { struct_ser.serialize_field("metadata", &self.metadata)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } struct_ser.end() } } @@ -7424,6 +8226,8 @@ impl<'de> serde::Deserialize<'de> for UpdateRuleRequest { "is_external", "isExternal", "metadata", + "is_archived", + "isArchived", ]; #[allow(clippy::enum_variant_names)] @@ -7441,6 +8245,7 @@ impl<'de> serde::Deserialize<'de> for UpdateRuleRequest { ContextualChannels, IsExternal, Metadata, + IsArchived, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -7475,6 +8280,7 @@ impl<'de> serde::Deserialize<'de> for UpdateRuleRequest { "contextualChannels" | "contextual_channels" => Ok(GeneratedField::ContextualChannels), "isExternal" | "is_external" => Ok(GeneratedField::IsExternal), "metadata" => Ok(GeneratedField::Metadata), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -7507,6 +8313,7 @@ impl<'de> serde::Deserialize<'de> for UpdateRuleRequest { let mut contextual_channels__ = None; let mut is_external__ = None; let mut metadata__ = None; + let mut is_archived__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::RuleId => { @@ -7587,6 +8394,12 @@ impl<'de> serde::Deserialize<'de> for UpdateRuleRequest { } metadata__ = Some(map_.next_value()?); } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } } } Ok(UpdateRuleRequest { @@ -7603,6 +8416,7 @@ impl<'de> serde::Deserialize<'de> for UpdateRuleRequest { contextual_channels: contextual_channels__, is_external: is_external__.unwrap_or_default(), metadata: metadata__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.rules.v1.tonic.rs b/rust/crates/sift_rs/src/gen/sift.rules.v1.tonic.rs index bae3f18e8..5bcb9f087 100644 --- a/rust/crates/sift_rs/src/gen/sift.rules.v1.tonic.rs +++ b/rust/crates/sift_rs/src/gen/sift.rules.v1.tonic.rs @@ -261,6 +261,31 @@ pub mod rule_service_client { .insert(GrpcMethod::new("sift.rules.v1.RuleService", "DeleteRule")); self.inner.unary(req, path, codec).await } + pub async fn archive_rule( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.rules.v1.RuleService/ArchiveRule", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("sift.rules.v1.RuleService", "ArchiveRule")); + self.inner.unary(req, path, codec).await + } pub async fn batch_delete_rules( &mut self, request: impl tonic::IntoRequest, @@ -288,6 +313,85 @@ pub mod rule_service_client { ); self.inner.unary(req, path, codec).await } + pub async fn batch_archive_rules( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.rules.v1.RuleService/BatchArchiveRules", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.rules.v1.RuleService", "BatchArchiveRules"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn unarchive_rule( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.rules.v1.RuleService/UnarchiveRule", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("sift.rules.v1.RuleService", "UnarchiveRule")); + self.inner.unary(req, path, codec).await + } + pub async fn batch_unarchive_rules( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.rules.v1.RuleService/BatchUnarchiveRules", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.rules.v1.RuleService", "BatchUnarchiveRules"), + ); + self.inner.unary(req, path, codec).await + } pub async fn undelete_rule( &mut self, request: impl tonic::IntoRequest, @@ -661,6 +765,13 @@ pub mod rule_service_server { tonic::Response, tonic::Status, >; + async fn archive_rule( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; async fn batch_delete_rules( &self, request: tonic::Request, @@ -668,6 +779,27 @@ pub mod rule_service_server { tonic::Response, tonic::Status, >; + async fn batch_archive_rules( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn unarchive_rule( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn batch_unarchive_rules( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; async fn undelete_rule( &self, request: tonic::Request, @@ -1155,6 +1287,52 @@ pub mod rule_service_server { }; Box::pin(fut) } + "/sift.rules.v1.RuleService/ArchiveRule" => { + #[allow(non_camel_case_types)] + struct ArchiveRuleSvc(pub Arc); + impl< + T: RuleService, + > tonic::server::UnaryService + for ArchiveRuleSvc { + type Response = super::ArchiveRuleResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::archive_rule(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ArchiveRuleSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/sift.rules.v1.RuleService/BatchDeleteRules" => { #[allow(non_camel_case_types)] struct BatchDeleteRulesSvc(pub Arc); @@ -1202,6 +1380,146 @@ pub mod rule_service_server { }; Box::pin(fut) } + "/sift.rules.v1.RuleService/BatchArchiveRules" => { + #[allow(non_camel_case_types)] + struct BatchArchiveRulesSvc(pub Arc); + impl< + T: RuleService, + > tonic::server::UnaryService + for BatchArchiveRulesSvc { + type Response = super::BatchArchiveRulesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::batch_archive_rules(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = BatchArchiveRulesSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.rules.v1.RuleService/UnarchiveRule" => { + #[allow(non_camel_case_types)] + struct UnarchiveRuleSvc(pub Arc); + impl< + T: RuleService, + > tonic::server::UnaryService + for UnarchiveRuleSvc { + type Response = super::UnarchiveRuleResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::unarchive_rule(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UnarchiveRuleSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.rules.v1.RuleService/BatchUnarchiveRules" => { + #[allow(non_camel_case_types)] + struct BatchUnarchiveRulesSvc(pub Arc); + impl< + T: RuleService, + > tonic::server::UnaryService + for BatchUnarchiveRulesSvc { + type Response = super::BatchUnarchiveRulesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::batch_unarchive_rules(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = BatchUnarchiveRulesSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/sift.rules.v1.RuleService/UndeleteRule" => { #[allow(non_camel_case_types)] struct UndeleteRuleSvc(pub Arc); diff --git a/rust/crates/sift_rs/src/gen/sift.runs.v2.rs b/rust/crates/sift_rs/src/gen/sift.runs.v2.rs index 91814d2e8..cdd31acc3 100644 --- a/rust/crates/sift_rs/src/gen/sift.runs.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.runs.v2.rs @@ -39,6 +39,10 @@ pub struct Run { pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, #[prost(bool, tag="18")] pub is_adhoc: bool, + #[prost(bool, tag="19")] + pub is_archived: bool, + #[prost(message, optional, tag="20")] + pub duration: ::core::option::Option<::pbjson_types::Duration>, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/rust/crates/sift_rs/src/gen/sift.runs.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.runs.v2.serde.rs index 5a58c1a6d..96610fff5 100644 --- a/rust/crates/sift_rs/src/gen/sift.runs.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.runs.v2.serde.rs @@ -1454,6 +1454,12 @@ impl serde::Serialize for Run { if self.is_adhoc { len += 1; } + if self.is_archived { + len += 1; + } + if self.duration.is_some() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.runs.v2.Run", len)?; if !self.run_id.is_empty() { struct_ser.serialize_field("runId", &self.run_id)?; @@ -1509,6 +1515,12 @@ impl serde::Serialize for Run { if self.is_adhoc { struct_ser.serialize_field("isAdhoc", &self.is_adhoc)?; } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } + if let Some(v) = self.duration.as_ref() { + struct_ser.serialize_field("duration", v)?; + } struct_ser.end() } } @@ -1551,6 +1563,9 @@ impl<'de> serde::Deserialize<'de> for Run { "archivedDate", "is_adhoc", "isAdhoc", + "is_archived", + "isArchived", + "duration", ]; #[allow(clippy::enum_variant_names)] @@ -1573,6 +1588,8 @@ impl<'de> serde::Deserialize<'de> for Run { AssetIds, ArchivedDate, IsAdhoc, + IsArchived, + Duration, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1612,6 +1629,8 @@ impl<'de> serde::Deserialize<'de> for Run { "assetIds" | "asset_ids" => Ok(GeneratedField::AssetIds), "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), "isAdhoc" | "is_adhoc" => Ok(GeneratedField::IsAdhoc), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), + "duration" => Ok(GeneratedField::Duration), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1649,6 +1668,8 @@ impl<'de> serde::Deserialize<'de> for Run { let mut asset_ids__ = None; let mut archived_date__ = None; let mut is_adhoc__ = None; + let mut is_archived__ = None; + let mut duration__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::RunId => { @@ -1759,6 +1780,18 @@ impl<'de> serde::Deserialize<'de> for Run { } is_adhoc__ = Some(map_.next_value()?); } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } + GeneratedField::Duration => { + if duration__.is_some() { + return Err(serde::de::Error::duplicate_field("duration")); + } + duration__ = map_.next_value()?; + } } } Ok(Run { @@ -1780,6 +1813,8 @@ impl<'de> serde::Deserialize<'de> for Run { asset_ids: asset_ids__.unwrap_or_default(), archived_date: archived_date__, is_adhoc: is_adhoc__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), + duration: duration__, }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.rs b/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.rs index 3bed9b406..5753cafb5 100644 --- a/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.rs @@ -45,6 +45,12 @@ pub struct SavedSearchProperties { pub report_template_items: ::prost::alloc::vec::Vec, #[prost(bool, optional, tag="11")] pub show_advanced_filters: ::core::option::Option, + #[prost(bool, optional, tag="12")] + pub include_archived: ::core::option::Option, + #[prost(string, optional, tag="13")] + pub order_by: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, repeated, tag="14")] + pub metadata_items: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -56,6 +62,27 @@ pub struct SavedSearchFilterItem { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct SavedSearchMetadataItem { + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, + #[prost(oneof="saved_search_metadata_item::Value", tags="2, 3, 4")] + pub value: ::core::option::Option, +} +/// Nested message and enum types in `SavedSearchMetadataItem`. +pub mod saved_search_metadata_item { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Value { + #[prost(string, tag="2")] + StringValue(::prost::alloc::string::String), + #[prost(double, tag="3")] + NumberValue(f64), + #[prost(bool, tag="4")] + BooleanValue(bool), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct GetSavedSearchRequest { #[prost(string, tag="1")] pub saved_search_id: ::prost::alloc::string::String, diff --git a/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.serde.rs index 995a4b479..82fe7361d 100644 --- a/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.saved_searches.v1.serde.rs @@ -1308,6 +1308,145 @@ impl<'de> serde::Deserialize<'de> for SavedSearchFilterItem { deserializer.deserialize_struct("sift.saved_searches.v1.SavedSearchFilterItem", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for SavedSearchMetadataItem { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.key.is_empty() { + len += 1; + } + if self.value.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.saved_searches.v1.SavedSearchMetadataItem", len)?; + if !self.key.is_empty() { + struct_ser.serialize_field("key", &self.key)?; + } + if let Some(v) = self.value.as_ref() { + match v { + saved_search_metadata_item::Value::StringValue(v) => { + struct_ser.serialize_field("stringValue", v)?; + } + saved_search_metadata_item::Value::NumberValue(v) => { + struct_ser.serialize_field("numberValue", v)?; + } + saved_search_metadata_item::Value::BooleanValue(v) => { + struct_ser.serialize_field("booleanValue", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SavedSearchMetadataItem { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "key", + "string_value", + "stringValue", + "number_value", + "numberValue", + "boolean_value", + "booleanValue", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Key, + StringValue, + NumberValue, + BooleanValue, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "key" => Ok(GeneratedField::Key), + "stringValue" | "string_value" => Ok(GeneratedField::StringValue), + "numberValue" | "number_value" => Ok(GeneratedField::NumberValue), + "booleanValue" | "boolean_value" => Ok(GeneratedField::BooleanValue), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SavedSearchMetadataItem; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.saved_searches.v1.SavedSearchMetadataItem") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut key__ = None; + let mut value__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); + } + key__ = Some(map_.next_value()?); + } + GeneratedField::StringValue => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("stringValue")); + } + value__ = map_.next_value::<::std::option::Option<_>>()?.map(saved_search_metadata_item::Value::StringValue); + } + GeneratedField::NumberValue => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("numberValue")); + } + value__ = map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| saved_search_metadata_item::Value::NumberValue(x.0)); + } + GeneratedField::BooleanValue => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("booleanValue")); + } + value__ = map_.next_value::<::std::option::Option<_>>()?.map(saved_search_metadata_item::Value::BooleanValue); + } + } + } + Ok(SavedSearchMetadataItem { + key: key__.unwrap_or_default(), + value: value__, + }) + } + } + deserializer.deserialize_struct("sift.saved_searches.v1.SavedSearchMetadataItem", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for SavedSearchProperties { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -1349,6 +1488,15 @@ impl serde::Serialize for SavedSearchProperties { if self.show_advanced_filters.is_some() { len += 1; } + if self.include_archived.is_some() { + len += 1; + } + if self.order_by.is_some() { + len += 1; + } + if !self.metadata_items.is_empty() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.saved_searches.v1.SavedSearchProperties", len)?; if !self.overview_mode.is_empty() { struct_ser.serialize_field("overviewMode", &self.overview_mode)?; @@ -1383,6 +1531,15 @@ impl serde::Serialize for SavedSearchProperties { if let Some(v) = self.show_advanced_filters.as_ref() { struct_ser.serialize_field("showAdvancedFilters", v)?; } + if let Some(v) = self.include_archived.as_ref() { + struct_ser.serialize_field("includeArchived", v)?; + } + if let Some(v) = self.order_by.as_ref() { + struct_ser.serialize_field("orderBy", v)?; + } + if !self.metadata_items.is_empty() { + struct_ser.serialize_field("metadataItems", &self.metadata_items)?; + } struct_ser.end() } } @@ -1415,6 +1572,12 @@ impl<'de> serde::Deserialize<'de> for SavedSearchProperties { "reportTemplateItems", "show_advanced_filters", "showAdvancedFilters", + "include_archived", + "includeArchived", + "order_by", + "orderBy", + "metadata_items", + "metadataItems", ]; #[allow(clippy::enum_variant_names)] @@ -1430,6 +1593,9 @@ impl<'de> serde::Deserialize<'de> for SavedSearchProperties { RunItems, ReportTemplateItems, ShowAdvancedFilters, + IncludeArchived, + OrderBy, + MetadataItems, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1462,6 +1628,9 @@ impl<'de> serde::Deserialize<'de> for SavedSearchProperties { "runItems" | "run_items" => Ok(GeneratedField::RunItems), "reportTemplateItems" | "report_template_items" => Ok(GeneratedField::ReportTemplateItems), "showAdvancedFilters" | "show_advanced_filters" => Ok(GeneratedField::ShowAdvancedFilters), + "includeArchived" | "include_archived" => Ok(GeneratedField::IncludeArchived), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + "metadataItems" | "metadata_items" => Ok(GeneratedField::MetadataItems), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1492,6 +1661,9 @@ impl<'de> serde::Deserialize<'de> for SavedSearchProperties { let mut run_items__ = None; let mut report_template_items__ = None; let mut show_advanced_filters__ = None; + let mut include_archived__ = None; + let mut order_by__ = None; + let mut metadata_items__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::OverviewMode => { @@ -1560,6 +1732,24 @@ impl<'de> serde::Deserialize<'de> for SavedSearchProperties { } show_advanced_filters__ = map_.next_value()?; } + GeneratedField::IncludeArchived => { + if include_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("includeArchived")); + } + include_archived__ = map_.next_value()?; + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = map_.next_value()?; + } + GeneratedField::MetadataItems => { + if metadata_items__.is_some() { + return Err(serde::de::Error::duplicate_field("metadataItems")); + } + metadata_items__ = Some(map_.next_value()?); + } } } Ok(SavedSearchProperties { @@ -1574,6 +1764,9 @@ impl<'de> serde::Deserialize<'de> for SavedSearchProperties { run_items: run_items__.unwrap_or_default(), report_template_items: report_template_items__.unwrap_or_default(), show_advanced_filters: show_advanced_filters__, + include_archived: include_archived__, + order_by: order_by__, + metadata_items: metadata_items__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.tags.v2.rs b/rust/crates/sift_rs/src/gen/sift.tags.v2.rs index 3b369e5c2..0d82b77bf 100644 --- a/rust/crates/sift_rs/src/gen/sift.tags.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.tags.v2.rs @@ -35,6 +35,8 @@ pub struct ListTagsRequest { pub filter: ::prost::alloc::string::String, #[prost(string, tag="4")] pub order_by: ::prost::alloc::string::String, + #[prost(enumeration="TagType", tag="5")] + pub tag_type: i32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -44,6 +46,47 @@ pub struct ListTagsResponse { #[prost(string, tag="2")] pub next_page_token: ::prost::alloc::string::String, } +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum TagType { + Unspecified = 0, + Annotation = 1, + Asset = 2, + Campaign = 3, + Report = 4, + ReportTemplate = 5, + Run = 6, +} +impl TagType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + TagType::Unspecified => "TAG_TYPE_UNSPECIFIED", + TagType::Annotation => "TAG_TYPE_ANNOTATION", + TagType::Asset => "TAG_TYPE_ASSET", + TagType::Campaign => "TAG_TYPE_CAMPAIGN", + TagType::Report => "TAG_TYPE_REPORT", + TagType::ReportTemplate => "TAG_TYPE_REPORT_TEMPLATE", + TagType::Run => "TAG_TYPE_RUN", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TAG_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TAG_TYPE_ANNOTATION" => Some(Self::Annotation), + "TAG_TYPE_ASSET" => Some(Self::Asset), + "TAG_TYPE_CAMPAIGN" => Some(Self::Campaign), + "TAG_TYPE_REPORT" => Some(Self::Report), + "TAG_TYPE_REPORT_TEMPLATE" => Some(Self::ReportTemplate), + "TAG_TYPE_RUN" => Some(Self::Run), + _ => None, + } + } +} include!("sift.tags.v2.tonic.rs"); include!("sift.tags.v2.serde.rs"); // @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift.tags.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.tags.v2.serde.rs index f011f6537..fdea5c356 100644 --- a/rust/crates/sift_rs/src/gen/sift.tags.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.tags.v2.serde.rs @@ -201,6 +201,9 @@ impl serde::Serialize for ListTagsRequest { if !self.order_by.is_empty() { len += 1; } + if self.tag_type != 0 { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.tags.v2.ListTagsRequest", len)?; if self.page_size != 0 { struct_ser.serialize_field("pageSize", &self.page_size)?; @@ -214,6 +217,11 @@ impl serde::Serialize for ListTagsRequest { if !self.order_by.is_empty() { struct_ser.serialize_field("orderBy", &self.order_by)?; } + if self.tag_type != 0 { + let v = TagType::try_from(self.tag_type) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.tag_type)))?; + struct_ser.serialize_field("tagType", &v)?; + } struct_ser.end() } } @@ -231,6 +239,8 @@ impl<'de> serde::Deserialize<'de> for ListTagsRequest { "filter", "order_by", "orderBy", + "tag_type", + "tagType", ]; #[allow(clippy::enum_variant_names)] @@ -239,6 +249,7 @@ impl<'de> serde::Deserialize<'de> for ListTagsRequest { PageToken, Filter, OrderBy, + TagType, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -264,6 +275,7 @@ impl<'de> serde::Deserialize<'de> for ListTagsRequest { "pageToken" | "page_token" => Ok(GeneratedField::PageToken), "filter" => Ok(GeneratedField::Filter), "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + "tagType" | "tag_type" => Ok(GeneratedField::TagType), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -287,6 +299,7 @@ impl<'de> serde::Deserialize<'de> for ListTagsRequest { let mut page_token__ = None; let mut filter__ = None; let mut order_by__ = None; + let mut tag_type__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::PageSize => { @@ -315,6 +328,12 @@ impl<'de> serde::Deserialize<'de> for ListTagsRequest { } order_by__ = Some(map_.next_value()?); } + GeneratedField::TagType => { + if tag_type__.is_some() { + return Err(serde::de::Error::duplicate_field("tagType")); + } + tag_type__ = Some(map_.next_value::()? as i32); + } } } Ok(ListTagsRequest { @@ -322,6 +341,7 @@ impl<'de> serde::Deserialize<'de> for ListTagsRequest { page_token: page_token__.unwrap_or_default(), filter: filter__.unwrap_or_default(), order_by: order_by__.unwrap_or_default(), + tag_type: tag_type__.unwrap_or_default(), }) } } @@ -582,3 +602,89 @@ impl<'de> serde::Deserialize<'de> for Tag { deserializer.deserialize_struct("sift.tags.v2.Tag", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for TagType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TAG_TYPE_UNSPECIFIED", + Self::Annotation => "TAG_TYPE_ANNOTATION", + Self::Asset => "TAG_TYPE_ASSET", + Self::Campaign => "TAG_TYPE_CAMPAIGN", + Self::Report => "TAG_TYPE_REPORT", + Self::ReportTemplate => "TAG_TYPE_REPORT_TEMPLATE", + Self::Run => "TAG_TYPE_RUN", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for TagType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TAG_TYPE_UNSPECIFIED", + "TAG_TYPE_ANNOTATION", + "TAG_TYPE_ASSET", + "TAG_TYPE_CAMPAIGN", + "TAG_TYPE_REPORT", + "TAG_TYPE_REPORT_TEMPLATE", + "TAG_TYPE_RUN", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TagType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TAG_TYPE_UNSPECIFIED" => Ok(TagType::Unspecified), + "TAG_TYPE_ANNOTATION" => Ok(TagType::Annotation), + "TAG_TYPE_ASSET" => Ok(TagType::Asset), + "TAG_TYPE_CAMPAIGN" => Ok(TagType::Campaign), + "TAG_TYPE_REPORT" => Ok(TagType::Report), + "TAG_TYPE_REPORT_TEMPLATE" => Ok(TagType::ReportTemplate), + "TAG_TYPE_RUN" => Ok(TagType::Run), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} diff --git a/rust/crates/sift_rs/src/gen/sift.unit.v2.rs b/rust/crates/sift_rs/src/gen/sift.unit.v2.rs index 48acc5b80..9977b4b58 100644 --- a/rust/crates/sift_rs/src/gen/sift.unit.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.unit.v2.rs @@ -28,6 +28,18 @@ pub struct ListUnitsResponse { #[prost(string, tag="2")] pub next_page_token: ::prost::alloc::string::String, } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateUnitRequest { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateUnitResponse { + #[prost(message, optional, tag="1")] + pub unit: ::core::option::Option, +} include!("sift.unit.v2.tonic.rs"); include!("sift.unit.v2.serde.rs"); // @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift.unit.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.unit.v2.serde.rs index 27747a7ac..313eb4487 100644 --- a/rust/crates/sift_rs/src/gen/sift.unit.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.unit.v2.serde.rs @@ -1,4 +1,186 @@ // @generated +impl serde::Serialize for CreateUnitRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.unit.v2.CreateUnitRequest", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateUnitRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateUnitRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.unit.v2.CreateUnitRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + } + } + Ok(CreateUnitRequest { + name: name__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.unit.v2.CreateUnitRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateUnitResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.unit.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.unit.v2.CreateUnitResponse", len)?; + if let Some(v) = self.unit.as_ref() { + struct_ser.serialize_field("unit", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateUnitResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "unit", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Unit, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "unit" => Ok(GeneratedField::Unit), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateUnitResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.unit.v2.CreateUnitResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut unit__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Unit => { + if unit__.is_some() { + return Err(serde::de::Error::duplicate_field("unit")); + } + unit__ = map_.next_value()?; + } + } + } + Ok(CreateUnitResponse { + unit: unit__, + }) + } + } + deserializer.deserialize_struct("sift.unit.v2.CreateUnitResponse", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for ListUnitsRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift.unit.v2.tonic.rs b/rust/crates/sift_rs/src/gen/sift.unit.v2.tonic.rs index f76f2abda..5282c55a0 100644 --- a/rust/crates/sift_rs/src/gen/sift.unit.v2.tonic.rs +++ b/rust/crates/sift_rs/src/gen/sift.unit.v2.tonic.rs @@ -84,6 +84,31 @@ pub mod unit_service_client { self.inner = self.inner.max_encoding_message_size(limit); self } + pub async fn create_unit( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.unit.v2.UnitService/CreateUnit", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("sift.unit.v2.UnitService", "CreateUnit")); + self.inner.unary(req, path, codec).await + } pub async fn list_units( &mut self, request: impl tonic::IntoRequest, @@ -118,6 +143,13 @@ pub mod unit_service_server { /// Generated trait containing gRPC methods that should be implemented for use with UnitServiceServer. #[async_trait] pub trait UnitService: Send + Sync + 'static { + async fn create_unit( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; async fn list_units( &self, request: tonic::Request, @@ -205,6 +237,52 @@ pub mod unit_service_server { fn call(&mut self, req: http::Request) -> Self::Future { let inner = self.inner.clone(); match req.uri().path() { + "/sift.unit.v2.UnitService/CreateUnit" => { + #[allow(non_camel_case_types)] + struct CreateUnitSvc(pub Arc); + impl< + T: UnitService, + > tonic::server::UnaryService + for CreateUnitSvc { + type Response = super::CreateUnitResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_unit(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = CreateUnitSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/sift.unit.v2.UnitService/ListUnits" => { #[allow(non_camel_case_types)] struct ListUnitsSvc(pub Arc); diff --git a/rust/crates/sift_rs/src/gen/sift.user_groups.v2.rs b/rust/crates/sift_rs/src/gen/sift.user_groups.v2.rs index a29dbeab6..62b9b2690 100644 --- a/rust/crates/sift_rs/src/gen/sift.user_groups.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.user_groups.v2.rs @@ -15,6 +15,8 @@ pub struct UserGroup { pub resources: ::core::option::Option, #[prost(string, repeated, tag="7")] pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(bool, tag="8")] + pub is_external: bool, } /// Nested message and enum types in `UserGroup`. pub mod user_group { diff --git a/rust/crates/sift_rs/src/gen/sift.user_groups.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.user_groups.v2.serde.rs index b0ccdc701..2c506386b 100644 --- a/rust/crates/sift_rs/src/gen/sift.user_groups.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.user_groups.v2.serde.rs @@ -1759,6 +1759,9 @@ impl serde::Serialize for UserGroup { if !self.user_ids.is_empty() { len += 1; } + if self.is_external { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.user_groups.v2.UserGroup", len)?; if !self.user_group_id.is_empty() { struct_ser.serialize_field("userGroupId", &self.user_group_id)?; @@ -1778,6 +1781,9 @@ impl serde::Serialize for UserGroup { if !self.user_ids.is_empty() { struct_ser.serialize_field("userIds", &self.user_ids)?; } + if self.is_external { + struct_ser.serialize_field("isExternal", &self.is_external)?; + } struct_ser.end() } } @@ -1798,6 +1804,8 @@ impl<'de> serde::Deserialize<'de> for UserGroup { "resources", "user_ids", "userIds", + "is_external", + "isExternal", ]; #[allow(clippy::enum_variant_names)] @@ -1808,6 +1816,7 @@ impl<'de> serde::Deserialize<'de> for UserGroup { IsDefault, Resources, UserIds, + IsExternal, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1835,6 +1844,7 @@ impl<'de> serde::Deserialize<'de> for UserGroup { "isDefault" | "is_default" => Ok(GeneratedField::IsDefault), "resources" => Ok(GeneratedField::Resources), "userIds" | "user_ids" => Ok(GeneratedField::UserIds), + "isExternal" | "is_external" => Ok(GeneratedField::IsExternal), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1860,6 +1870,7 @@ impl<'de> serde::Deserialize<'de> for UserGroup { let mut is_default__ = None; let mut resources__ = None; let mut user_ids__ = None; + let mut is_external__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::UserGroupId => { @@ -1898,6 +1909,12 @@ impl<'de> serde::Deserialize<'de> for UserGroup { } user_ids__ = Some(map_.next_value()?); } + GeneratedField::IsExternal => { + if is_external__.is_some() { + return Err(serde::de::Error::duplicate_field("isExternal")); + } + is_external__ = Some(map_.next_value()?); + } } } Ok(UserGroup { @@ -1907,6 +1924,7 @@ impl<'de> serde::Deserialize<'de> for UserGroup { is_default: is_default__.unwrap_or_default(), resources: resources__, user_ids: user_ids__.unwrap_or_default(), + is_external: is_external__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift.users.v2.rs b/rust/crates/sift_rs/src/gen/sift.users.v2.rs index 26406c0b3..edf1bae7f 100644 --- a/rust/crates/sift_rs/src/gen/sift.users.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift.users.v2.rs @@ -48,6 +48,26 @@ pub struct ListActiveUsersResponse { #[prost(string, tag="2")] pub next_page_token: ::prost::alloc::string::String, } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListUsersRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListUsersResponse { + #[prost(message, repeated, tag="1")] + pub users: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} include!("sift.users.v2.tonic.rs"); include!("sift.users.v2.serde.rs"); // @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift.users.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift.users.v2.serde.rs index f1eeb91b5..f120c4661 100644 --- a/rust/crates/sift_rs/src/gen/sift.users.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift.users.v2.serde.rs @@ -456,6 +456,262 @@ impl<'de> serde::Deserialize<'de> for ListActiveUsersResponse { deserializer.deserialize_struct("sift.users.v2.ListActiveUsersResponse", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for ListUsersRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.users.v2.ListUsersRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListUsersRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "order_by", + "orderBy", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrderBy, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListUsersRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.users.v2.ListUsersRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut order_by__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + } + } + Ok(ListUsersRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.users.v2.ListUsersRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListUsersResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.users.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.users.v2.ListUsersResponse", len)?; + if !self.users.is_empty() { + struct_ser.serialize_field("users", &self.users)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListUsersResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "users", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Users, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "users" => Ok(GeneratedField::Users), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListUsersResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.users.v2.ListUsersResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut users__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Users => { + if users__.is_some() { + return Err(serde::de::Error::duplicate_field("users")); + } + users__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListUsersResponse { + users: users__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.users.v2.ListUsersResponse", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for UpdateUserOrganizationActiveRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift.users.v2.tonic.rs b/rust/crates/sift_rs/src/gen/sift.users.v2.tonic.rs index 1b7b54b1f..eccd04ed7 100644 --- a/rust/crates/sift_rs/src/gen/sift.users.v2.tonic.rs +++ b/rust/crates/sift_rs/src/gen/sift.users.v2.tonic.rs @@ -164,6 +164,31 @@ pub mod user_service_client { .insert(GrpcMethod::new("sift.users.v2.UserService", "ListActiveUsers")); self.inner.unary(req, path, codec).await } + pub async fn list_users( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.users.v2.UserService/ListUsers", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("sift.users.v2.UserService", "ListUsers")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -191,6 +216,13 @@ pub mod user_service_server { tonic::Response, tonic::Status, >; + async fn list_users( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } #[derive(Debug)] pub struct UserServiceServer { @@ -416,6 +448,52 @@ pub mod user_service_server { }; Box::pin(fut) } + "/sift.users.v2.UserService/ListUsers" => { + #[allow(non_camel_case_types)] + struct ListUsersSvc(pub Arc); + impl< + T: UserService, + > tonic::server::UnaryService + for ListUsersSvc { + type Response = super::ListUsersResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_users(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ListUsersSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/rust/crates/sift_rs/src/gen/sift.webhooks.v1.rs b/rust/crates/sift_rs/src/gen/sift.webhooks.v1.rs new file mode 100644 index 000000000..3970166ae --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift.webhooks.v1.rs @@ -0,0 +1,332 @@ +// @generated +// This file is @generated by prost-build. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Webhook { + #[prost(string, tag="1")] + pub webhook_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub organization_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub target_url: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub name: ::prost::alloc::string::String, + #[prost(enumeration="WebhookEventType", tag="5")] + pub event_type: i32, + #[prost(string, optional, tag="6")] + pub payload: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, optional, tag="7")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="8")] + pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="9")] + pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="10")] + pub created_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="11")] + pub modified_by_user_id: ::prost::alloc::string::String, + #[prost(message, repeated, tag="12")] + pub http_headers: ::prost::alloc::vec::Vec, + #[prost(bool, tag="13")] + pub is_archived: bool, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WebhookLog { + #[prost(string, tag="1")] + pub webhook_log_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub webhook_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub event_id: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub organization_id: ::prost::alloc::string::String, + #[prost(enumeration="WebhookLogStatus", tag="5")] + pub status: i32, + #[prost(string, optional, tag="6")] + pub payload: ::core::option::Option<::prost::alloc::string::String>, + #[prost(uint32, tag="7")] + pub retry_attempt_number: u32, + #[prost(string, optional, tag="8")] + pub error_reason: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, optional, tag="9")] + pub sent_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="10")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="11")] + pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="12")] + pub created_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="13")] + pub modified_by_user_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WebhookSignatureKey { + #[prost(string, tag="1")] + pub signature_key: ::prost::alloc::string::String, + #[prost(bool, tag="2")] + pub active: bool, + #[prost(message, optional, tag="3")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="4")] + pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="5")] + pub created_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="6")] + pub modified_by_user_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WebhookHttpHeader { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub value: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetWebhookRequest { + #[prost(string, tag="1")] + pub webhook_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetWebhookResponse { + #[prost(message, optional, tag="1")] + pub webhook: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UpdateWebhookRequest { + #[prost(message, optional, tag="1")] + pub webhook: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub update_mask: ::core::option::Option<::pbjson_types::FieldMask>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UpdateWebhookResponse { + #[prost(message, optional, tag="1")] + pub webhook: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateWebhookRequest { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub target_url: ::prost::alloc::string::String, + #[prost(enumeration="WebhookEventType", tag="3")] + pub event_type: i32, + #[prost(string, optional, tag="4")] + pub payload: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, repeated, tag="5")] + pub http_headers: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateWebhookResponse { + #[prost(message, optional, tag="1")] + pub webhook: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListWebhooksRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListWebhooksResponse { + #[prost(message, repeated, tag="1")] + pub webhooks: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TestWebhookRequest { + #[prost(oneof="test_webhook_request::Form", tags="1, 2, 3")] + pub form: ::core::option::Option, +} +/// Nested message and enum types in `TestWebhookRequest`. +pub mod test_webhook_request { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Form { + #[prost(string, tag="1")] + WebhookId(::prost::alloc::string::String), + #[prost(message, tag="2")] + Webhook(super::Webhook), + #[prost(message, tag="3")] + CreateRequest(super::CreateWebhookRequest), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TestWebhookResponse { + #[prost(uint32, tag="1")] + pub http_response_code: u32, + #[prost(bytes="vec", tag="2")] + pub http_response_body: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct CreateWebhookSignatureKeyRequest { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateWebhookSignatureKeyResponse { + #[prost(message, optional, tag="1")] + pub signature_key: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetWebhookSignatureKeyRequest { + #[prost(string, tag="1")] + pub organization_id: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetWebhookSignatureKeyResponse { + #[prost(message, optional, tag="1")] + pub signature_key: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct ToggleWebhookSignatureKeyActivationRequest { + #[prost(bool, tag="1")] + pub enable: bool, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ToggleWebhookSignatureKeyActivationResponse { + #[prost(message, optional, tag="1")] + pub signature_key: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct RotateWebhookSignatureKeyRequest { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RotateWebhookSignatureKeyResponse { + #[prost(message, optional, tag="1")] + pub signature_key: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListWebhookLogsRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListWebhookLogsResponse { + #[prost(message, repeated, tag="1")] + pub logs: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateWebhookLogRequest { + #[prost(string, tag="1")] + pub webhook_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub event_id: ::prost::alloc::string::String, + #[prost(uint32, tag="3")] + pub retry_attempt_number: u32, + #[prost(enumeration="WebhookLogStatus", tag="4")] + pub status: i32, + #[prost(string, optional, tag="5")] + pub payload: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="6")] + pub error_reason: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, optional, tag="7")] + pub sent_date: ::core::option::Option<::pbjson_types::Timestamp>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BatchCreateWebhookLogsRequest { + #[prost(message, repeated, tag="1")] + pub requests: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct BatchCreateWebhookLogsResponse { +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum WebhookEventType { + Unspecified = 0, + RuleViolation = 1, +} +impl WebhookEventType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + WebhookEventType::Unspecified => "WEBHOOK_EVENT_TYPE_UNSPECIFIED", + WebhookEventType::RuleViolation => "WEBHOOK_EVENT_TYPE_RULE_VIOLATION", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "WEBHOOK_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "WEBHOOK_EVENT_TYPE_RULE_VIOLATION" => Some(Self::RuleViolation), + _ => None, + } + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum WebhookLogStatus { + Unspecified = 0, + Sent = 1, + Failed = 2, + Retrying = 3, +} +impl WebhookLogStatus { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + WebhookLogStatus::Unspecified => "WEBHOOK_LOG_STATUS_UNSPECIFIED", + WebhookLogStatus::Sent => "WEBHOOK_LOG_STATUS_SENT", + WebhookLogStatus::Failed => "WEBHOOK_LOG_STATUS_FAILED", + WebhookLogStatus::Retrying => "WEBHOOK_LOG_STATUS_RETRYING", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "WEBHOOK_LOG_STATUS_UNSPECIFIED" => Some(Self::Unspecified), + "WEBHOOK_LOG_STATUS_SENT" => Some(Self::Sent), + "WEBHOOK_LOG_STATUS_FAILED" => Some(Self::Failed), + "WEBHOOK_LOG_STATUS_RETRYING" => Some(Self::Retrying), + _ => None, + } + } +} +include!("sift.webhooks.v1.tonic.rs"); +include!("sift.webhooks.v1.serde.rs"); +// @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift.webhooks.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift.webhooks.v1.serde.rs new file mode 100644 index 000000000..28dd3a34d --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift.webhooks.v1.serde.rs @@ -0,0 +1,3501 @@ +// @generated +impl serde::Serialize for BatchCreateWebhookLogsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.requests.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.BatchCreateWebhookLogsRequest", len)?; + if !self.requests.is_empty() { + struct_ser.serialize_field("requests", &self.requests)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchCreateWebhookLogsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "requests", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Requests, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "requests" => Ok(GeneratedField::Requests), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchCreateWebhookLogsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.BatchCreateWebhookLogsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut requests__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Requests => { + if requests__.is_some() { + return Err(serde::de::Error::duplicate_field("requests")); + } + requests__ = Some(map_.next_value()?); + } + } + } + Ok(BatchCreateWebhookLogsRequest { + requests: requests__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.BatchCreateWebhookLogsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BatchCreateWebhookLogsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.webhooks.v1.BatchCreateWebhookLogsResponse", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BatchCreateWebhookLogsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BatchCreateWebhookLogsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.BatchCreateWebhookLogsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(BatchCreateWebhookLogsResponse { + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.BatchCreateWebhookLogsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateWebhookLogRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.webhook_id.is_empty() { + len += 1; + } + if !self.event_id.is_empty() { + len += 1; + } + if self.retry_attempt_number != 0 { + len += 1; + } + if self.status != 0 { + len += 1; + } + if self.payload.is_some() { + len += 1; + } + if self.error_reason.is_some() { + len += 1; + } + if self.sent_date.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.CreateWebhookLogRequest", len)?; + if !self.webhook_id.is_empty() { + struct_ser.serialize_field("webhookId", &self.webhook_id)?; + } + if !self.event_id.is_empty() { + struct_ser.serialize_field("eventId", &self.event_id)?; + } + if self.retry_attempt_number != 0 { + struct_ser.serialize_field("retryAttemptNumber", &self.retry_attempt_number)?; + } + if self.status != 0 { + let v = WebhookLogStatus::try_from(self.status) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.status)))?; + struct_ser.serialize_field("status", &v)?; + } + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + if let Some(v) = self.error_reason.as_ref() { + struct_ser.serialize_field("errorReason", v)?; + } + if let Some(v) = self.sent_date.as_ref() { + struct_ser.serialize_field("sentDate", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateWebhookLogRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook_id", + "webhookId", + "event_id", + "eventId", + "retry_attempt_number", + "retryAttemptNumber", + "status", + "payload", + "error_reason", + "errorReason", + "sent_date", + "sentDate", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WebhookId, + EventId, + RetryAttemptNumber, + Status, + Payload, + ErrorReason, + SentDate, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhookId" | "webhook_id" => Ok(GeneratedField::WebhookId), + "eventId" | "event_id" => Ok(GeneratedField::EventId), + "retryAttemptNumber" | "retry_attempt_number" => Ok(GeneratedField::RetryAttemptNumber), + "status" => Ok(GeneratedField::Status), + "payload" => Ok(GeneratedField::Payload), + "errorReason" | "error_reason" => Ok(GeneratedField::ErrorReason), + "sentDate" | "sent_date" => Ok(GeneratedField::SentDate), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateWebhookLogRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.CreateWebhookLogRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook_id__ = None; + let mut event_id__ = None; + let mut retry_attempt_number__ = None; + let mut status__ = None; + let mut payload__ = None; + let mut error_reason__ = None; + let mut sent_date__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::WebhookId => { + if webhook_id__.is_some() { + return Err(serde::de::Error::duplicate_field("webhookId")); + } + webhook_id__ = Some(map_.next_value()?); + } + GeneratedField::EventId => { + if event_id__.is_some() { + return Err(serde::de::Error::duplicate_field("eventId")); + } + event_id__ = Some(map_.next_value()?); + } + GeneratedField::RetryAttemptNumber => { + if retry_attempt_number__.is_some() { + return Err(serde::de::Error::duplicate_field("retryAttemptNumber")); + } + retry_attempt_number__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Status => { + if status__.is_some() { + return Err(serde::de::Error::duplicate_field("status")); + } + status__ = Some(map_.next_value::()? as i32); + } + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map_.next_value()?; + } + GeneratedField::ErrorReason => { + if error_reason__.is_some() { + return Err(serde::de::Error::duplicate_field("errorReason")); + } + error_reason__ = map_.next_value()?; + } + GeneratedField::SentDate => { + if sent_date__.is_some() { + return Err(serde::de::Error::duplicate_field("sentDate")); + } + sent_date__ = map_.next_value()?; + } + } + } + Ok(CreateWebhookLogRequest { + webhook_id: webhook_id__.unwrap_or_default(), + event_id: event_id__.unwrap_or_default(), + retry_attempt_number: retry_attempt_number__.unwrap_or_default(), + status: status__.unwrap_or_default(), + payload: payload__, + error_reason: error_reason__, + sent_date: sent_date__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.CreateWebhookLogRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateWebhookRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + if !self.target_url.is_empty() { + len += 1; + } + if self.event_type != 0 { + len += 1; + } + if self.payload.is_some() { + len += 1; + } + if !self.http_headers.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.CreateWebhookRequest", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.target_url.is_empty() { + struct_ser.serialize_field("targetUrl", &self.target_url)?; + } + if self.event_type != 0 { + let v = WebhookEventType::try_from(self.event_type) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.event_type)))?; + struct_ser.serialize_field("eventType", &v)?; + } + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + if !self.http_headers.is_empty() { + struct_ser.serialize_field("httpHeaders", &self.http_headers)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateWebhookRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + "target_url", + "targetUrl", + "event_type", + "eventType", + "payload", + "http_headers", + "httpHeaders", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + TargetUrl, + EventType, + Payload, + HttpHeaders, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + "targetUrl" | "target_url" => Ok(GeneratedField::TargetUrl), + "eventType" | "event_type" => Ok(GeneratedField::EventType), + "payload" => Ok(GeneratedField::Payload), + "httpHeaders" | "http_headers" => Ok(GeneratedField::HttpHeaders), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateWebhookRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.CreateWebhookRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + let mut target_url__ = None; + let mut event_type__ = None; + let mut payload__ = None; + let mut http_headers__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::TargetUrl => { + if target_url__.is_some() { + return Err(serde::de::Error::duplicate_field("targetUrl")); + } + target_url__ = Some(map_.next_value()?); + } + GeneratedField::EventType => { + if event_type__.is_some() { + return Err(serde::de::Error::duplicate_field("eventType")); + } + event_type__ = Some(map_.next_value::()? as i32); + } + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map_.next_value()?; + } + GeneratedField::HttpHeaders => { + if http_headers__.is_some() { + return Err(serde::de::Error::duplicate_field("httpHeaders")); + } + http_headers__ = Some(map_.next_value()?); + } + } + } + Ok(CreateWebhookRequest { + name: name__.unwrap_or_default(), + target_url: target_url__.unwrap_or_default(), + event_type: event_type__.unwrap_or_default(), + payload: payload__, + http_headers: http_headers__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.CreateWebhookRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateWebhookResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.webhook.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.CreateWebhookResponse", len)?; + if let Some(v) = self.webhook.as_ref() { + struct_ser.serialize_field("webhook", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateWebhookResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Webhook, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhook" => Ok(GeneratedField::Webhook), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateWebhookResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.CreateWebhookResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Webhook => { + if webhook__.is_some() { + return Err(serde::de::Error::duplicate_field("webhook")); + } + webhook__ = map_.next_value()?; + } + } + } + Ok(CreateWebhookResponse { + webhook: webhook__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.CreateWebhookResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateWebhookSignatureKeyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.webhooks.v1.CreateWebhookSignatureKeyRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateWebhookSignatureKeyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateWebhookSignatureKeyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.CreateWebhookSignatureKeyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(CreateWebhookSignatureKeyRequest { + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.CreateWebhookSignatureKeyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateWebhookSignatureKeyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.signature_key.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.CreateWebhookSignatureKeyResponse", len)?; + if let Some(v) = self.signature_key.as_ref() { + struct_ser.serialize_field("signatureKey", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateWebhookSignatureKeyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "signature_key", + "signatureKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + SignatureKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "signatureKey" | "signature_key" => Ok(GeneratedField::SignatureKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateWebhookSignatureKeyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.CreateWebhookSignatureKeyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut signature_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::SignatureKey => { + if signature_key__.is_some() { + return Err(serde::de::Error::duplicate_field("signatureKey")); + } + signature_key__ = map_.next_value()?; + } + } + } + Ok(CreateWebhookSignatureKeyResponse { + signature_key: signature_key__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.CreateWebhookSignatureKeyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetWebhookRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.webhook_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.GetWebhookRequest", len)?; + if !self.webhook_id.is_empty() { + struct_ser.serialize_field("webhookId", &self.webhook_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetWebhookRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook_id", + "webhookId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WebhookId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhookId" | "webhook_id" => Ok(GeneratedField::WebhookId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetWebhookRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.GetWebhookRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::WebhookId => { + if webhook_id__.is_some() { + return Err(serde::de::Error::duplicate_field("webhookId")); + } + webhook_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetWebhookRequest { + webhook_id: webhook_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.GetWebhookRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetWebhookResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.webhook.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.GetWebhookResponse", len)?; + if let Some(v) = self.webhook.as_ref() { + struct_ser.serialize_field("webhook", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetWebhookResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Webhook, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhook" => Ok(GeneratedField::Webhook), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetWebhookResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.GetWebhookResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Webhook => { + if webhook__.is_some() { + return Err(serde::de::Error::duplicate_field("webhook")); + } + webhook__ = map_.next_value()?; + } + } + } + Ok(GetWebhookResponse { + webhook: webhook__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.GetWebhookResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetWebhookSignatureKeyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.organization_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.GetWebhookSignatureKeyRequest", len)?; + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetWebhookSignatureKeyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "organization_id", + "organizationId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + OrganizationId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetWebhookSignatureKeyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.GetWebhookSignatureKeyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut organization_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetWebhookSignatureKeyRequest { + organization_id: organization_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.GetWebhookSignatureKeyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetWebhookSignatureKeyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.signature_key.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.GetWebhookSignatureKeyResponse", len)?; + if let Some(v) = self.signature_key.as_ref() { + struct_ser.serialize_field("signatureKey", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetWebhookSignatureKeyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "signature_key", + "signatureKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + SignatureKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "signatureKey" | "signature_key" => Ok(GeneratedField::SignatureKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetWebhookSignatureKeyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.GetWebhookSignatureKeyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut signature_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::SignatureKey => { + if signature_key__.is_some() { + return Err(serde::de::Error::duplicate_field("signatureKey")); + } + signature_key__ = map_.next_value()?; + } + } + } + Ok(GetWebhookSignatureKeyResponse { + signature_key: signature_key__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.GetWebhookSignatureKeyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListWebhookLogsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.ListWebhookLogsRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListWebhookLogsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "order_by", + "orderBy", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrderBy, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListWebhookLogsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.ListWebhookLogsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut order_by__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + } + } + Ok(ListWebhookLogsRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.ListWebhookLogsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListWebhookLogsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.logs.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.ListWebhookLogsResponse", len)?; + if !self.logs.is_empty() { + struct_ser.serialize_field("logs", &self.logs)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListWebhookLogsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "logs", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Logs, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "logs" => Ok(GeneratedField::Logs), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListWebhookLogsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.ListWebhookLogsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut logs__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Logs => { + if logs__.is_some() { + return Err(serde::de::Error::duplicate_field("logs")); + } + logs__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListWebhookLogsResponse { + logs: logs__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.ListWebhookLogsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListWebhooksRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.ListWebhooksRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListWebhooksRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "order_by", + "orderBy", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrderBy, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListWebhooksRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.ListWebhooksRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut order_by__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + } + } + Ok(ListWebhooksRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.ListWebhooksRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListWebhooksResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.webhooks.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.ListWebhooksResponse", len)?; + if !self.webhooks.is_empty() { + struct_ser.serialize_field("webhooks", &self.webhooks)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListWebhooksResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhooks", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Webhooks, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhooks" => Ok(GeneratedField::Webhooks), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListWebhooksResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.ListWebhooksResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhooks__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Webhooks => { + if webhooks__.is_some() { + return Err(serde::de::Error::duplicate_field("webhooks")); + } + webhooks__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListWebhooksResponse { + webhooks: webhooks__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.ListWebhooksResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for RotateWebhookSignatureKeyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.webhooks.v1.RotateWebhookSignatureKeyRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for RotateWebhookSignatureKeyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = RotateWebhookSignatureKeyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.RotateWebhookSignatureKeyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(RotateWebhookSignatureKeyRequest { + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.RotateWebhookSignatureKeyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for RotateWebhookSignatureKeyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.signature_key.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.RotateWebhookSignatureKeyResponse", len)?; + if let Some(v) = self.signature_key.as_ref() { + struct_ser.serialize_field("signatureKey", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for RotateWebhookSignatureKeyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "signature_key", + "signatureKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + SignatureKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "signatureKey" | "signature_key" => Ok(GeneratedField::SignatureKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = RotateWebhookSignatureKeyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.RotateWebhookSignatureKeyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut signature_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::SignatureKey => { + if signature_key__.is_some() { + return Err(serde::de::Error::duplicate_field("signatureKey")); + } + signature_key__ = map_.next_value()?; + } + } + } + Ok(RotateWebhookSignatureKeyResponse { + signature_key: signature_key__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.RotateWebhookSignatureKeyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for TestWebhookRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.form.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.TestWebhookRequest", len)?; + if let Some(v) = self.form.as_ref() { + match v { + test_webhook_request::Form::WebhookId(v) => { + struct_ser.serialize_field("webhookId", v)?; + } + test_webhook_request::Form::Webhook(v) => { + struct_ser.serialize_field("webhook", v)?; + } + test_webhook_request::Form::CreateRequest(v) => { + struct_ser.serialize_field("createRequest", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TestWebhookRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook_id", + "webhookId", + "webhook", + "create_request", + "createRequest", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WebhookId, + Webhook, + CreateRequest, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhookId" | "webhook_id" => Ok(GeneratedField::WebhookId), + "webhook" => Ok(GeneratedField::Webhook), + "createRequest" | "create_request" => Ok(GeneratedField::CreateRequest), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TestWebhookRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.TestWebhookRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut form__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::WebhookId => { + if form__.is_some() { + return Err(serde::de::Error::duplicate_field("webhookId")); + } + form__ = map_.next_value::<::std::option::Option<_>>()?.map(test_webhook_request::Form::WebhookId); + } + GeneratedField::Webhook => { + if form__.is_some() { + return Err(serde::de::Error::duplicate_field("webhook")); + } + form__ = map_.next_value::<::std::option::Option<_>>()?.map(test_webhook_request::Form::Webhook) +; + } + GeneratedField::CreateRequest => { + if form__.is_some() { + return Err(serde::de::Error::duplicate_field("createRequest")); + } + form__ = map_.next_value::<::std::option::Option<_>>()?.map(test_webhook_request::Form::CreateRequest) +; + } + } + } + Ok(TestWebhookRequest { + form: form__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.TestWebhookRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for TestWebhookResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.http_response_code != 0 { + len += 1; + } + if !self.http_response_body.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.TestWebhookResponse", len)?; + if self.http_response_code != 0 { + struct_ser.serialize_field("httpResponseCode", &self.http_response_code)?; + } + if !self.http_response_body.is_empty() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("httpResponseBody", pbjson::private::base64::encode(&self.http_response_body).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TestWebhookResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "http_response_code", + "httpResponseCode", + "http_response_body", + "httpResponseBody", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + HttpResponseCode, + HttpResponseBody, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "httpResponseCode" | "http_response_code" => Ok(GeneratedField::HttpResponseCode), + "httpResponseBody" | "http_response_body" => Ok(GeneratedField::HttpResponseBody), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TestWebhookResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.TestWebhookResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut http_response_code__ = None; + let mut http_response_body__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::HttpResponseCode => { + if http_response_code__.is_some() { + return Err(serde::de::Error::duplicate_field("httpResponseCode")); + } + http_response_code__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::HttpResponseBody => { + if http_response_body__.is_some() { + return Err(serde::de::Error::duplicate_field("httpResponseBody")); + } + http_response_body__ = + Some(map_.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(TestWebhookResponse { + http_response_code: http_response_code__.unwrap_or_default(), + http_response_body: http_response_body__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.TestWebhookResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ToggleWebhookSignatureKeyActivationRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.enable { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest", len)?; + if self.enable { + struct_ser.serialize_field("enable", &self.enable)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ToggleWebhookSignatureKeyActivationRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "enable", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Enable, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "enable" => Ok(GeneratedField::Enable), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ToggleWebhookSignatureKeyActivationRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut enable__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Enable => { + if enable__.is_some() { + return Err(serde::de::Error::duplicate_field("enable")); + } + enable__ = Some(map_.next_value()?); + } + } + } + Ok(ToggleWebhookSignatureKeyActivationRequest { + enable: enable__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ToggleWebhookSignatureKeyActivationResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.signature_key.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse", len)?; + if let Some(v) = self.signature_key.as_ref() { + struct_ser.serialize_field("signatureKey", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ToggleWebhookSignatureKeyActivationResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "signature_key", + "signatureKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + SignatureKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "signatureKey" | "signature_key" => Ok(GeneratedField::SignatureKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ToggleWebhookSignatureKeyActivationResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut signature_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::SignatureKey => { + if signature_key__.is_some() { + return Err(serde::de::Error::duplicate_field("signatureKey")); + } + signature_key__ = map_.next_value()?; + } + } + } + Ok(ToggleWebhookSignatureKeyActivationResponse { + signature_key: signature_key__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UpdateWebhookRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.webhook.is_some() { + len += 1; + } + if self.update_mask.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.UpdateWebhookRequest", len)?; + if let Some(v) = self.webhook.as_ref() { + struct_ser.serialize_field("webhook", v)?; + } + if let Some(v) = self.update_mask.as_ref() { + struct_ser.serialize_field("updateMask", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UpdateWebhookRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook", + "update_mask", + "updateMask", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Webhook, + UpdateMask, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhook" => Ok(GeneratedField::Webhook), + "updateMask" | "update_mask" => Ok(GeneratedField::UpdateMask), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UpdateWebhookRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.UpdateWebhookRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook__ = None; + let mut update_mask__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Webhook => { + if webhook__.is_some() { + return Err(serde::de::Error::duplicate_field("webhook")); + } + webhook__ = map_.next_value()?; + } + GeneratedField::UpdateMask => { + if update_mask__.is_some() { + return Err(serde::de::Error::duplicate_field("updateMask")); + } + update_mask__ = map_.next_value()?; + } + } + } + Ok(UpdateWebhookRequest { + webhook: webhook__, + update_mask: update_mask__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.UpdateWebhookRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UpdateWebhookResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.webhook.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.UpdateWebhookResponse", len)?; + if let Some(v) = self.webhook.as_ref() { + struct_ser.serialize_field("webhook", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UpdateWebhookResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Webhook, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhook" => Ok(GeneratedField::Webhook), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UpdateWebhookResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.UpdateWebhookResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Webhook => { + if webhook__.is_some() { + return Err(serde::de::Error::duplicate_field("webhook")); + } + webhook__ = map_.next_value()?; + } + } + } + Ok(UpdateWebhookResponse { + webhook: webhook__, + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.UpdateWebhookResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Webhook { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.webhook_id.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + if !self.target_url.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if self.event_type != 0 { + len += 1; + } + if self.payload.is_some() { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if self.archived_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + if !self.http_headers.is_empty() { + len += 1; + } + if self.is_archived { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.Webhook", len)?; + if !self.webhook_id.is_empty() { + struct_ser.serialize_field("webhookId", &self.webhook_id)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + if !self.target_url.is_empty() { + struct_ser.serialize_field("targetUrl", &self.target_url)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if self.event_type != 0 { + let v = WebhookEventType::try_from(self.event_type) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.event_type)))?; + struct_ser.serialize_field("eventType", &v)?; + } + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if let Some(v) = self.archived_date.as_ref() { + struct_ser.serialize_field("archivedDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + if !self.http_headers.is_empty() { + struct_ser.serialize_field("httpHeaders", &self.http_headers)?; + } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Webhook { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook_id", + "webhookId", + "organization_id", + "organizationId", + "target_url", + "targetUrl", + "name", + "event_type", + "eventType", + "payload", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "archived_date", + "archivedDate", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + "http_headers", + "httpHeaders", + "is_archived", + "isArchived", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WebhookId, + OrganizationId, + TargetUrl, + Name, + EventType, + Payload, + CreatedDate, + ModifiedDate, + ArchivedDate, + CreatedByUserId, + ModifiedByUserId, + HttpHeaders, + IsArchived, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhookId" | "webhook_id" => Ok(GeneratedField::WebhookId), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "targetUrl" | "target_url" => Ok(GeneratedField::TargetUrl), + "name" => Ok(GeneratedField::Name), + "eventType" | "event_type" => Ok(GeneratedField::EventType), + "payload" => Ok(GeneratedField::Payload), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + "httpHeaders" | "http_headers" => Ok(GeneratedField::HttpHeaders), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Webhook; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.Webhook") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook_id__ = None; + let mut organization_id__ = None; + let mut target_url__ = None; + let mut name__ = None; + let mut event_type__ = None; + let mut payload__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut archived_date__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + let mut http_headers__ = None; + let mut is_archived__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::WebhookId => { + if webhook_id__.is_some() { + return Err(serde::de::Error::duplicate_field("webhookId")); + } + webhook_id__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + GeneratedField::TargetUrl => { + if target_url__.is_some() { + return Err(serde::de::Error::duplicate_field("targetUrl")); + } + target_url__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::EventType => { + if event_type__.is_some() { + return Err(serde::de::Error::duplicate_field("eventType")); + } + event_type__ = Some(map_.next_value::()? as i32); + } + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map_.next_value()?; + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::ArchivedDate => { + if archived_date__.is_some() { + return Err(serde::de::Error::duplicate_field("archivedDate")); + } + archived_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::HttpHeaders => { + if http_headers__.is_some() { + return Err(serde::de::Error::duplicate_field("httpHeaders")); + } + http_headers__ = Some(map_.next_value()?); + } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } + } + } + Ok(Webhook { + webhook_id: webhook_id__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + target_url: target_url__.unwrap_or_default(), + name: name__.unwrap_or_default(), + event_type: event_type__.unwrap_or_default(), + payload: payload__, + created_date: created_date__, + modified_date: modified_date__, + archived_date: archived_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + http_headers: http_headers__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.Webhook", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WebhookEventType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "WEBHOOK_EVENT_TYPE_UNSPECIFIED", + Self::RuleViolation => "WEBHOOK_EVENT_TYPE_RULE_VIOLATION", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for WebhookEventType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "WEBHOOK_EVENT_TYPE_UNSPECIFIED", + "WEBHOOK_EVENT_TYPE_RULE_VIOLATION", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WebhookEventType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "WEBHOOK_EVENT_TYPE_UNSPECIFIED" => Ok(WebhookEventType::Unspecified), + "WEBHOOK_EVENT_TYPE_RULE_VIOLATION" => Ok(WebhookEventType::RuleViolation), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for WebhookHttpHeader { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + if !self.value.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.WebhookHttpHeader", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.value.is_empty() { + struct_ser.serialize_field("value", &self.value)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WebhookHttpHeader { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + "value", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + Value, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + "value" => Ok(GeneratedField::Value), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WebhookHttpHeader; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.WebhookHttpHeader") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + let mut value__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::Value => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("value")); + } + value__ = Some(map_.next_value()?); + } + } + } + Ok(WebhookHttpHeader { + name: name__.unwrap_or_default(), + value: value__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.WebhookHttpHeader", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WebhookLog { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.webhook_log_id.is_empty() { + len += 1; + } + if !self.webhook_id.is_empty() { + len += 1; + } + if !self.event_id.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + if self.status != 0 { + len += 1; + } + if self.payload.is_some() { + len += 1; + } + if self.retry_attempt_number != 0 { + len += 1; + } + if self.error_reason.is_some() { + len += 1; + } + if self.sent_date.is_some() { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.WebhookLog", len)?; + if !self.webhook_log_id.is_empty() { + struct_ser.serialize_field("webhookLogId", &self.webhook_log_id)?; + } + if !self.webhook_id.is_empty() { + struct_ser.serialize_field("webhookId", &self.webhook_id)?; + } + if !self.event_id.is_empty() { + struct_ser.serialize_field("eventId", &self.event_id)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + if self.status != 0 { + let v = WebhookLogStatus::try_from(self.status) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.status)))?; + struct_ser.serialize_field("status", &v)?; + } + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + if self.retry_attempt_number != 0 { + struct_ser.serialize_field("retryAttemptNumber", &self.retry_attempt_number)?; + } + if let Some(v) = self.error_reason.as_ref() { + struct_ser.serialize_field("errorReason", v)?; + } + if let Some(v) = self.sent_date.as_ref() { + struct_ser.serialize_field("sentDate", v)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WebhookLog { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "webhook_log_id", + "webhookLogId", + "webhook_id", + "webhookId", + "event_id", + "eventId", + "organization_id", + "organizationId", + "status", + "payload", + "retry_attempt_number", + "retryAttemptNumber", + "error_reason", + "errorReason", + "sent_date", + "sentDate", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WebhookLogId, + WebhookId, + EventId, + OrganizationId, + Status, + Payload, + RetryAttemptNumber, + ErrorReason, + SentDate, + CreatedDate, + ModifiedDate, + CreatedByUserId, + ModifiedByUserId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "webhookLogId" | "webhook_log_id" => Ok(GeneratedField::WebhookLogId), + "webhookId" | "webhook_id" => Ok(GeneratedField::WebhookId), + "eventId" | "event_id" => Ok(GeneratedField::EventId), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "status" => Ok(GeneratedField::Status), + "payload" => Ok(GeneratedField::Payload), + "retryAttemptNumber" | "retry_attempt_number" => Ok(GeneratedField::RetryAttemptNumber), + "errorReason" | "error_reason" => Ok(GeneratedField::ErrorReason), + "sentDate" | "sent_date" => Ok(GeneratedField::SentDate), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WebhookLog; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.WebhookLog") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut webhook_log_id__ = None; + let mut webhook_id__ = None; + let mut event_id__ = None; + let mut organization_id__ = None; + let mut status__ = None; + let mut payload__ = None; + let mut retry_attempt_number__ = None; + let mut error_reason__ = None; + let mut sent_date__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::WebhookLogId => { + if webhook_log_id__.is_some() { + return Err(serde::de::Error::duplicate_field("webhookLogId")); + } + webhook_log_id__ = Some(map_.next_value()?); + } + GeneratedField::WebhookId => { + if webhook_id__.is_some() { + return Err(serde::de::Error::duplicate_field("webhookId")); + } + webhook_id__ = Some(map_.next_value()?); + } + GeneratedField::EventId => { + if event_id__.is_some() { + return Err(serde::de::Error::duplicate_field("eventId")); + } + event_id__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + GeneratedField::Status => { + if status__.is_some() { + return Err(serde::de::Error::duplicate_field("status")); + } + status__ = Some(map_.next_value::()? as i32); + } + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map_.next_value()?; + } + GeneratedField::RetryAttemptNumber => { + if retry_attempt_number__.is_some() { + return Err(serde::de::Error::duplicate_field("retryAttemptNumber")); + } + retry_attempt_number__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::ErrorReason => { + if error_reason__.is_some() { + return Err(serde::de::Error::duplicate_field("errorReason")); + } + error_reason__ = map_.next_value()?; + } + GeneratedField::SentDate => { + if sent_date__.is_some() { + return Err(serde::de::Error::duplicate_field("sentDate")); + } + sent_date__ = map_.next_value()?; + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + } + } + Ok(WebhookLog { + webhook_log_id: webhook_log_id__.unwrap_or_default(), + webhook_id: webhook_id__.unwrap_or_default(), + event_id: event_id__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + status: status__.unwrap_or_default(), + payload: payload__, + retry_attempt_number: retry_attempt_number__.unwrap_or_default(), + error_reason: error_reason__, + sent_date: sent_date__, + created_date: created_date__, + modified_date: modified_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.WebhookLog", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WebhookLogStatus { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "WEBHOOK_LOG_STATUS_UNSPECIFIED", + Self::Sent => "WEBHOOK_LOG_STATUS_SENT", + Self::Failed => "WEBHOOK_LOG_STATUS_FAILED", + Self::Retrying => "WEBHOOK_LOG_STATUS_RETRYING", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for WebhookLogStatus { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "WEBHOOK_LOG_STATUS_UNSPECIFIED", + "WEBHOOK_LOG_STATUS_SENT", + "WEBHOOK_LOG_STATUS_FAILED", + "WEBHOOK_LOG_STATUS_RETRYING", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WebhookLogStatus; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "WEBHOOK_LOG_STATUS_UNSPECIFIED" => Ok(WebhookLogStatus::Unspecified), + "WEBHOOK_LOG_STATUS_SENT" => Ok(WebhookLogStatus::Sent), + "WEBHOOK_LOG_STATUS_FAILED" => Ok(WebhookLogStatus::Failed), + "WEBHOOK_LOG_STATUS_RETRYING" => Ok(WebhookLogStatus::Retrying), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for WebhookSignatureKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.signature_key.is_empty() { + len += 1; + } + if self.active { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.webhooks.v1.WebhookSignatureKey", len)?; + if !self.signature_key.is_empty() { + struct_ser.serialize_field("signatureKey", &self.signature_key)?; + } + if self.active { + struct_ser.serialize_field("active", &self.active)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WebhookSignatureKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "signature_key", + "signatureKey", + "active", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + SignatureKey, + Active, + CreatedDate, + ModifiedDate, + CreatedByUserId, + ModifiedByUserId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "signatureKey" | "signature_key" => Ok(GeneratedField::SignatureKey), + "active" => Ok(GeneratedField::Active), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WebhookSignatureKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.webhooks.v1.WebhookSignatureKey") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut signature_key__ = None; + let mut active__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::SignatureKey => { + if signature_key__.is_some() { + return Err(serde::de::Error::duplicate_field("signatureKey")); + } + signature_key__ = Some(map_.next_value()?); + } + GeneratedField::Active => { + if active__.is_some() { + return Err(serde::de::Error::duplicate_field("active")); + } + active__ = Some(map_.next_value()?); + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + } + } + Ok(WebhookSignatureKey { + signature_key: signature_key__.unwrap_or_default(), + active: active__.unwrap_or_default(), + created_date: created_date__, + modified_date: modified_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.webhooks.v1.WebhookSignatureKey", FIELDS, GeneratedVisitor) + } +} diff --git a/rust/crates/sift_rs/src/gen/sift.webhooks.v1.tonic.rs b/rust/crates/sift_rs/src/gen/sift.webhooks.v1.tonic.rs new file mode 100644 index 000000000..dc9ef8315 --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift.webhooks.v1.tonic.rs @@ -0,0 +1,1145 @@ +// @generated +/// Generated client implementations. +pub mod webhook_service_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + #[derive(Debug, Clone)] + pub struct WebhookServiceClient { + inner: tonic::client::Grpc, + } + impl WebhookServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl WebhookServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> WebhookServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + WebhookServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn get_webhook( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/GetWebhook", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.webhooks.v1.WebhookService", "GetWebhook"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn create_webhook( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/CreateWebhook", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.webhooks.v1.WebhookService", "CreateWebhook"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn update_webhook( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/UpdateWebhook", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.webhooks.v1.WebhookService", "UpdateWebhook"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_webhooks( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/ListWebhooks", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.webhooks.v1.WebhookService", "ListWebhooks"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn test_webhook( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/TestWebhook", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.webhooks.v1.WebhookService", "TestWebhook"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn create_webhook_signature_key( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.webhooks.v1.WebhookService", + "CreateWebhookSignatureKey", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_webhook_signature_key( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.webhooks.v1.WebhookService", + "GetWebhookSignatureKey", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn toggle_webhook_signature_key_activation( + &mut self, + request: impl tonic::IntoRequest< + super::ToggleWebhookSignatureKeyActivationRequest, + >, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.webhooks.v1.WebhookService", + "ToggleWebhookSignatureKeyActivation", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn rotate_webhook_signature_key( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.webhooks.v1.WebhookService", + "RotateWebhookSignatureKey", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn batch_create_webhook_logs( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.webhooks.v1.WebhookService", + "BatchCreateWebhookLogs", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_webhook_logs( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.webhooks.v1.WebhookService/ListWebhookLogs", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.webhooks.v1.WebhookService", "ListWebhookLogs"), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod webhook_service_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with WebhookServiceServer. + #[async_trait] + pub trait WebhookService: Send + Sync + 'static { + async fn get_webhook( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn create_webhook( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn update_webhook( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_webhooks( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn test_webhook( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn create_webhook_signature_key( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_webhook_signature_key( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn toggle_webhook_signature_key_activation( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn rotate_webhook_signature_key( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn batch_create_webhook_logs( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_webhook_logs( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + #[derive(Debug)] + pub struct WebhookServiceServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl WebhookServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for WebhookServiceServer + where + T: WebhookService, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/sift.webhooks.v1.WebhookService/GetWebhook" => { + #[allow(non_camel_case_types)] + struct GetWebhookSvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for GetWebhookSvc { + type Response = super::GetWebhookResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_webhook(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetWebhookSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/CreateWebhook" => { + #[allow(non_camel_case_types)] + struct CreateWebhookSvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for CreateWebhookSvc { + type Response = super::CreateWebhookResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_webhook(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = CreateWebhookSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/UpdateWebhook" => { + #[allow(non_camel_case_types)] + struct UpdateWebhookSvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for UpdateWebhookSvc { + type Response = super::UpdateWebhookResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::update_webhook(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateWebhookSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/ListWebhooks" => { + #[allow(non_camel_case_types)] + struct ListWebhooksSvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for ListWebhooksSvc { + type Response = super::ListWebhooksResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_webhooks(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ListWebhooksSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/TestWebhook" => { + #[allow(non_camel_case_types)] + struct TestWebhookSvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for TestWebhookSvc { + type Response = super::TestWebhookResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::test_webhook(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = TestWebhookSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/CreateWebhookSignatureKey" => { + #[allow(non_camel_case_types)] + struct CreateWebhookSignatureKeySvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService< + super::CreateWebhookSignatureKeyRequest, + > for CreateWebhookSignatureKeySvc { + type Response = super::CreateWebhookSignatureKeyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::CreateWebhookSignatureKeyRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_webhook_signature_key( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = CreateWebhookSignatureKeySvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/GetWebhookSignatureKey" => { + #[allow(non_camel_case_types)] + struct GetWebhookSignatureKeySvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for GetWebhookSignatureKeySvc { + type Response = super::GetWebhookSignatureKeyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_webhook_signature_key( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetWebhookSignatureKeySvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/ToggleWebhookSignatureKeyActivation" => { + #[allow(non_camel_case_types)] + struct ToggleWebhookSignatureKeyActivationSvc( + pub Arc, + ); + impl< + T: WebhookService, + > tonic::server::UnaryService< + super::ToggleWebhookSignatureKeyActivationRequest, + > for ToggleWebhookSignatureKeyActivationSvc { + type Response = super::ToggleWebhookSignatureKeyActivationResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::ToggleWebhookSignatureKeyActivationRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::toggle_webhook_signature_key_activation( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ToggleWebhookSignatureKeyActivationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/RotateWebhookSignatureKey" => { + #[allow(non_camel_case_types)] + struct RotateWebhookSignatureKeySvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService< + super::RotateWebhookSignatureKeyRequest, + > for RotateWebhookSignatureKeySvc { + type Response = super::RotateWebhookSignatureKeyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::RotateWebhookSignatureKeyRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::rotate_webhook_signature_key( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = RotateWebhookSignatureKeySvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/BatchCreateWebhookLogs" => { + #[allow(non_camel_case_types)] + struct BatchCreateWebhookLogsSvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for BatchCreateWebhookLogsSvc { + type Response = super::BatchCreateWebhookLogsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::batch_create_webhook_logs( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = BatchCreateWebhookLogsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.webhooks.v1.WebhookService/ListWebhookLogs" => { + #[allow(non_camel_case_types)] + struct ListWebhookLogsSvc(pub Arc); + impl< + T: WebhookService, + > tonic::server::UnaryService + for ListWebhookLogsSvc { + type Response = super::ListWebhookLogsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_webhook_logs(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ListWebhookLogsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for WebhookServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService for WebhookServiceServer { + const NAME: &'static str = "sift.webhooks.v1.WebhookService"; + } +} diff --git a/rust/crates/sift_rs/src/wrappers/metadata.rs b/rust/crates/sift_rs/src/wrappers/metadata.rs index 43fb8a3d0..13a652af5 100644 --- a/rust/crates/sift_rs/src/wrappers/metadata.rs +++ b/rust/crates/sift_rs/src/wrappers/metadata.rs @@ -46,12 +46,14 @@ impl> From<(&str, T)> for MetadataValue { name: name.to_string(), r#type: key_type.into(), archived_date: None, + is_archived: false, }; MetadataValue { key: Some(key), value: Some(enum_value), archived_date: None, + is_archived: false, } } } diff --git a/rust/crates/sift_stream/src/stream/run.rs b/rust/crates/sift_stream/src/stream/run.rs index a61a39f27..0435a0ac7 100644 --- a/rust/crates/sift_stream/src/stream/run.rs +++ b/rust/crates/sift_stream/src/stream/run.rs @@ -401,6 +401,7 @@ mod tests { }), value: Some(Value::StringValue(string_value.to_string())), archived_date: None, + is_archived: false, } } diff --git a/rust/crates/sift_stream/src/test.rs b/rust/crates/sift_stream/src/test.rs index c62da8d74..f6de40d00 100644 --- a/rust/crates/sift_stream/src/test.rs +++ b/rust/crates/sift_stream/src/test.rs @@ -191,6 +191,8 @@ impl MockRunService { asset_ids: vec!["123".to_string()], archived_date: None, is_adhoc: false, + is_archived: false, + duration: None, } } } diff --git a/scripts/gen.sh b/scripts/gen.sh index f8ae7ad73..f910b61d7 100755 --- a/scripts/gen.sh +++ b/scripts/gen.sh @@ -50,7 +50,7 @@ gen_python_modules() { local sift_grafana="python/lib/sift_grafana" if [[ ! -d "$python_gen_dir" ]]; then - err_and_exit "The '$python_gen_dir' directory could not be located. Failed to generate python modules." + mkdir -p "$python_gen_dir" || err_and_exit "Failed to create '$python_gen_dir' directory." fi printf "Generating python modules... " @@ -82,7 +82,8 @@ gen_python_modules() { gen_protos() { printf "\x1b[?25l" - mkdir "$TMP_DIR" + mkdir -p "$TMP_DIR" + mkdir -p "$OUTPUT_PROTOS" buf mod update protos buf export protos --output="$OUTPUT_PROTOS" --config="$BUF_CONF" @@ -97,7 +98,17 @@ gen_protos() { for lang in ${langs[@]}; do printf "Compiling protocol buffers for $lang... " if [[ "$lang" == "rust" ]]; then + # Clean old generated files to avoid stale code + if [[ -d "$lang/crates/sift_rs/src/gen" ]]; then + rm -rf "$lang/crates/sift_rs/src/gen" + fi buf generate "$OUTPUT_PROTOS" --template "$lang/crates/sift_rs/buf.gen.yaml" --output "$lang/crates/sift_rs" + elif [[ "$lang" == "go" ]]; then + # Clean old generated files to avoid stale code + if [[ -d "$lang/gen" ]]; then + rm -rf "$lang/gen" + fi + buf generate "$OUTPUT_PROTOS" --template "$lang/buf.gen.yaml" --output "$lang" else buf generate "$OUTPUT_PROTOS" --template "$lang/buf.gen.yaml" --output "$lang" fi diff --git a/scripts/sanitize.sh b/scripts/sanitize.sh deleted file mode 100755 index 83de35b26..000000000 --- a/scripts/sanitize.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env zsh -# remove go_package option from all proto files in the sift directory -pattern="^option go_package.*" -for file in $(grep -ERl "$pattern" --include="*.proto" protos/sift); do - sed -E -i.bak "s/${pattern}//g" "$file" && rm -f "$file.bak" -done - -# remove unstable messages and fields from all proto files in the sift directory -for file in $(find protos/sift -name "*.proto"); do - if [[ $file =~ "unstable.proto" ]]; then - rm "$file" - continue - fi - - # Remove messages marked as unstable - awk '/^message/{p=$0;next} /option.*unstable_message.*true/{printf "/%s/,/^}/d\n", p}' "$file" | sed -i.bak -f - "$file" && rm -f "$file.bak" - - # Remove fields marked as unstable - sed -i.bak -e '/.*\[.*sift\.options\.v1\.unstable_field.*\].*/d' "$file" && rm -f "$file.bak" - - # Remove import of unstable proto - sed -i.bak -e '/^import.*unstable.proto.*/d' "$file" && rm -f "$file.bak" -done - -echo "Done."